public Certificate(Stream s) { BinaryReader bR = new BinaryReader(s); if (Encoding.ASCII.GetString(bR.ReadBytes(2)) != "CE") { throw new InvalidCertificateException("Invalid certificate format."); } _version = bR.ReadByte(); switch (_version) { case 1: _type = (CertificateType)bR.ReadByte(); _serialNumber = Encoding.ASCII.GetString(bR.ReadBytes(bR.ReadByte())); _issuedTo = new CertificateProfile(s); _capability = (CertificateCapability)bR.ReadByte(); _issuedOnUTC = bR.ReadUInt64(); _expiresOnUTC = bR.ReadUInt64(); _publicKeyEncryptionAlgorithm = (AsymmetricEncryptionAlgorithm)bR.ReadByte(); _publicKeyXML = Encoding.ASCII.GetString(bR.ReadBytes(bR.ReadUInt16())); byte rUriLen = bR.ReadByte(); if (rUriLen > 0) { _revocationUri = new Uri(Encoding.UTF8.GetString(bR.ReadBytes(rUriLen))); } if (s.ReadByte() == 1) { _issuerSignature = new Signature(s); } break; default: throw new InvalidCertificateException("Certificate format version not supported."); } }
public Certificate(CertificateType type, string serialNumber, CertificateProfile issuedTo, CertificateCapability capability, DateTime issuedOnUTC, DateTime expiresOnUTC, AsymmetricEncryptionAlgorithm publicKeyEncryptionAlgorithm, string publicKeyXML) { if (issuedOnUTC > expiresOnUTC) { throw new CryptoException("Invalid issue or expiry date. Issue date is greater than expiry date."); } _version = 1; _type = type; _serialNumber = serialNumber; _issuedTo = issuedTo; _capability = capability; _issuedOnUTC = Convert.ToUInt64((issuedOnUTC - _epoch).TotalSeconds); _expiresOnUTC = Convert.ToUInt64((expiresOnUTC - _epoch).TotalSeconds); _publicKeyEncryptionAlgorithm = publicKeyEncryptionAlgorithm; _publicKeyXML = publicKeyXML; }
public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) { return(false); } if (ReferenceEquals(this, obj)) { return(true); } CertificateProfile cP = obj as CertificateProfile; if (cP == null) { return(false); } if (cP._version != _version) { return(false); } if (cP._verified != _verified) { return(false); } if (cP._name != _name) { return(false); } if (cP._type != _type) { return(false); } if ((cP._emailAddress != null) && (cP._emailAddress.Address != _emailAddress.Address)) { return(false); } if ((cP._website != null) && (cP._website.AbsoluteUri != _website.AbsoluteUri)) { return(false); } if (cP._phoneNumber != _phoneNumber) { return(false); } if (cP._streetAddress != _streetAddress) { return(false); } if (cP._city != _city) { return(false); } if (cP._state != _state) { return(false); } if (cP._country != _country) { return(false); } if (cP._postalCode != _postalCode) { return(false); } return(true); }