makeJWEFromMessage function
Future<String>
makeJWEFromMessage(
- String mnemonic,
- String receiverDID,
- InfraDIDCommAgent agent,
- Map<
String, dynamic> jsonMessage,
Implementation
Future<String> makeJWEFromMessage(
String mnemonic,
String receiverDID,
InfraDIDCommAgent agent,
Map<String, dynamic> jsonMessage,
) async {
List<int> extendedPrivatekey = await extendedPrivateKeyFromUri(mnemonic);
List<int> privatekey = await privateKeyFromUri(mnemonic);
List<int> receiverpublicKey =
publicKeyFromAddress(receiverDID.split(":").last);
Map<String, dynamic> x25519JwkPrivateKey =
await x25519JwkFromEd25519PrivateKey(privatekey);
Map<String, dynamic> x25519JwkReceiverPublicKey =
x25519JwkFromEd25519PublicKey(receiverpublicKey);
String jws = signJWS(
json.encode(jsonMessage),
hex.encode(extendedPrivatekey),
);
List<int> sharedKey = await makeSharedKey(
privateKeyfromX25519Jwk(x25519JwkPrivateKey),
publicKeyfromX25519Jwk(x25519JwkReceiverPublicKey),
);
String jwe = encryptJWE(jws, jwkFromSharedKey(sharedKey));
return jwe;
}