This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // 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"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| JSONObject documentSender = AlgorandUtil.getDIDDocument(indexerClient, didDocSender.getId()); | |
| DIDDocument didDocSenderOnChain = DidUtil.jsonToDIDDocument(Objects.requireNonNull(documentSender)); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| AlgorandUtil.storeDID(algodClient, steward, didDocSender); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| AlgodClient algodClient = AlgorandUtil.createAlgodClient(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| DIDDocument didDocSender = DidUtil.createDid(keyPairSender); | |
| System.out.println(didDocSender.getId().getFullQualifiedIdentifier()); | |
| System.out.println(DidUtil.getJsonRepresentation(didDocSender)); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import cv2 | |
| title = 'PersonOfInterest' | |
| cv2.namedWindow(title) | |
| video = cv2.VideoCapture(0) | |
| if video.isOpened(): | |
| rval, frame = video.read() | |
| else: | |
| rval = False |