public RsaKeyWrapper(RsaJwk key, EncryptionAlgorithm encryptionAlgorithm, KeyManagementAlgorithm algorithm) : base(encryptionAlgorithm, algorithm) { Debug.Assert(key.SupportKeyManagement(algorithm)); Debug.Assert(algorithm.Category == AlgorithmCategory.Rsa); _key = key; #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 = algorithm.Id switch { AlgorithmId.RsaOaep => RSAEncryptionPadding.OaepSHA1, AlgorithmId.Rsa1_5 => RSAEncryptionPadding.Pkcs1, AlgorithmId.RsaOaep256 => RSAEncryptionPadding.OaepSHA256, AlgorithmId.RsaOaep384 => RSAEncryptionPadding.OaepSHA384, AlgorithmId.RsaOaep512 => RSAEncryptionPadding.OaepSHA512, _ => throw ThrowHelper.CreateNotSupportedException_AlgorithmForKeyWrap(algorithm) }; }
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); }