Exemplo n.º 1
0
        internal Certificate(DigitalSignature digitalSignature, Stream stream)
        {
            if (digitalSignature == null)
            {
                throw new ArgumentNullException("digitalSignature");
            }

            byte[] signature;

            if (digitalSignature.DigitalSignatureAlgorithm == DigitalSignatureAlgorithm.EcDsaP521_Sha256)
            {
                signature = EcDsaP521_Sha256.Sign(digitalSignature.PrivateKey, stream);
            }
            else if (digitalSignature.DigitalSignatureAlgorithm == DigitalSignatureAlgorithm.Rsa2048_Sha256)
            {
                signature = Rsa2048_Sha256.Sign(digitalSignature.PrivateKey, stream);
            }
            else
            {
                return;
            }

            this.Nickname = digitalSignature.Nickname;
            this.DigitalSignatureAlgorithm = digitalSignature.DigitalSignatureAlgorithm;
            this.PublicKey = digitalSignature.PublicKey;
            this.Signature = signature;
        }
Exemplo n.º 2
0
 internal bool Verify(Stream stream)
 {
     if (this.DigitalSignatureAlgorithm == DigitalSignatureAlgorithm.EcDsaP521_Sha256)
     {
         return(EcDsaP521_Sha256.Verify(this.PublicKey, this.Signature, stream));
     }
     else if (this.DigitalSignatureAlgorithm == DigitalSignatureAlgorithm.Rsa2048_Sha256)
     {
         return(Rsa2048_Sha256.Verify(this.PublicKey, this.Signature, stream));
     }
     else
     {
         return(false);
     }
 }
Exemplo n.º 3
0
        public DigitalSignature(string nickname, DigitalSignatureAlgorithm digitalSignatureAlgorithm)
        {
            this.Nickname = nickname;
            this.DigitalSignatureAlgorithm = digitalSignatureAlgorithm;

            if (digitalSignatureAlgorithm == DigitalSignatureAlgorithm.EcDsaP521_Sha256)
            {
                byte[] publicKey, privateKey;

                EcDsaP521_Sha256.CreateKeys(out publicKey, out privateKey);

                this.PublicKey  = publicKey;
                this.PrivateKey = privateKey;
            }
            else if (digitalSignatureAlgorithm == DigitalSignatureAlgorithm.Rsa2048_Sha256)
            {
                byte[] publicKey, privateKey;

                Rsa2048_Sha256.CreateKeys(out publicKey, out privateKey);

                this.PublicKey  = publicKey;
                this.PrivateKey = privateKey;
            }
        }