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; }
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); } }
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; } }