initSession static method
Implementation
static AEADSession? initSession(Uint8List key, AEADAlgorithm aeadAlgorithm, {int? tagLength}) {
if (key.length != aeadAlgorithm.keyLength) {
logger.log(
'AEADSession.initSession: Invalid key length for ${aeadAlgorithm.name}. Expected ${aeadAlgorithm.keyLength}, but got ${key.length}',
);
return null;
}
final instance = AEADSession._(aeadAlgorithm);
arenaWrapper((arena) {
final keyPtr = key.toFFIPointer(arena);
instance._contextPtr = ffiBindings.EVP_AEAD_CTX_new(
aeadAlgorithm.objectPtr,
keyPtr,
aeadAlgorithm.keyLength,
tagLength??0,
);
});
if (instance._contextPtr == ffi.nullptr) {
return null;
}
_finalizer.attach(instance._aeadAlgorithm, instance, detach: instance._aeadAlgorithm);
return instance;
}