Issuer server guide(JAVA)
This is the Issuer SDK (Java) server guide document.
Issuer API
KeyManager Unlock
The private key is readable through IWKeyManager Class.
String keyManagerFile = "key.wallet";
String keyManagerPass = "keywalletPassword";
IWKeyManager keyManager = new IWKeyManager(keyManagerFile, keyManagerPass);
keyManager.unLock(keyManagerPass, new OnUnLockListener() {
@Override
public void onSuccess() {
System.out.println("KeyManager Unlock onSuccess");
}
@Override
public void onFail(int errCode) {
System.out.println("KeyManager Unlock onFail:" + errCode);
}
@Override
public void onCancel() {
System.out.println("KeyManager Unlock onCancel");
}
});
Read DID Document
DID document can be read through the IWDIDFile class.
Use getData() function to transfer to the Jason string.
String issuerDidFile = "issuer.did";
IWDIDFile iwdidFile = new IWDIDFile(issuerDidFile);
String didDocJson = iwdidFile.getData();
System.out.println("didDocJson:" + didDocJson);
BlockChain node settings
BlockChain node settings can be set through the ServerInfo class.
String blockChainNodeUrl = "https://testnet.omnione.net:8888";
ServerInfo serverInfo = new ServerInfo(blockChainNodeUrl);
VC Issuing API
VC issuance consists of 2 steps.
vcInit: Initial settings of the VC issuance.
Depending on the issuance, if there is no token transaction by the user, vcReg will initiate internally.
vcReg: Register the created VC to the BlockChain
VC Init
VcInitParam Class
ServerInfo
- BlockChain node server informationIWKeyManager
- private key Wallet managementmainKeyId
- Stored KeyID in the KeyManager for signingvcRequestJson
- VC creation request string(JSON)issuerDidFile
- Issuer DID file pathvcTypeCode
- VC TYPE Code
//vcRequestJson sample
{
"claim": {
"id": "did:omn:[account]",
"privacy": {
"unprotected": [
//claim datas
]
}
},
"proof": {
"created": "[date]",
"creator": "did:omn:[account]",
"nonce": "[nonce]",
"signatureValue": "[signatureValut]",
"type": "[type]"
}
}
IssuerApi.vcInit Class - Init Api
vcInit(VcInitParam vcInitParam)
VcResult Class - Result Class
issueCost
- VC issuance cost(optional)status
- status information (required)0 = VC creation incomplete
1 = VC creation completed
vcComplete
- Completed VC(required)vcDefCode
- VC Code(optional)
VcInitParam vcInitParam = new VcInitParam(serverInfo,
keyManager,
"key1",
vcRequestJson,
issuerDidDocuemntPath,
configBean.getVcAssertionId());
VcResult vcResult = IssuerApi.vcInit(vcInitParam);
if(vcResult.getStatus().equals("0")) {
//VC is created but yet has not been registered on the BlockChain(The user MUST pay a token to register)
VerifiableClaim vcComplete = vcResult.getVcCompelete();
String vcCompleteJson = vcComplete.toJson();
resultVc.setClaimBase64(GDPBase64.encodeUrlString(vcCompleteJson.getBytes()));
}else{
//VC creation completed and registered on the BlockChain
VerifiableClaim vcComplete = vcResult.getVcCompelete();
String vcCompleteJson = vcComplete.toJson();
resultVc.setClaimBase64(GDPBase64.encodeUrlString(vcCompleteJson.getBytes()));
}
return vcResult;
VC Reg
An API for the VC to register finally on the Blockchain.
VcRegParam Class - Reg Data
ServerInfo
- BlockChain Node server informationkeyManager
- Private key Wallet managementmainKeyId
- Stored KeyID in the KeyManager for signingvcInitResultJson
- VC Init result data (Json)issuerDidFile
- File path Issuer DIDtxId
- Token Transfer TX ID
IssuerApi.vcReg Class - Init API
vcReg(VcRegParam vcRegParam)
VcResult Class - Result Class
issueCost
- VC issuing cost (optional)status
- status info (required)0 = VC creation incomplete
1 = VC creation completed
vcComplete
- Completed VC (essensial)vcDefCode
- VC code (optional)
VcRegParam vcRegParam = new VcRegParam(serverInfo,
keyManager,
"key1",
vcResultJson,
issuerDidDocuemntPath,
issueRegParam.getTxId(),
issueRegParam.getBlockNum(),
issueRegParam.getUserDid()
);
VcResult vcResult = IssuerApi.vcReg(vcRegParam);
VerifiableClaim vcComplete = vcResult.getVcCompelete();
String vcCompleteJson = vcComplete.toJson();
Last updated
Was this helpful?