示例#1
0
 public WeixiaoRequestIMiddleware(ILogger <WeixiaoRequestIMiddleware> logger, ILoggerHelper log4, IOptions <RSASettings> setting)
 {
     this.logger  = logger;
     this.log4    = log4;
     this.setting = setting.Value;
     rsa          = new RSAHelper(RSAType.RSA2, Encoding.UTF8, this.setting.PrivateKey, this.setting.PublicKey, this.setting.AppKey, this.setting.SplitStr);
 }
示例#2
0
        public RSATests()
        {
            var rsaSettings = new RSASettings()
            {
                PrimeNumberCountBitsMax = 16,
                PrimeNumberCountBitsMin = 0
            };

            var residueNumberSystem = new ResidueNumberSystem();

            _rsaCipher = new RSACipher(residueNumberSystem, Options.Create(rsaSettings));
        }
示例#3
0
 public WeixiaoErrorIMiddleware(ILogger <WeixiaoErrorIMiddleware> logger, ILoggerHelper log4, IOptions <RSASettings> setting)
 {
     this.logger  = logger;
     this.log4    = log4;
     this.setting = setting.Value;
 }
示例#4
0
        private static byte[] AsymmetricEncrypt([NotNull] IAsymmetricAlgorithm asymmetric, [NotNull] byte[] data, RSASettings settings = null)
        {
            if (data.Length == 0)
            {
                return(null);
            }

            if (settings is { UseExpiration : true })
示例#5
0
        public static byte[] AsymmetricEncrypt([NotNull] X509Certificate2 certificate, [NotNull] byte[] data, RSASettings settings = null)
        {
            if (data.Length == 0)
            {
                return(null);
            }
            IAsymmetricAlgorithm asymmetric = null;

            try
            {
                System.Security.Cryptography.RSA algorithm = certificate.GetPublicEncryptor <System.Security.Cryptography.RSA>();
                asymmetric = new RSAAlgorithm <System.Security.Cryptography.RSA>(algorithm);
                return(AsymmetricEncrypt(asymmetric, data, settings));
            }
            finally
            {
                ObjectHelper.Dispose(ref asymmetric);
            }
        }
示例#6
0
        public static string AsymmetricEncrypt([NotNull] X509Certificate2 certificate, string value, RSASettings settings = null)
        {
            if (string.IsNullOrEmpty(value))
            {
                return(value);
            }
            Encoding encoding = settings?.Encoding ?? Encoding.UTF8;

            byte[] data      = encoding.GetBytes(value);
            byte[] encrypted = AsymmetricEncrypt(certificate, data, settings);
            Array.Clear(data, 0, data.Length);
            return(encrypted == null
                                                ? null
                                                : Convert.ToBase64String(encrypted));
        }
示例#7
0
 public static string AsymmetricEncrypt([NotNull] X509Certificate2 certificate, SecureString value, RSASettings settings = null)
 {
     return(value.IsNullOrEmpty()
                                         ? null
                                         : AsymmetricEncrypt(certificate, value.UnSecure(), settings));
 }
示例#8
0
        public static byte[] AsymmetricEncrypt([NotNull] string publicKeyXml, [NotNull] byte[] data, RSASettings settings = null)
        {
            if (publicKeyXml.Length == 0)
            {
                throw new ArgumentNullException(nameof(publicKeyXml));
            }
            if (data.Length == 0)
            {
                return(null);
            }

            IAsymmetricAlgorithm asymmetric = null;

            try
            {
                asymmetric = CreateAsymmetricAlgorithm(settings);
                asymmetric.FromXmlString(publicKeyXml);
                return(AsymmetricEncrypt(asymmetric, data, settings));
            }
            finally
            {
                ObjectHelper.Dispose(ref asymmetric);
            }
        }
示例#9
0
 public static string AsymmetricEncrypt([NotNull] string publicKeyXml, string value, RSASettings settings = null)
 {
     if (publicKeyXml.Length == 0)
     {
         throw new ArgumentNullException(nameof(publicKeyXml));
     }
     if (string.IsNullOrEmpty(value))
     {
         return(value);
     }
     settings ??= new RSASettings();
     byte[] data      = settings.Encoding.GetBytes(value);
     byte[] encrypted = AsymmetricEncrypt(publicKeyXml, data, settings);
     Array.Clear(data, 0, data.Length);
     return(encrypted == null ? null : Convert.ToBase64String(encrypted));
 }
示例#10
0
 public static string AsymmetricEncrypt([NotNull] string publicKeyXml, SecureString value, RSASettings settings = null)
 {
     return(value.IsNullOrEmpty()
                                         ? null
                                         : AsymmetricEncrypt(publicKeyXml, value.UnSecure(), settings));
 }