Skip to content

Instantly share code, notes, and snippets.

String message = "Use of decentralised identifiers";
//Sender signs the message
Signature senderSignature = Signature.getInstance("EcDSA");
senderSignature.initSign(keyPairSender.getPrivate());
senderSignature.update(message.getBytes(StandardCharsets.UTF_8));
byte[] senderSignedMessage = senderSignature.sign();
//Receiver verifies the message
Signature receiverSignature = Signature.getInstance("EcDSA");
// Sender calculating the secret key
KeyFactory keyFactorySender = KeyFactory.getInstance("EC");
String receiverPubKeyEncoded = didDocReceiverOnChain.getVerificationMethods()
.iterator().next().getVerificationMaterial().getPublicKey().toString();
byte[] receiverPubKeyDecoded = Multibase.decode(receiverPubKeyEncoded);
PublicKey pubKeyReceiver = keyFactorySender.generatePublic(new X509EncodedKeySpec(receiverPubKeyDecoded));
KeyAgreement kaSender = KeyAgreement.getInstance("ECDH", "BC");
kaSender.init(keyPairSender.getPrivate());
kaSender.doPhase(pubKeyReceiver, true);
SecretKey secretKeySender = kaSender.generateSecret("AES");
JSONObject documentSender = AlgorandUtil.getDIDDocument(indexerClient, didDocSender.getId());
DIDDocument didDocSenderOnChain = DidUtil.jsonToDIDDocument(Objects.requireNonNull(documentSender));
AlgorandUtil.storeDID(algodClient, steward, didDocSender);
KmdApi kmdApi = AlgorandUtil.createKmdApi();
String defaultWalletHandle = AlgorandUtil.AlgorandSandboxPrivateNode.getDefaultWalletHandle(kmdApi);
List<Address> walletAddresses = AlgorandUtil.getWalletAddresses(kmdApi, defaultWalletHandle);
byte[] sk = AlgorandUtil.getPrivateKeyFromWallet(kmdApi, walletAddresses.get(0), defaultWalletHandle, "");
Account steward = new Account(sk);
AlgodClient algodClient = AlgorandUtil.createAlgodClient();
{
"controller":"did:ttd:zJZQR1SNtHwmLfQN477yabW",
"id":"did:ttd:zJZQR1SNtHwmLfQN477yabW",
"verificationMethod":[
{
"curveType":"EC",
"publicKeyBase58":"zaSq9DsNNvGhYxYyqA9wd2eduEAZ5AXWgJTbTKASaLyLFy7zy1VWuyBhwrvCftVL7gxEAPvJgouwFjDVR9w4czjRz3rsLM8yxk3PC27fU8WX5Gqm2giZVEChdMc52",
"controller":"did:ttd:zJZQR1SNtHwmLfQN477yabW",
"id":"did:ttd:zJZQR1SNtHwmLfQN477yabW#key-1",
"type":"PublicKeyMultibase"
DIDDocument didDocSender = DidUtil.createDid(keyPairSender);
System.out.println(didDocSender.getId().getFullQualifiedIdentifier());
System.out.println(DidUtil.getJsonRepresentation(didDocSender));
KeyPairGenerator generator = KeyPairGenerator.getInstance("EC", "BC");
byte[] keyBytesForSender = Mnemonic.toKey("sponsor ride say achieve senior height crumble promote " +
"universe write dove bomb faculty side human taste paper grocery robot grab reason fork soul above " +
"sphere");
generator.initialize(256, new FixedSecureRandom(keyBytesForSender));
KeyPair keyPairSender = generator.generateKeyPair();
@thusithathilina
thusithathilina / facerecog.py
Last active April 24, 2018 14:56
FaceRecoganize
import cv2
title = 'PersonOfInterest'
cv2.namedWindow(title)
video = cv2.VideoCapture(0)
if video.isOpened():
rval, frame = video.read()
else:
rval = False