cryptoKxServerSessionKeys static method
Implementation
static SessionKeys cryptoKxServerSessionKeys(
Uint8List serverPk, Uint8List serverSk, Uint8List clientPk) {
RangeError.checkValueInInterval(serverPk.length, cryptoKxPublickeybytes,
cryptoKxPublickeybytes, 'serverPk', 'Invalid length');
RangeError.checkValueInInterval(serverSk.length, cryptoKxSecretkeybytes,
cryptoKxSecretkeybytes, 'serverSk', 'Invalid length');
RangeError.checkValueInInterval(clientPk.length, cryptoKxPublickeybytes,
cryptoKxPublickeybytes, 'clientPk', 'Invalid length');
final _rx = calloc<Uint8>(cryptoKxSessionkeybytes);
final _tx = calloc<Uint8>(cryptoKxSessionkeybytes);
final _serverPk = serverPk.toPointer();
final _serverSk = serverSk.toPointer();
final _clientPk = clientPk.toPointer();
try {
_cryptoKx
.crypto_kx_server_session_keys(
_rx, _tx, _serverPk, _serverSk, _clientPk)
.mustSucceed('crypto_kx_server_session_keys');
return SessionKeys(
rx: _rx.toList(cryptoKxSessionkeybytes),
tx: _tx.toList(cryptoKxSessionkeybytes));
} finally {
calloc.free(_rx);
calloc.free(_tx);
calloc.free(_serverPk);
calloc.free(_serverSk);
calloc.free(_clientPk);
}
}