public RsaKeyUnwrapper(RsaJwk key, EncryptionAlgorithm encryptionAlgorithm, KeyManagementAlgorithm algorithm) : base(encryptionAlgorithm, algorithm) { Debug.Assert(key.SupportKeyManagement(algorithm)); Debug.Assert(algorithm.Category == AlgorithmCategory.Rsa); #if SUPPORT_SPAN_CRYPTO _rsa = RSA.Create(key.ExportParameters()); #else #if NET461 || NET47 _rsa = new RSACng(); #else _rsa = RSA.Create(); #endif _rsa.ImportParameters(key.ExportParameters()); #endif _padding = RsaHelper.GetEncryptionPadding(algorithm.Id); }
public RsaSignatureVerifier(RsaJwk key, SignatureAlgorithm algorithm) : base(algorithm) { Debug.Assert(key != null); Debug.Assert(key.SupportSignature(algorithm)); if (key.KeySizeInBits < 1024) { ThrowHelper.ThrowArgumentOutOfRangeException_SigningKeyTooSmall(key, 1024); } _hashAlgorithm = algorithm.HashAlgorithm; _sha = algorithm.Sha; _signaturePadding = RsaHelper.GetPadding(algorithm); _hashSizeInBytes = key.KeySizeInBits >> 3; _base64HashSizeInBytes = Base64Url.GetArraySizeRequiredToEncode(_hashSizeInBytes); _rsaPool = new ObjectPool <RSA>(new RsaObjectPoolPolicy(key.ExportParameters())); }