public function __construct(HiddenString $keyMaterial)
{
if (CryptoUtil::safeStrlen($keyMaterial->getString()) !== \Sodium\CRYPTO_STREAM_KEYBYTES) {
throw new InvalidKey('Encryption key must be CRYPTO_STREAM_KEYBYTES bytes long');
}
parent::__construct($keyMaterial);
}