I'm trying to migrate some JavaScript encryption code to a Dart equivalent but I cannot get the same result.
The JavaScript code is using Stanford JavaScript Crypto Library and the Dart version is using AesGcm from Dart Cryptography 2.5.0 (https://pub.dev/packages/cryptography).
The code in JS is
result = sjcl.codec.hex.fromBits(
sjcl.mode.ccm.encrypt(
new sjcl.cipher.aes(sjcl.codec.hex.toBits("6dbe8f8c87d58e61c2ec29321f42e9ff")), // prf
sjcl.codec.hex.toBits("00626c742e332e3132397649356b744455415443"), // plaintext
sjcl.codec.hex.toBits("101112131415161718191A1B"), // iv
sjcl.codec.hex.toBits("6465764944"), // adata
32));
The Dart I try to implement is
final encrypted = await AesGcm.with256bits().encrypt(
secretKey: SecretKey(utf8.encode("6dbe8f8c87d58e61c2ec29321f42e9ff")), // prf ?
utf8.encode("00626c742e332e3132397649356b744455415443"), // plaintext (device_new_id?)
nonce: utf8.encode("101112131415161718191A1B"), // iv
aad: utf8.encode("6465764944"), // adata
);
// Convert encrypted bytes to hex
final result= bytesToHex( Uint8List.fromList(encrypted.cipherText));
The result differs but I cannot see why ?
Hope someone can point me in the right direction ?
Best regards Martin
Via Active questions tagged javascript - Stack Overflow https://ift.tt/pvfoRPB
Comments
Post a Comment