예제 #1
0
            public void ShouldReturnValidKey()
            {
                var algorithmMapper   = new SignatureAlgorithmIdentifierMapper();
                var secureRandom      = new SecureRandomGenerator();
                var signatureProvider = new SignatureProvider(algorithmMapper, secureRandom, new SignerUtilitiesWrapper());

                byte[] data = secureRandom.NextBytes(100);

                IAsymmetricKey result    = keyProvider.GetPrivateKey(rsaKeyPair.PrivateKey.Content);
                Signature      signature = signatureProvider.CreateSignature(result, data);

                Assert.IsTrue(signatureProvider.VerifySignature(rsaKeyPair.PublicKey, signature));
            }
예제 #2
0
        public void SetupSignatureProviderTest()
        {
            algorithmIdentifierMapper = new SignatureAlgorithmIdentifierMapper();
            secureRandomGenerator     = new SecureRandomGenerator();
            signatureProvider         = new SignatureProvider(algorithmIdentifierMapper, secureRandomGenerator, new SignerUtilitiesWrapper());

            content = secureRandomGenerator.NextBytes(2000);

            keys = new Dictionary <CipherType, IAsymmetricKeyPair>();

            var rsaGenerator   = new AsymmetricKeyPairGenerator(secureRandomGenerator);
            var rsaKeyProvider = new RsaKeyProvider(rsaGenerator);

            IAsymmetricKeyPair keyPair = rsaKeyProvider.CreateKeyPair(2048);

            keys.Add(keyPair.PrivateKey.CipherType, keyPair);
        }
예제 #3
0
 public void SetupSignatureAlgorithmMapperTest()
 {
     identifierMapper = new SignatureAlgorithmIdentifierMapper();
 }
예제 #4
0
 public SignatureProvider(SignatureAlgorithmIdentifierMapper algorithmIdentifierMapper, SecureRandomGenerator secureRandomGenerator, SignerUtilitiesWrapper signerUtilitiesWrapper)
 {
     this.algorithmIdentifierMapper = algorithmIdentifierMapper;
     this.secureRandomGenerator     = secureRandomGenerator;
     this.signerUtilitiesWrapper    = signerUtilitiesWrapper;
 }