diff options
author | Oren Novotny <oren@novotny.org> | 2014-08-26 17:35:17 -0400 |
---|---|---|
committer | Oren Novotny <oren@novotny.org> | 2014-08-26 17:35:17 -0400 |
commit | 5f9336106a1b51241336520b2cd032340d12fd81 (patch) | |
tree | 58be4e085640a1286b715886f7717f81cde898e6 /crypto/src/asn1/cmp | |
parent | Release 1.7.0.1 with Wpa81 support (diff) | |
download | BouncyCastle.NET-ed25519-5f9336106a1b51241336520b2cd032340d12fd81.tar.xz |
rename Crypto dir to crypto to match bc-git
Diffstat (limited to 'crypto/src/asn1/cmp')
38 files changed, 0 insertions, 3460 deletions
diff --git a/crypto/src/asn1/cmp/CAKeyUpdAnnContent.cs b/crypto/src/asn1/cmp/CAKeyUpdAnnContent.cs deleted file mode 100644 index 3cdb128a6..000000000 --- a/crypto/src/asn1/cmp/CAKeyUpdAnnContent.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CAKeyUpdAnnContent - : Asn1Encodable - { - private readonly CmpCertificate oldWithNew; - private readonly CmpCertificate newWithOld; - private readonly CmpCertificate newWithNew; - - private CAKeyUpdAnnContent(Asn1Sequence seq) - { - oldWithNew = CmpCertificate.GetInstance(seq[0]); - newWithOld = CmpCertificate.GetInstance(seq[1]); - newWithNew = CmpCertificate.GetInstance(seq[2]); - } - - public static CAKeyUpdAnnContent GetInstance(object obj) - { - if (obj is CAKeyUpdAnnContent) - return (CAKeyUpdAnnContent)obj; - - if (obj is Asn1Sequence) - return new CAKeyUpdAnnContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual CmpCertificate OldWithNew - { - get { return oldWithNew; } - } - - public virtual CmpCertificate NewWithOld - { - get { return newWithOld; } - } - - public virtual CmpCertificate NewWithNew - { - get { return newWithNew; } - } - - /** - * <pre> - * CAKeyUpdAnnContent ::= SEQUENCE { - * oldWithNew CmpCertificate, -- old pub signed with new priv - * newWithOld CmpCertificate, -- new pub signed with old priv - * newWithNew CmpCertificate -- new pub signed with new priv - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return new DerSequence(oldWithNew, newWithOld, newWithNew); - } - } -} diff --git a/crypto/src/asn1/cmp/CertConfirmContent.cs b/crypto/src/asn1/cmp/CertConfirmContent.cs deleted file mode 100644 index f4016d8d8..000000000 --- a/crypto/src/asn1/cmp/CertConfirmContent.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CertConfirmContent - : Asn1Encodable - { - private readonly Asn1Sequence content; - - private CertConfirmContent(Asn1Sequence seq) - { - content = seq; - } - - public static CertConfirmContent GetInstance(object obj) - { - if (obj is CertConfirmContent) - return (CertConfirmContent)obj; - - if (obj is Asn1Sequence) - return new CertConfirmContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual CertStatus[] ToCertStatusArray() - { - CertStatus[] result = new CertStatus[content.Count]; - for (int i = 0; i != result.Length; i++) - { - result[i] = CertStatus.GetInstance(content[i]); - } - return result; - } - - /** - * <pre> - * CertConfirmContent ::= SEQUENCE OF CertStatus - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} diff --git a/crypto/src/asn1/cmp/CertOrEncCert.cs b/crypto/src/asn1/cmp/CertOrEncCert.cs deleted file mode 100644 index 4c049c180..000000000 --- a/crypto/src/asn1/cmp/CertOrEncCert.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.Crmf; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CertOrEncCert - : Asn1Encodable, IAsn1Choice - { - private readonly CmpCertificate certificate; - private readonly EncryptedValue encryptedCert; - - private CertOrEncCert(Asn1TaggedObject tagged) - { - if (tagged.TagNo == 0) - { - certificate = CmpCertificate.GetInstance(tagged.GetObject()); - } - else if (tagged.TagNo == 1) - { - encryptedCert = EncryptedValue.GetInstance(tagged.GetObject()); - } - else - { - throw new ArgumentException("unknown tag: " + tagged.TagNo, "tagged"); - } - } - - public static CertOrEncCert GetInstance(object obj) - { - if (obj is CertOrEncCert) - return (CertOrEncCert)obj; - - if (obj is Asn1TaggedObject) - return new CertOrEncCert((Asn1TaggedObject)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public CertOrEncCert(CmpCertificate certificate) - { - if (certificate == null) - throw new ArgumentNullException("certificate"); - - this.certificate = certificate; - } - - public CertOrEncCert(EncryptedValue encryptedCert) - { - if (encryptedCert == null) - throw new ArgumentNullException("encryptedCert"); - - this.encryptedCert = encryptedCert; - } - - public virtual CmpCertificate Certificate - { - get { return certificate; } - } - - public virtual EncryptedValue EncryptedCert - { - get { return encryptedCert; } - } - - /** - * <pre> - * CertOrEncCert ::= CHOICE { - * certificate [0] CMPCertificate, - * encryptedCert [1] EncryptedValue - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - if (certificate != null) - { - return new DerTaggedObject(true, 0, certificate); - } - - return new DerTaggedObject(true, 1, encryptedCert); - } - } -} diff --git a/crypto/src/asn1/cmp/CertRepMessage.cs b/crypto/src/asn1/cmp/CertRepMessage.cs deleted file mode 100644 index c22b079c8..000000000 --- a/crypto/src/asn1/cmp/CertRepMessage.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CertRepMessage - : Asn1Encodable - { - private readonly Asn1Sequence caPubs; - private readonly Asn1Sequence response; - - private CertRepMessage(Asn1Sequence seq) - { - int index = 0; - - if (seq.Count > 1) - { - caPubs = Asn1Sequence.GetInstance((Asn1TaggedObject)seq[index++], true); - } - - response = Asn1Sequence.GetInstance(seq[index]); - } - - public static CertRepMessage GetInstance(object obj) - { - if (obj is CertRepMessage) - return (CertRepMessage)obj; - - if (obj is Asn1Sequence) - return new CertRepMessage((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public CertRepMessage(CmpCertificate[] caPubs, CertResponse[] response) - { - if (response == null) - throw new ArgumentNullException("response"); - - if (caPubs != null) - { - this.caPubs = new DerSequence(caPubs); - } - - this.response = new DerSequence(response); - } - - public virtual CmpCertificate[] GetCAPubs() - { - if (caPubs == null) - return null; - - CmpCertificate[] results = new CmpCertificate[caPubs.Count]; - for (int i = 0; i != results.Length; ++i) - { - results[i] = CmpCertificate.GetInstance(caPubs[i]); - } - return results; - } - - public virtual CertResponse[] GetResponse() - { - CertResponse[] results = new CertResponse[response.Count]; - for (int i = 0; i != results.Length; ++i) - { - results[i] = CertResponse.GetInstance(response[i]); - } - return results; - } - - /** - * <pre> - * CertRepMessage ::= SEQUENCE { - * caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate - * OPTIONAL, - * response SEQUENCE OF CertResponse - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(); - - if (caPubs != null) - { - v.Add(new DerTaggedObject(true, 1, caPubs)); - } - - v.Add(response); - - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/CertResponse.cs b/crypto/src/asn1/cmp/CertResponse.cs deleted file mode 100644 index 246b8ce70..000000000 --- a/crypto/src/asn1/cmp/CertResponse.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CertResponse - : Asn1Encodable - { - private readonly DerInteger certReqId; - private readonly PkiStatusInfo status; - private readonly CertifiedKeyPair certifiedKeyPair; - private readonly Asn1OctetString rspInfo; - - private CertResponse(Asn1Sequence seq) - { - certReqId = DerInteger.GetInstance(seq[0]); - status = PkiStatusInfo.GetInstance(seq[1]); - - if (seq.Count >= 3) - { - if (seq.Count == 3) - { - Asn1Encodable o = seq[2]; - if (o is Asn1OctetString) - { - rspInfo = Asn1OctetString.GetInstance(o); - } - else - { - certifiedKeyPair = CertifiedKeyPair.GetInstance(o); - } - } - else - { - certifiedKeyPair = CertifiedKeyPair.GetInstance(seq[2]); - rspInfo = Asn1OctetString.GetInstance(seq[3]); - } - } - } - - public static CertResponse GetInstance(object obj) - { - if (obj is CertResponse) - return (CertResponse)obj; - - if (obj is Asn1Sequence) - return new CertResponse((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public CertResponse( - DerInteger certReqId, - PkiStatusInfo status) - : this(certReqId, status, null, null) - { - } - - public CertResponse( - DerInteger certReqId, - PkiStatusInfo status, - CertifiedKeyPair certifiedKeyPair, - Asn1OctetString rspInfo) - { - if (certReqId == null) - throw new ArgumentNullException("certReqId"); - - if (status == null) - throw new ArgumentNullException("status"); - - this.certReqId = certReqId; - this.status = status; - this.certifiedKeyPair = certifiedKeyPair; - this.rspInfo = rspInfo; - } - - public virtual DerInteger CertReqID - { - get { return certReqId; } - } - - public virtual PkiStatusInfo Status - { - get { return status; } - } - - public virtual CertifiedKeyPair CertifiedKeyPair - { - get { return certifiedKeyPair; } - } - - /** - * <pre> - * CertResponse ::= SEQUENCE { - * certReqId INTEGER, - * -- to match this response with corresponding request (a value - * -- of -1 is to be used if certReqId is not specified in the - * -- corresponding request) - * status PKIStatusInfo, - * certifiedKeyPair CertifiedKeyPair OPTIONAL, - * rspInfo OCTET STRING OPTIONAL - * -- analogous to the id-regInfo-utf8Pairs string defined - * -- for regInfo in CertReqMsg [CRMF] - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(certReqId, status); - v.AddOptional(certifiedKeyPair); - v.AddOptional(rspInfo); - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/CertStatus.cs b/crypto/src/asn1/cmp/CertStatus.cs deleted file mode 100644 index 52d5ac504..000000000 --- a/crypto/src/asn1/cmp/CertStatus.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; - -using Org.BouncyCastle.Math; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CertStatus - : Asn1Encodable - { - private readonly Asn1OctetString certHash; - private readonly DerInteger certReqId; - private readonly PkiStatusInfo statusInfo; - - private CertStatus(Asn1Sequence seq) - { - certHash = Asn1OctetString.GetInstance(seq[0]); - certReqId = DerInteger.GetInstance(seq[1]); - - if (seq.Count > 2) - { - statusInfo = PkiStatusInfo.GetInstance(seq[2]); - } - } - - public CertStatus(byte[] certHash, BigInteger certReqId) - { - this.certHash = new DerOctetString(certHash); - this.certReqId = new DerInteger(certReqId); - } - - public CertStatus(byte[] certHash, BigInteger certReqId, PkiStatusInfo statusInfo) - { - this.certHash = new DerOctetString(certHash); - this.certReqId = new DerInteger(certReqId); - this.statusInfo = statusInfo; - } - - public static CertStatus GetInstance(object obj) - { - if (obj is CertStatus) - return (CertStatus)obj; - - if (obj is Asn1Sequence) - return new CertStatus((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual Asn1OctetString CertHash - { - get { return certHash; } - } - - public virtual DerInteger CertReqID - { - get { return certReqId; } - } - - public virtual PkiStatusInfo StatusInfo - { - get { return statusInfo; } - } - - /** - * <pre> - * CertStatus ::= SEQUENCE { - * certHash OCTET STRING, - * -- the hash of the certificate, using the same hash algorithm - * -- as is used to create and verify the certificate signature - * certReqId INTEGER, - * -- to match this confirmation with the corresponding req/rep - * statusInfo PKIStatusInfo OPTIONAL - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(certHash, certReqId); - v.AddOptional(statusInfo); - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/CertifiedKeyPair.cs b/crypto/src/asn1/cmp/CertifiedKeyPair.cs deleted file mode 100644 index 655dde0c5..000000000 --- a/crypto/src/asn1/cmp/CertifiedKeyPair.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.Crmf; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CertifiedKeyPair - : Asn1Encodable - { - private readonly CertOrEncCert certOrEncCert; - private readonly EncryptedValue privateKey; - private readonly PkiPublicationInfo publicationInfo; - - private CertifiedKeyPair(Asn1Sequence seq) - { - certOrEncCert = CertOrEncCert.GetInstance(seq[0]); - - if (seq.Count >= 2) - { - if (seq.Count == 2) - { - Asn1TaggedObject tagged = Asn1TaggedObject.GetInstance(seq[1]); - if (tagged.TagNo == 0) - { - privateKey = EncryptedValue.GetInstance(tagged.GetObject()); - } - else - { - publicationInfo = PkiPublicationInfo.GetInstance(tagged.GetObject()); - } - } - else - { - privateKey = EncryptedValue.GetInstance(Asn1TaggedObject.GetInstance(seq[1])); - publicationInfo = PkiPublicationInfo.GetInstance(Asn1TaggedObject.GetInstance(seq[2])); - } - } - } - - public static CertifiedKeyPair GetInstance(object obj) - { - if (obj is CertifiedKeyPair) - return (CertifiedKeyPair)obj; - - if (obj is Asn1Sequence) - return new CertifiedKeyPair((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public CertifiedKeyPair( - CertOrEncCert certOrEncCert) - : this(certOrEncCert, null, null) - { - } - - public CertifiedKeyPair( - CertOrEncCert certOrEncCert, - EncryptedValue privateKey, - PkiPublicationInfo publicationInfo - ) - { - if (certOrEncCert == null) - throw new ArgumentNullException("certOrEncCert"); - - this.certOrEncCert = certOrEncCert; - this.privateKey = privateKey; - this.publicationInfo = publicationInfo; - } - - public virtual CertOrEncCert CertOrEncCert - { - get { return certOrEncCert; } - } - - public virtual EncryptedValue PrivateKey - { - get { return privateKey; } - } - - public virtual PkiPublicationInfo PublicationInfo - { - get { return publicationInfo; } - } - - /** - * <pre> - * CertifiedKeyPair ::= SEQUENCE { - * certOrEncCert CertOrEncCert, - * privateKey [0] EncryptedValue OPTIONAL, - * -- see [CRMF] for comment on encoding - * publicationInfo [1] PKIPublicationInfo OPTIONAL - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(certOrEncCert); - - if (privateKey != null) - { - v.Add(new DerTaggedObject(true, 0, privateKey)); - } - - if (publicationInfo != null) - { - v.Add(new DerTaggedObject(true, 1, publicationInfo)); - } - - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/Challenge.cs b/crypto/src/asn1/cmp/Challenge.cs deleted file mode 100644 index bee5f96f5..000000000 --- a/crypto/src/asn1/cmp/Challenge.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class Challenge - : Asn1Encodable - { - private readonly AlgorithmIdentifier owf; - private readonly Asn1OctetString witness; - private readonly Asn1OctetString challenge; - - private Challenge(Asn1Sequence seq) - { - int index = 0; - - if (seq.Count == 3) - { - owf = AlgorithmIdentifier.GetInstance(seq[index++]); - } - - witness = Asn1OctetString.GetInstance(seq[index++]); - challenge = Asn1OctetString.GetInstance(seq[index]); - } - - public static Challenge GetInstance(object obj) - { - if (obj is Challenge) - return (Challenge)obj; - - if (obj is Asn1Sequence) - return new Challenge((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual AlgorithmIdentifier Owf - { - get { return owf; } - } - - /** - * <pre> - * Challenge ::= SEQUENCE { - * owf AlgorithmIdentifier OPTIONAL, - * - * -- MUST be present in the first Challenge; MAY be omitted in - * -- any subsequent Challenge in POPODecKeyChallContent (if - * -- omitted, then the owf used in the immediately preceding - * -- Challenge is to be used). - * - * witness OCTET STRING, - * -- the result of applying the one-way function (owf) to a - * -- randomly-generated INTEGER, A. [Note that a different - * -- INTEGER MUST be used for each Challenge.] - * challenge OCTET STRING - * -- the encryption (under the public key for which the cert. - * -- request is being made) of Rand, where Rand is specified as - * -- Rand ::= SEQUENCE { - * -- int INTEGER, - * -- - the randomly-generated INTEGER A (above) - * -- sender GeneralName - * -- - the sender's name (as included in PKIHeader) - * -- } - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(); - v.AddOptional(owf); - v.Add(witness); - v.Add(challenge); - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/CmpCertificate.cs b/crypto/src/asn1/cmp/CmpCertificate.cs deleted file mode 100644 index 16ee30059..000000000 --- a/crypto/src/asn1/cmp/CmpCertificate.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CmpCertificate - : Asn1Encodable, IAsn1Choice - { - private readonly X509CertificateStructure x509v3PKCert; - private readonly AttributeCertificate x509v2AttrCert; - - /** - * Note: the addition of attribute certificates is a BC extension. - */ - public CmpCertificate(AttributeCertificate x509v2AttrCert) - { - this.x509v2AttrCert = x509v2AttrCert; - } - - public CmpCertificate(X509CertificateStructure x509v3PKCert) - { - if (x509v3PKCert.Version != 3) - throw new ArgumentException("only version 3 certificates allowed", "x509v3PKCert"); - - this.x509v3PKCert = x509v3PKCert; - } - - public static CmpCertificate GetInstance(object obj) - { - if (obj is CmpCertificate) - return (CmpCertificate)obj; - - if (obj is Asn1Sequence) - return new CmpCertificate(X509CertificateStructure.GetInstance(obj)); - - if (obj is Asn1TaggedObject) - return new CmpCertificate(AttributeCertificate.GetInstance(((Asn1TaggedObject)obj).GetObject())); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual bool IsX509v3PKCert - { - get { return x509v3PKCert != null; } - } - - public virtual X509CertificateStructure X509v3PKCert - { - get { return x509v3PKCert; } - } - - public virtual AttributeCertificate X509v2AttrCert - { - get { return x509v2AttrCert; } - } - - /** - * <pre> - * CMPCertificate ::= CHOICE { - * x509v3PKCert Certificate - * x509v2AttrCert [1] AttributeCertificate - * } - * </pre> - * Note: the addition of attribute certificates is a BC extension. - * - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - if (x509v2AttrCert != null) - { - // explicit following CMP conventions - return new DerTaggedObject(true, 1, x509v2AttrCert); - } - - return x509v3PKCert.ToAsn1Object(); - } - } -} diff --git a/crypto/src/asn1/cmp/CmpObjectIdentifiers.cs b/crypto/src/asn1/cmp/CmpObjectIdentifiers.cs deleted file mode 100644 index 7e8274175..000000000 --- a/crypto/src/asn1/cmp/CmpObjectIdentifiers.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public abstract class CmpObjectIdentifiers - { - // RFC 4210 - - // id-PasswordBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 13} - public static readonly DerObjectIdentifier passwordBasedMac = new DerObjectIdentifier("1.2.840.113533.7.66.13"); - - // id-DHBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 30} - public static readonly DerObjectIdentifier dhBasedMac = new DerObjectIdentifier("1.2.840.113533.7.66.30"); - - // Example InfoTypeAndValue contents include, but are not limited - // to, the following (un-comment in this ASN.1 module and use as - // appropriate for a given environment): - // - // id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1} - // CAProtEncCertValue ::= CMPCertificate - // id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2} - // SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier - // id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3} - // EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier - // id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4} - // PreferredSymmAlgValue ::= AlgorithmIdentifier - // id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5} - // CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent - // id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6} - // CurrentCRLValue ::= CertificateList - // id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7} - // UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER - // id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10} - // KeyPairParamReqValue ::= OBJECT IDENTIFIER - // id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11} - // KeyPairParamRepValue ::= AlgorithmIdentifer - // id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12} - // RevPassphraseValue ::= EncryptedValue - // id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13} - // ImplicitConfirmValue ::= NULL - // id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} - // ConfirmWaitTimeValue ::= GeneralizedTime - // id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} - // OrigPKIMessageValue ::= PKIMessages - // id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} - // SuppLangTagsValue ::= SEQUENCE OF UTF8String - // - // where - // - // id-pkix OBJECT IDENTIFIER ::= { - // iso(1) identified-organization(3) - // dod(6) internet(1) security(5) mechanisms(5) pkix(7)} - // and - // id-it OBJECT IDENTIFIER ::= {id-pkix 4} - public static readonly DerObjectIdentifier it_caProtEncCert = new DerObjectIdentifier("1.3.6.1.5.5.7.4.1"); - public static readonly DerObjectIdentifier it_signKeyPairTypes = new DerObjectIdentifier("1.3.6.1.5.5.7.4.2"); - public static readonly DerObjectIdentifier it_encKeyPairTypes = new DerObjectIdentifier("1.3.6.1.5.5.7.4.3"); - public static readonly DerObjectIdentifier it_preferredSymAlg = new DerObjectIdentifier("1.3.6.1.5.5.7.4.4"); - public static readonly DerObjectIdentifier it_caKeyUpdateInfo = new DerObjectIdentifier("1.3.6.1.5.5.7.4.5"); - public static readonly DerObjectIdentifier it_currentCRL = new DerObjectIdentifier("1.3.6.1.5.5.7.4.6"); - public static readonly DerObjectIdentifier it_unsupportedOIDs = new DerObjectIdentifier("1.3.6.1.5.5.7.4.7"); - public static readonly DerObjectIdentifier it_keyPairParamReq = new DerObjectIdentifier("1.3.6.1.5.5.7.4.10"); - public static readonly DerObjectIdentifier it_keyPairParamRep = new DerObjectIdentifier("1.3.6.1.5.5.7.4.11"); - public static readonly DerObjectIdentifier it_revPassphrase = new DerObjectIdentifier("1.3.6.1.5.5.7.4.12"); - public static readonly DerObjectIdentifier it_implicitConfirm = new DerObjectIdentifier("1.3.6.1.5.5.7.4.13"); - public static readonly DerObjectIdentifier it_confirmWaitTime = new DerObjectIdentifier("1.3.6.1.5.5.7.4.14"); - public static readonly DerObjectIdentifier it_origPKIMessage = new DerObjectIdentifier("1.3.6.1.5.5.7.4.15"); - public static readonly DerObjectIdentifier it_suppLangTags = new DerObjectIdentifier("1.3.6.1.5.5.7.4.16"); - - // RFC 4211 - - // id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) - // dod(6) internet(1) security(5) mechanisms(5) pkix(7) } - // - // arc for Internet X.509 PKI protocols and their components - // id-pkip OBJECT IDENTIFIER :: { id-pkix pkip(5) } - // - // arc for Registration Controls in CRMF - // id-regCtrl OBJECT IDENTIFIER ::= { id-pkip regCtrl(1) } - // - // arc for Registration Info in CRMF - // id-regInfo OBJECT IDENTIFIER ::= { id-pkip id-regInfo(2) } - - public static readonly DerObjectIdentifier regCtrl_regToken = new DerObjectIdentifier("1.3.6.1.5.5.7.5.1.1"); - public static readonly DerObjectIdentifier regCtrl_authenticator = new DerObjectIdentifier("1.3.6.1.5.5.7.5.1.2"); - public static readonly DerObjectIdentifier regCtrl_pkiPublicationInfo = new DerObjectIdentifier("1.3.6.1.5.5.7.5.1.3"); - public static readonly DerObjectIdentifier regCtrl_pkiArchiveOptions = new DerObjectIdentifier("1.3.6.1.5.5.7.5.1.4"); - public static readonly DerObjectIdentifier regCtrl_oldCertID = new DerObjectIdentifier("1.3.6.1.5.5.7.5.1.5"); - public static readonly DerObjectIdentifier regCtrl_protocolEncrKey = new DerObjectIdentifier("1.3.6.1.5.5.7.5.1.6"); - - // From RFC4210: - // id-regCtrl-altCertTemplate OBJECT IDENTIFIER ::= {id-regCtrl 7} - public static readonly DerObjectIdentifier regCtrl_altCertTemplate = new DerObjectIdentifier("1.3.6.1.5.5.7.5.1.7"); - - public static readonly DerObjectIdentifier regInfo_utf8Pairs = new DerObjectIdentifier("1.3.6.1.5.5.7.5.2.1"); - public static readonly DerObjectIdentifier regInfo_certReq = new DerObjectIdentifier("1.3.6.1.5.5.7.5.2.2"); - - // id-smime OBJECT IDENTIFIER ::= { iso(1) member-body(2) - // us(840) rsadsi(113549) pkcs(1) pkcs9(9) 16 } - // - // id-ct OBJECT IDENTIFIER ::= { id-smime 1 } -- content types - // - // id-ct-encKeyWithID OBJECT IDENTIFIER ::= {id-ct 21} - public static readonly DerObjectIdentifier ct_encKeyWithID = new DerObjectIdentifier("1.2.840.113549.1.9.16.1.21"); - } -} diff --git a/crypto/src/asn1/cmp/CrlAnnContent.cs b/crypto/src/asn1/cmp/CrlAnnContent.cs deleted file mode 100644 index 3dc11d32c..000000000 --- a/crypto/src/asn1/cmp/CrlAnnContent.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class CrlAnnContent - : Asn1Encodable - { - private readonly Asn1Sequence content; - - private CrlAnnContent(Asn1Sequence seq) - { - content = seq; - } - - public static CrlAnnContent GetInstance(object obj) - { - if (obj is CrlAnnContent) - return (CrlAnnContent)obj; - - if (obj is Asn1Sequence) - return new CrlAnnContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual CertificateList[] ToCertificateListArray() - { - CertificateList[] result = new CertificateList[content.Count]; - for (int i = 0; i != result.Length; ++ i) - { - result[i] = CertificateList.GetInstance(content[i]); - } - return result; - } - - /** - * <pre> - * CrlAnnContent ::= SEQUENCE OF CertificateList - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} diff --git a/crypto/src/asn1/cmp/ErrorMsgContent.cs b/crypto/src/asn1/cmp/ErrorMsgContent.cs deleted file mode 100644 index f4dc584ea..000000000 --- a/crypto/src/asn1/cmp/ErrorMsgContent.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class ErrorMsgContent - : Asn1Encodable - { - private readonly PkiStatusInfo pkiStatusInfo; - private readonly DerInteger errorCode; - private readonly PkiFreeText errorDetails; - - private ErrorMsgContent(Asn1Sequence seq) - { - pkiStatusInfo = PkiStatusInfo.GetInstance(seq[0]); - - for (int pos = 1; pos < seq.Count; ++pos) - { - Asn1Encodable ae = seq[pos]; - if (ae is DerInteger) - { - errorCode = DerInteger.GetInstance(ae); - } - else - { - errorDetails = PkiFreeText.GetInstance(ae); - } - } - } - - public static ErrorMsgContent GetInstance(object obj) - { - if (obj is ErrorMsgContent) - return (ErrorMsgContent)obj; - - if (obj is Asn1Sequence) - return new ErrorMsgContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public ErrorMsgContent(PkiStatusInfo pkiStatusInfo) - : this(pkiStatusInfo, null, null) - { - } - - public ErrorMsgContent( - PkiStatusInfo pkiStatusInfo, - DerInteger errorCode, - PkiFreeText errorDetails) - { - if (pkiStatusInfo == null) - throw new ArgumentNullException("pkiStatusInfo"); - - this.pkiStatusInfo = pkiStatusInfo; - this.errorCode = errorCode; - this.errorDetails = errorDetails; - } - - public virtual PkiStatusInfo PkiStatusInfo - { - get { return pkiStatusInfo; } - } - - public virtual DerInteger ErrorCode - { - get { return errorCode; } - } - - public virtual PkiFreeText ErrorDetails - { - get { return errorDetails; } - } - - /** - * <pre> - * ErrorMsgContent ::= SEQUENCE { - * pKIStatusInfo PKIStatusInfo, - * errorCode INTEGER OPTIONAL, - * -- implementation-specific error codes - * errorDetails PKIFreeText OPTIONAL - * -- implementation-specific error details - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(pkiStatusInfo); - v.AddOptional(errorCode); - v.AddOptional(errorDetails); - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/GenMsgContent.cs b/crypto/src/asn1/cmp/GenMsgContent.cs deleted file mode 100644 index 9f042491c..000000000 --- a/crypto/src/asn1/cmp/GenMsgContent.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class GenMsgContent - : Asn1Encodable - { - private readonly Asn1Sequence content; - - private GenMsgContent(Asn1Sequence seq) - { - content = seq; - } - - public static GenMsgContent GetInstance(object obj) - { - if (obj is GenMsgContent) - return (GenMsgContent)obj; - - if (obj is Asn1Sequence) - return new GenMsgContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public GenMsgContent(params InfoTypeAndValue[] itv) - { - content = new DerSequence(itv); - } - - public virtual InfoTypeAndValue[] ToInfoTypeAndValueArray() - { - InfoTypeAndValue[] result = new InfoTypeAndValue[content.Count]; - for (int i = 0; i != result.Length; ++i) - { - result[i] = InfoTypeAndValue.GetInstance(content[i]); - } - return result; - } - - /** - * <pre> - * GenMsgContent ::= SEQUENCE OF InfoTypeAndValue - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} diff --git a/crypto/src/asn1/cmp/GenRepContent.cs b/crypto/src/asn1/cmp/GenRepContent.cs deleted file mode 100644 index 5bdc5550a..000000000 --- a/crypto/src/asn1/cmp/GenRepContent.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class GenRepContent - : Asn1Encodable - { - private readonly Asn1Sequence content; - - private GenRepContent(Asn1Sequence seq) - { - content = seq; - } - - public static GenRepContent GetInstance(object obj) - { - if (obj is GenRepContent) - return (GenRepContent)obj; - - if (obj is Asn1Sequence) - return new GenRepContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public GenRepContent(params InfoTypeAndValue[] itv) - { - content = new DerSequence(itv); - } - - public virtual InfoTypeAndValue[] ToInfoTypeAndValueArray() - { - InfoTypeAndValue[] result = new InfoTypeAndValue[content.Count]; - for (int i = 0; i != result.Length; ++i) - { - result[i] = InfoTypeAndValue.GetInstance(content[i]); - } - return result; - } - - /** - * <pre> - * GenRepContent ::= SEQUENCE OF InfoTypeAndValue - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} diff --git a/crypto/src/asn1/cmp/InfoTypeAndValue.cs b/crypto/src/asn1/cmp/InfoTypeAndValue.cs deleted file mode 100644 index 9b51dba02..000000000 --- a/crypto/src/asn1/cmp/InfoTypeAndValue.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - /** - * Example InfoTypeAndValue contents include, but are not limited - * to, the following (un-comment in this ASN.1 module and use as - * appropriate for a given environment): - * <pre> - * id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1} - * CAProtEncCertValue ::= CMPCertificate - * id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2} - * SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier - * id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3} - * EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier - * id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4} - * PreferredSymmAlgValue ::= AlgorithmIdentifier - * id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5} - * CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent - * id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6} - * CurrentCRLValue ::= CertificateList - * id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7} - * UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER - * id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10} - * KeyPairParamReqValue ::= OBJECT IDENTIFIER - * id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11} - * KeyPairParamRepValue ::= AlgorithmIdentifer - * id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12} - * RevPassphraseValue ::= EncryptedValue - * id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13} - * ImplicitConfirmValue ::= NULL - * id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} - * ConfirmWaitTimeValue ::= GeneralizedTime - * id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} - * OrigPKIMessageValue ::= PKIMessages - * id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} - * SuppLangTagsValue ::= SEQUENCE OF UTF8String - * - * where - * - * id-pkix OBJECT IDENTIFIER ::= { - * iso(1) identified-organization(3) - * dod(6) internet(1) security(5) mechanisms(5) pkix(7)} - * and - * id-it OBJECT IDENTIFIER ::= {id-pkix 4} - * </pre> - */ - public class InfoTypeAndValue - : Asn1Encodable - { - private readonly DerObjectIdentifier infoType; - private readonly Asn1Encodable infoValue; - - private InfoTypeAndValue(Asn1Sequence seq) - { - infoType = DerObjectIdentifier.GetInstance(seq[0]); - - if (seq.Count > 1) - { - infoValue = (Asn1Encodable)seq[1]; - } - } - - public static InfoTypeAndValue GetInstance(object obj) - { - if (obj is InfoTypeAndValue) - return (InfoTypeAndValue)obj; - - if (obj is Asn1Sequence) - return new InfoTypeAndValue((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public InfoTypeAndValue( - DerObjectIdentifier infoType) - { - this.infoType = infoType; - this.infoValue = null; - } - - public InfoTypeAndValue( - DerObjectIdentifier infoType, - Asn1Encodable optionalValue) - { - this.infoType = infoType; - this.infoValue = optionalValue; - } - - public virtual DerObjectIdentifier InfoType - { - get { return infoType; } - } - - public virtual Asn1Encodable InfoValue - { - get { return infoValue; } - } - - /** - * <pre> - * InfoTypeAndValue ::= SEQUENCE { - * infoType OBJECT IDENTIFIER, - * infoValue ANY DEFINED BY infoType OPTIONAL - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(infoType); - - if (infoValue != null) - { - v.Add(infoValue); - } - - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/KeyRecRepContent.cs b/crypto/src/asn1/cmp/KeyRecRepContent.cs deleted file mode 100644 index b0352f048..000000000 --- a/crypto/src/asn1/cmp/KeyRecRepContent.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class KeyRecRepContent - : Asn1Encodable - { - private readonly PkiStatusInfo status; - private readonly CmpCertificate newSigCert; - private readonly Asn1Sequence caCerts; - private readonly Asn1Sequence keyPairHist; - - private KeyRecRepContent(Asn1Sequence seq) - { - status = PkiStatusInfo.GetInstance(seq[0]); - - for (int pos = 1; pos < seq.Count; ++pos) - { - Asn1TaggedObject tObj = Asn1TaggedObject.GetInstance(seq[pos]); - - switch (tObj.TagNo) - { - case 0: - newSigCert = CmpCertificate.GetInstance(tObj.GetObject()); - break; - case 1: - caCerts = Asn1Sequence.GetInstance(tObj.GetObject()); - break; - case 2: - keyPairHist = Asn1Sequence.GetInstance(tObj.GetObject()); - break; - default: - throw new ArgumentException("unknown tag number: " + tObj.TagNo, "seq"); - } - } - } - - public static KeyRecRepContent GetInstance(object obj) - { - if (obj is KeyRecRepContent) - return (KeyRecRepContent)obj; - - if (obj is Asn1Sequence) - return new KeyRecRepContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual PkiStatusInfo Status - { - get { return status; } - } - - public virtual CmpCertificate NewSigCert - { - get { return newSigCert; } - } - - public virtual CmpCertificate[] GetCACerts() - { - if (caCerts == null) - return null; - - CmpCertificate[] results = new CmpCertificate[caCerts.Count]; - for (int i = 0; i != results.Length; ++i) - { - results[i] = CmpCertificate.GetInstance(caCerts[i]); - } - return results; - } - - public virtual CertifiedKeyPair[] GetKeyPairHist() - { - if (keyPairHist == null) - return null; - - CertifiedKeyPair[] results = new CertifiedKeyPair[keyPairHist.Count]; - for (int i = 0; i != results.Length; ++i) - { - results[i] = CertifiedKeyPair.GetInstance(keyPairHist[i]); - } - return results; - } - - /** - * <pre> - * KeyRecRepContent ::= SEQUENCE { - * status PKIStatusInfo, - * newSigCert [0] CMPCertificate OPTIONAL, - * caCerts [1] SEQUENCE SIZE (1..MAX) OF - * CMPCertificate OPTIONAL, - * keyPairHist [2] SEQUENCE SIZE (1..MAX) OF - * CertifiedKeyPair OPTIONAL - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(status); - AddOptional(v, 0, newSigCert); - AddOptional(v, 1, caCerts); - AddOptional(v, 2, keyPairHist); - return new DerSequence(v); - } - - private void AddOptional(Asn1EncodableVector v, int tagNo, Asn1Encodable obj) - { - if (obj != null) - { - v.Add(new DerTaggedObject(true, tagNo, obj)); - } - } - } -} diff --git a/crypto/src/asn1/cmp/OobCertHash.cs b/crypto/src/asn1/cmp/OobCertHash.cs deleted file mode 100644 index 63ddff7c4..000000000 --- a/crypto/src/asn1/cmp/OobCertHash.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.Crmf; -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class OobCertHash - : Asn1Encodable - { - private readonly AlgorithmIdentifier hashAlg; - private readonly CertId certId; - private readonly DerBitString hashVal; - - private OobCertHash(Asn1Sequence seq) - { - int index = seq.Count - 1; - - hashVal = DerBitString.GetInstance(seq[index--]); - - for (int i = index; i >= 0; i--) - { - Asn1TaggedObject tObj = (Asn1TaggedObject)seq[i]; - - if (tObj.TagNo == 0) - { - hashAlg = AlgorithmIdentifier.GetInstance(tObj, true); - } - else - { - certId = CertId.GetInstance(tObj, true); - } - } - } - - public static OobCertHash GetInstance(object obj) - { - if (obj is OobCertHash) - return (OobCertHash)obj; - - if (obj is Asn1Sequence) - return new OobCertHash((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual AlgorithmIdentifier HashAlg - { - get { return hashAlg; } - } - - public virtual CertId CertID - { - get { return certId; } - } - - /** - * <pre> - * OobCertHash ::= SEQUENCE { - * hashAlg [0] AlgorithmIdentifier OPTIONAL, - * certId [1] CertId OPTIONAL, - * hashVal BIT STRING - * -- hashVal is calculated over the Der encoding of the - * -- self-signed certificate with the identifier certID. - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(); - AddOptional(v, 0, hashAlg); - AddOptional(v, 1, certId); - v.Add(hashVal); - return new DerSequence(v); - } - - private void AddOptional(Asn1EncodableVector v, int tagNo, Asn1Encodable obj) - { - if (obj != null) - { - v.Add(new DerTaggedObject(true, tagNo, obj)); - } - } - } -} - diff --git a/crypto/src/asn1/cmp/PKIBody.cs b/crypto/src/asn1/cmp/PKIBody.cs deleted file mode 100644 index 3205a907e..000000000 --- a/crypto/src/asn1/cmp/PKIBody.cs +++ /dev/null @@ -1,186 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.Crmf; -using Org.BouncyCastle.Asn1.Pkcs; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PkiBody - : Asn1Encodable, IAsn1Choice - { - public const int TYPE_INIT_REQ = 0; - public const int TYPE_INIT_REP = 1; - public const int TYPE_CERT_REQ = 2; - public const int TYPE_CERT_REP = 3; - public const int TYPE_P10_CERT_REQ = 4; - public const int TYPE_POPO_CHALL = 5; - public const int TYPE_POPO_REP = 6; - public const int TYPE_KEY_UPDATE_REQ = 7; - public const int TYPE_KEY_UPDATE_REP = 8; - public const int TYPE_KEY_RECOVERY_REQ = 9; - public const int TYPE_KEY_RECOVERY_REP = 10; - public const int TYPE_REVOCATION_REQ = 11; - public const int TYPE_REVOCATION_REP = 12; - public const int TYPE_CROSS_CERT_REQ = 13; - public const int TYPE_CROSS_CERT_REP = 14; - public const int TYPE_CA_KEY_UPDATE_ANN = 15; - public const int TYPE_CERT_ANN = 16; - public const int TYPE_REVOCATION_ANN = 17; - public const int TYPE_CRL_ANN = 18; - public const int TYPE_CONFIRM = 19; - public const int TYPE_NESTED = 20; - public const int TYPE_GEN_MSG = 21; - public const int TYPE_GEN_REP = 22; - public const int TYPE_ERROR = 23; - public const int TYPE_CERT_CONFIRM = 24; - public const int TYPE_POLL_REQ = 25; - public const int TYPE_POLL_REP = 26; - - private int tagNo; - private Asn1Encodable body; - - public static PkiBody GetInstance(object obj) - { - if (obj is PkiBody) - return (PkiBody)obj; - - if (obj is Asn1TaggedObject) - return new PkiBody((Asn1TaggedObject)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - private PkiBody(Asn1TaggedObject tagged) - { - tagNo = tagged.TagNo; - body = GetBodyForType(tagNo, tagged.GetObject()); - } - - /** - * Creates a new PkiBody. - * @param type one of the TYPE_* constants - * @param content message content - */ - public PkiBody( - int type, - Asn1Encodable content) - { - tagNo = type; - body = GetBodyForType(type, content); - } - - private static Asn1Encodable GetBodyForType( - int type, - Asn1Encodable o) - { - switch (type) - { - case TYPE_INIT_REQ: - return CertReqMessages.GetInstance(o); - case TYPE_INIT_REP: - return CertRepMessage.GetInstance(o); - case TYPE_CERT_REQ: - return CertReqMessages.GetInstance(o); - case TYPE_CERT_REP: - return CertRepMessage.GetInstance(o); - case TYPE_P10_CERT_REQ: - return CertificationRequest.GetInstance(o); - case TYPE_POPO_CHALL: - return PopoDecKeyChallContent.GetInstance(o); - case TYPE_POPO_REP: - return PopoDecKeyRespContent.GetInstance(o); - case TYPE_KEY_UPDATE_REQ: - return CertReqMessages.GetInstance(o); - case TYPE_KEY_UPDATE_REP: - return CertRepMessage.GetInstance(o); - case TYPE_KEY_RECOVERY_REQ: - return CertReqMessages.GetInstance(o); - case TYPE_KEY_RECOVERY_REP: - return KeyRecRepContent.GetInstance(o); - case TYPE_REVOCATION_REQ: - return RevReqContent.GetInstance(o); - case TYPE_REVOCATION_REP: - return RevRepContent.GetInstance(o); - case TYPE_CROSS_CERT_REQ: - return CertReqMessages.GetInstance(o); - case TYPE_CROSS_CERT_REP: - return CertRepMessage.GetInstance(o); - case TYPE_CA_KEY_UPDATE_ANN: - return CAKeyUpdAnnContent.GetInstance(o); - case TYPE_CERT_ANN: - return CmpCertificate.GetInstance(o); - case TYPE_REVOCATION_ANN: - return RevAnnContent.GetInstance(o); - case TYPE_CRL_ANN: - return CrlAnnContent.GetInstance(o); - case TYPE_CONFIRM: - return PkiConfirmContent.GetInstance(o); - case TYPE_NESTED: - return PkiMessages.GetInstance(o); - case TYPE_GEN_MSG: - return GenMsgContent.GetInstance(o); - case TYPE_GEN_REP: - return GenRepContent.GetInstance(o); - case TYPE_ERROR: - return ErrorMsgContent.GetInstance(o); - case TYPE_CERT_CONFIRM: - return CertConfirmContent.GetInstance(o); - case TYPE_POLL_REQ: - return PollReqContent.GetInstance(o); - case TYPE_POLL_REP: - return PollRepContent.GetInstance(o); - default: - throw new ArgumentException("unknown tag number: " + type, "type"); - } - } - - public virtual int Type - { - get { return tagNo; } - } - - public virtual Asn1Encodable Content - { - get { return body; } - } - - /** - * <pre> - * PkiBody ::= CHOICE { -- message-specific body elements - * ir [0] CertReqMessages, --Initialization Request - * ip [1] CertRepMessage, --Initialization Response - * cr [2] CertReqMessages, --Certification Request - * cp [3] CertRepMessage, --Certification Response - * p10cr [4] CertificationRequest, --imported from [PKCS10] - * popdecc [5] POPODecKeyChallContent, --pop Challenge - * popdecr [6] POPODecKeyRespContent, --pop Response - * kur [7] CertReqMessages, --Key Update Request - * kup [8] CertRepMessage, --Key Update Response - * krr [9] CertReqMessages, --Key Recovery Request - * krp [10] KeyRecRepContent, --Key Recovery Response - * rr [11] RevReqContent, --Revocation Request - * rp [12] RevRepContent, --Revocation Response - * ccr [13] CertReqMessages, --Cross-Cert. Request - * ccp [14] CertRepMessage, --Cross-Cert. Response - * ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann. - * cann [16] CertAnnContent, --Certificate Ann. - * rann [17] RevAnnContent, --Revocation Ann. - * crlann [18] CRLAnnContent, --CRL Announcement - * pkiconf [19] PKIConfirmContent, --Confirmation - * nested [20] NestedMessageContent, --Nested Message - * genm [21] GenMsgContent, --General Message - * genp [22] GenRepContent, --General Response - * error [23] ErrorMsgContent, --Error Message - * certConf [24] CertConfirmContent, --Certificate confirm - * pollReq [25] PollReqContent, --Polling request - * pollRep [26] PollRepContent --Polling response - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return new DerTaggedObject(true, tagNo, body); - } - } -} diff --git a/crypto/src/asn1/cmp/PKIConfirmContent.cs b/crypto/src/asn1/cmp/PKIConfirmContent.cs deleted file mode 100644 index 98645766a..000000000 --- a/crypto/src/asn1/cmp/PKIConfirmContent.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PkiConfirmContent - : Asn1Encodable - { - public static PkiConfirmContent GetInstance(object obj) - { - if (obj is PkiConfirmContent) - return (PkiConfirmContent)obj; - - if (obj is Asn1Null) - return new PkiConfirmContent(); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public PkiConfirmContent() - { - } - - /** - * <pre> - * PkiConfirmContent ::= NULL - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return DerNull.Instance; - } - } -} diff --git a/crypto/src/asn1/cmp/PKIFailureInfo.cs b/crypto/src/asn1/cmp/PKIFailureInfo.cs deleted file mode 100644 index 1df0e0693..000000000 --- a/crypto/src/asn1/cmp/PKIFailureInfo.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - /** - * <pre> - * PKIFailureInfo ::= BIT STRING { - * badAlg (0), - * -- unrecognized or unsupported Algorithm Identifier - * badMessageCheck (1), -- integrity check failed (e.g., signature did not verify) - * badRequest (2), - * -- transaction not permitted or supported - * badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy - * badCertId (4), -- no certificate could be found matching the provided criteria - * badDataFormat (5), - * -- the data submitted has the wrong format - * wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token - * incorrectData (7), -- the requester's data is incorrect (for notary services) - * missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy) - * badPOP (9) -- the proof-of-possession failed - * timeNotAvailable (14), - * -- the TSA's time source is not available - * unacceptedPolicy (15), - * -- the requested TSA policy is not supported by the TSA - * unacceptedExtension (16), - * -- the requested extension is not supported by the TSA - * addInfoNotAvailable (17) - * -- the additional information requested could not be understood - * -- or is not available - * systemFailure (25) - * -- the request cannot be handled due to system failure - * </pre> - */ - public class PkiFailureInfo - : DerBitString - { - public const int BadAlg = (1 << 7); // unrecognized or unsupported Algorithm Identifier - public const int BadMessageCheck = (1 << 6); // integrity check failed (e.g., signature did not verify) - public const int BadRequest = (1 << 5); - public const int BadTime = (1 << 4); // -- messageTime was not sufficiently close to the system time, as defined by local policy - public const int BadCertId = (1 << 3); // no certificate could be found matching the provided criteria - public const int BadDataFormat = (1 << 2); - public const int WrongAuthority = (1 << 1); // the authority indicated in the request is different from the one creating the response token - public const int IncorrectData = 1; // the requester's data is incorrect (for notary services) - public const int MissingTimeStamp = (1 << 15); // when the timestamp is missing but should be there (by policy) - public const int BadPop = (1 << 14); // the proof-of-possession failed - public const int TimeNotAvailable = (1 << 9); // the TSA's time source is not available - public const int UnacceptedPolicy = (1 << 8); // the requested TSA policy is not supported by the TSA - public const int UnacceptedExtension = (1 << 23); //the requested extension is not supported by the TSA - public const int AddInfoNotAvailable = (1 << 22); //the additional information requested could not be understood or is not available - public const int SystemFailure = (1 << 30); //the request cannot be handled due to system failure - - /** - * Basic constructor. - */ - public PkiFailureInfo( - int info) - : base(GetBytes(info), GetPadBits(info)) - { - } - - public PkiFailureInfo( - DerBitString info) - : base(info.GetBytes(), info.PadBits) - { - } - - public override string ToString() - { - return "PkiFailureInfo: 0x" + this.IntValue.ToString("X"); - } - } -} diff --git a/crypto/src/asn1/cmp/PKIFreeText.cs b/crypto/src/asn1/cmp/PKIFreeText.cs deleted file mode 100644 index 571c8d93a..000000000 --- a/crypto/src/asn1/cmp/PKIFreeText.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System; -using System.Collections; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PkiFreeText - : Asn1Encodable - { - internal Asn1Sequence strings; - - public static PkiFreeText GetInstance( - Asn1TaggedObject obj, - bool isExplicit) - { - return GetInstance(Asn1Sequence.GetInstance(obj, isExplicit)); - } - - public static PkiFreeText GetInstance( - object obj) - { - if (obj is PkiFreeText) - { - return (PkiFreeText)obj; - } - else if (obj is Asn1Sequence) - { - return new PkiFreeText((Asn1Sequence)obj); - } - - throw new ArgumentException("Unknown object in factory: " + obj.GetType().Name, "obj"); - } - - public PkiFreeText( - Asn1Sequence seq) - { - foreach (object o in seq) - { - if (!(o is DerUtf8String)) - { - throw new ArgumentException("attempt to insert non UTF8 STRING into PkiFreeText"); - } - } - - this.strings = seq; - } - - public PkiFreeText( - DerUtf8String p) - { - strings = new DerSequence(p); - } - - /** - * Return the number of string elements present. - * - * @return number of elements present. - */ - [Obsolete("Use 'Count' property instead")] - public int Size - { - get { return strings.Count; } - } - - public int Count - { - get { return strings.Count; } - } - - /** - * Return the UTF8STRING at index. - * - * @param index index of the string of interest - * @return the string at index. - */ - public DerUtf8String this[int index] - { - get { return (DerUtf8String) strings[index]; } - } - - [Obsolete("Use 'object[index]' syntax instead")] - public DerUtf8String GetStringAt( - int index) - { - return this[index]; - } - - /** - * <pre> - * PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String - * </pre> - */ - public override Asn1Object ToAsn1Object() - { - return strings; - } - } -} diff --git a/crypto/src/asn1/cmp/PKIHeader.cs b/crypto/src/asn1/cmp/PKIHeader.cs deleted file mode 100644 index e758e9f16..000000000 --- a/crypto/src/asn1/cmp/PKIHeader.cs +++ /dev/null @@ -1,237 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PkiHeader - : Asn1Encodable - { - /** - * Value for a "null" recipient or sender. - */ - public static readonly GeneralName NULL_NAME = new GeneralName(X509Name.GetInstance(new DerSequence())); - - public static readonly int CMP_1999 = 1; - public static readonly int CMP_2000 = 2; - - private readonly DerInteger pvno; - private readonly GeneralName sender; - private readonly GeneralName recipient; - private readonly DerGeneralizedTime messageTime; - private readonly AlgorithmIdentifier protectionAlg; - private readonly Asn1OctetString senderKID; // KeyIdentifier - private readonly Asn1OctetString recipKID; // KeyIdentifier - private readonly Asn1OctetString transactionID; - private readonly Asn1OctetString senderNonce; - private readonly Asn1OctetString recipNonce; - private readonly PkiFreeText freeText; - private readonly Asn1Sequence generalInfo; - - private PkiHeader(Asn1Sequence seq) - { - pvno = DerInteger.GetInstance(seq[0]); - sender = GeneralName.GetInstance(seq[1]); - recipient = GeneralName.GetInstance(seq[2]); - - for (int pos = 3; pos < seq.Count; ++pos) - { - Asn1TaggedObject tObj = (Asn1TaggedObject)seq[pos]; - - switch (tObj.TagNo) - { - case 0: - messageTime = DerGeneralizedTime.GetInstance(tObj, true); - break; - case 1: - protectionAlg = AlgorithmIdentifier.GetInstance(tObj, true); - break; - case 2: - senderKID = Asn1OctetString.GetInstance(tObj, true); - break; - case 3: - recipKID = Asn1OctetString.GetInstance(tObj, true); - break; - case 4: - transactionID = Asn1OctetString.GetInstance(tObj, true); - break; - case 5: - senderNonce = Asn1OctetString.GetInstance(tObj, true); - break; - case 6: - recipNonce = Asn1OctetString.GetInstance(tObj, true); - break; - case 7: - freeText = PkiFreeText.GetInstance(tObj, true); - break; - case 8: - generalInfo = Asn1Sequence.GetInstance(tObj, true); - break; - default: - throw new ArgumentException("unknown tag number: " + tObj.TagNo, "seq"); - } - } - } - - public static PkiHeader GetInstance(object obj) - { - if (obj is PkiHeader) - return (PkiHeader)obj; - - if (obj is Asn1Sequence) - return new PkiHeader((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public PkiHeader( - int pvno, - GeneralName sender, - GeneralName recipient) - : this(new DerInteger(pvno), sender, recipient) - { - } - - private PkiHeader( - DerInteger pvno, - GeneralName sender, - GeneralName recipient) - { - this.pvno = pvno; - this.sender = sender; - this.recipient = recipient; - } - - public virtual DerInteger Pvno - { - get { return pvno; } - } - - public virtual GeneralName Sender - { - get { return sender; } - } - - public virtual GeneralName Recipient - { - get { return recipient; } - } - - public virtual DerGeneralizedTime MessageTime - { - get { return messageTime; } - } - - public virtual AlgorithmIdentifier ProtectionAlg - { - get { return protectionAlg; } - } - - public virtual Asn1OctetString SenderKID - { - get { return senderKID; } - } - - public virtual Asn1OctetString RecipKID - { - get { return recipKID; } - } - - public virtual Asn1OctetString TransactionID - { - get { return transactionID; } - } - - public virtual Asn1OctetString SenderNonce - { - get { return senderNonce; } - } - - public virtual Asn1OctetString RecipNonce - { - get { return recipNonce; } - } - - public virtual PkiFreeText FreeText - { - get { return freeText; } - } - - public virtual InfoTypeAndValue[] GetGeneralInfo() - { - if (generalInfo == null) - { - return null; - } - InfoTypeAndValue[] results = new InfoTypeAndValue[generalInfo.Count]; - for (int i = 0; i < results.Length; i++) - { - results[i] = InfoTypeAndValue.GetInstance(generalInfo[i]); - } - return results; - } - - /** - * <pre> - * PkiHeader ::= SEQUENCE { - * pvno INTEGER { cmp1999(1), cmp2000(2) }, - * sender GeneralName, - * -- identifies the sender - * recipient GeneralName, - * -- identifies the intended recipient - * messageTime [0] GeneralizedTime OPTIONAL, - * -- time of production of this message (used when sender - * -- believes that the transport will be "suitable"; i.e., - * -- that the time will still be meaningful upon receipt) - * protectionAlg [1] AlgorithmIdentifier OPTIONAL, - * -- algorithm used for calculation of protection bits - * senderKID [2] KeyIdentifier OPTIONAL, - * recipKID [3] KeyIdentifier OPTIONAL, - * -- to identify specific keys used for protection - * transactionID [4] OCTET STRING OPTIONAL, - * -- identifies the transaction; i.e., this will be the same in - * -- corresponding request, response, certConf, and PKIConf - * -- messages - * senderNonce [5] OCTET STRING OPTIONAL, - * recipNonce [6] OCTET STRING OPTIONAL, - * -- nonces used to provide replay protection, senderNonce - * -- is inserted by the creator of this message; recipNonce - * -- is a nonce previously inserted in a related message by - * -- the intended recipient of this message - * freeText [7] PKIFreeText OPTIONAL, - * -- this may be used to indicate context-specific instructions - * -- (this field is intended for human consumption) - * generalInfo [8] SEQUENCE SIZE (1..MAX) OF - * InfoTypeAndValue OPTIONAL - * -- this may be used to convey context-specific information - * -- (this field not primarily intended for human consumption) - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(pvno, sender, recipient); - - AddOptional(v, 0, messageTime); - AddOptional(v, 1, protectionAlg); - AddOptional(v, 2, senderKID); - AddOptional(v, 3, recipKID); - AddOptional(v, 4, transactionID); - AddOptional(v, 5, senderNonce); - AddOptional(v, 6, recipNonce); - AddOptional(v, 7, freeText); - AddOptional(v, 8, generalInfo); - - return new DerSequence(v); - } - - private static void AddOptional(Asn1EncodableVector v, int tagNo, Asn1Encodable obj) - { - if (obj != null) - { - v.Add(new DerTaggedObject(true, tagNo, obj)); - } - } - } -} diff --git a/crypto/src/asn1/cmp/PKIHeaderBuilder.cs b/crypto/src/asn1/cmp/PKIHeaderBuilder.cs deleted file mode 100644 index 00073c062..000000000 --- a/crypto/src/asn1/cmp/PKIHeaderBuilder.cs +++ /dev/null @@ -1,223 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PkiHeaderBuilder - { - private DerInteger pvno; - private GeneralName sender; - private GeneralName recipient; - private DerGeneralizedTime messageTime; - private AlgorithmIdentifier protectionAlg; - private Asn1OctetString senderKID; // KeyIdentifier - private Asn1OctetString recipKID; // KeyIdentifier - private Asn1OctetString transactionID; - private Asn1OctetString senderNonce; - private Asn1OctetString recipNonce; - private PkiFreeText freeText; - private Asn1Sequence generalInfo; - - public PkiHeaderBuilder( - int pvno, - GeneralName sender, - GeneralName recipient) - : this(new DerInteger(pvno), sender, recipient) - { - } - - private PkiHeaderBuilder( - DerInteger pvno, - GeneralName sender, - GeneralName recipient) - { - this.pvno = pvno; - this.sender = sender; - this.recipient = recipient; - } - - public virtual PkiHeaderBuilder SetMessageTime(DerGeneralizedTime time) - { - messageTime = time; - return this; - } - - public virtual PkiHeaderBuilder SetProtectionAlg(AlgorithmIdentifier aid) - { - protectionAlg = aid; - return this; - } - - public virtual PkiHeaderBuilder SetSenderKID(byte[] kid) - { - return SetSenderKID(kid == null ? null : new DerOctetString(kid)); - } - - public virtual PkiHeaderBuilder SetSenderKID(Asn1OctetString kid) - { - senderKID = kid; - return this; - } - - public virtual PkiHeaderBuilder SetRecipKID(byte[] kid) - { - return SetRecipKID(kid == null ? null : new DerOctetString(kid)); - } - - public virtual PkiHeaderBuilder SetRecipKID(DerOctetString kid) - { - recipKID = kid; - return this; - } - - public virtual PkiHeaderBuilder SetTransactionID(byte[] tid) - { - return SetTransactionID(tid == null ? null : new DerOctetString(tid)); - } - - public virtual PkiHeaderBuilder SetTransactionID(Asn1OctetString tid) - { - transactionID = tid; - return this; - } - - public virtual PkiHeaderBuilder SetSenderNonce(byte[] nonce) - { - return SetSenderNonce(nonce == null ? null : new DerOctetString(nonce)); - } - - public virtual PkiHeaderBuilder SetSenderNonce(Asn1OctetString nonce) - { - senderNonce = nonce; - return this; - } - - public virtual PkiHeaderBuilder SetRecipNonce(byte[] nonce) - { - return SetRecipNonce(nonce == null ? null : new DerOctetString(nonce)); - } - - public virtual PkiHeaderBuilder SetRecipNonce(Asn1OctetString nonce) - { - recipNonce = nonce; - return this; - } - - public virtual PkiHeaderBuilder SetFreeText(PkiFreeText text) - { - freeText = text; - return this; - } - - public virtual PkiHeaderBuilder SetGeneralInfo(InfoTypeAndValue genInfo) - { - return SetGeneralInfo(MakeGeneralInfoSeq(genInfo)); - } - - public virtual PkiHeaderBuilder SetGeneralInfo(InfoTypeAndValue[] genInfos) - { - return SetGeneralInfo(MakeGeneralInfoSeq(genInfos)); - } - - public virtual PkiHeaderBuilder SetGeneralInfo(Asn1Sequence seqOfInfoTypeAndValue) - { - generalInfo = seqOfInfoTypeAndValue; - return this; - } - - private static Asn1Sequence MakeGeneralInfoSeq( - InfoTypeAndValue generalInfo) - { - return new DerSequence(generalInfo); - } - - private static Asn1Sequence MakeGeneralInfoSeq( - InfoTypeAndValue[] generalInfos) - { - Asn1Sequence genInfoSeq = null; - if (generalInfos != null) - { - Asn1EncodableVector v = new Asn1EncodableVector(); - for (int i = 0; i < generalInfos.Length; ++i) - { - v.Add(generalInfos[i]); - } - genInfoSeq = new DerSequence(v); - } - return genInfoSeq; - } - - /** - * <pre> - * PKIHeader ::= SEQUENCE { - * pvno INTEGER { cmp1999(1), cmp2000(2) }, - * sender GeneralName, - * -- identifies the sender - * recipient GeneralName, - * -- identifies the intended recipient - * messageTime [0] GeneralizedTime OPTIONAL, - * -- time of production of this message (used when sender - * -- believes that the transport will be "suitable"; i.e., - * -- that the time will still be meaningful upon receipt) - * protectionAlg [1] AlgorithmIdentifier OPTIONAL, - * -- algorithm used for calculation of protection bits - * senderKID [2] KeyIdentifier OPTIONAL, - * recipKID [3] KeyIdentifier OPTIONAL, - * -- to identify specific keys used for protection - * transactionID [4] OCTET STRING OPTIONAL, - * -- identifies the transaction; i.e., this will be the same in - * -- corresponding request, response, certConf, and PKIConf - * -- messages - * senderNonce [5] OCTET STRING OPTIONAL, - * recipNonce [6] OCTET STRING OPTIONAL, - * -- nonces used to provide replay protection, senderNonce - * -- is inserted by the creator of this message; recipNonce - * -- is a nonce previously inserted in a related message by - * -- the intended recipient of this message - * freeText [7] PKIFreeText OPTIONAL, - * -- this may be used to indicate context-specific instructions - * -- (this field is intended for human consumption) - * generalInfo [8] SEQUENCE SIZE (1..MAX) OF - * InfoTypeAndValue OPTIONAL - * -- this may be used to convey context-specific information - * -- (this field not primarily intended for human consumption) - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public virtual PkiHeader Build() - { - Asn1EncodableVector v = new Asn1EncodableVector(pvno, sender, recipient); - AddOptional(v, 0, messageTime); - AddOptional(v, 1, protectionAlg); - AddOptional(v, 2, senderKID); - AddOptional(v, 3, recipKID); - AddOptional(v, 4, transactionID); - AddOptional(v, 5, senderNonce); - AddOptional(v, 6, recipNonce); - AddOptional(v, 7, freeText); - AddOptional(v, 8, generalInfo); - - messageTime = null; - protectionAlg = null; - senderKID = null; - recipKID = null; - transactionID = null; - senderNonce = null; - recipNonce = null; - freeText = null; - generalInfo = null; - - return PkiHeader.GetInstance(new DerSequence(v)); - } - - private void AddOptional(Asn1EncodableVector v, int tagNo, Asn1Encodable obj) - { - if (obj != null) - { - v.Add(new DerTaggedObject(true, tagNo, obj)); - } - } - } -} diff --git a/crypto/src/asn1/cmp/PKIMessage.cs b/crypto/src/asn1/cmp/PKIMessage.cs deleted file mode 100644 index 086a2d938..000000000 --- a/crypto/src/asn1/cmp/PKIMessage.cs +++ /dev/null @@ -1,140 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PkiMessage - : Asn1Encodable - { - private readonly PkiHeader header; - private readonly PkiBody body; - private readonly DerBitString protection; - private readonly Asn1Sequence extraCerts; - - private PkiMessage(Asn1Sequence seq) - { - header = PkiHeader.GetInstance(seq[0]); - body = PkiBody.GetInstance(seq[1]); - - for (int pos = 2; pos < seq.Count; ++pos) - { - Asn1TaggedObject tObj = (Asn1TaggedObject)seq[pos].ToAsn1Object(); - - if (tObj.TagNo == 0) - { - protection = DerBitString.GetInstance(tObj, true); - } - else - { - extraCerts = Asn1Sequence.GetInstance(tObj, true); - } - } - } - - public static PkiMessage GetInstance(object obj) - { - if (obj is PkiMessage) - return (PkiMessage)obj; - - if (obj != null) - return new PkiMessage(Asn1Sequence.GetInstance(obj)); - - return null; - } - - /** - * Creates a new PkiMessage. - * - * @param header message header - * @param body message body - * @param protection message protection (may be null) - * @param extraCerts extra certificates (may be null) - */ - public PkiMessage( - PkiHeader header, - PkiBody body, - DerBitString protection, - CmpCertificate[] extraCerts) - { - this.header = header; - this.body = body; - this.protection = protection; - if (extraCerts != null) - { - this.extraCerts = new DerSequence(extraCerts); - } - } - - public PkiMessage( - PkiHeader header, - PkiBody body, - DerBitString protection) - : this(header, body, protection, null) - { - } - - public PkiMessage( - PkiHeader header, - PkiBody body) - : this(header, body, null, null) - { - } - - public virtual PkiHeader Header - { - get { return header; } - } - - public virtual PkiBody Body - { - get { return body; } - } - - public virtual DerBitString Protection - { - get { return protection; } - } - - public virtual CmpCertificate[] GetExtraCerts() - { - if (extraCerts == null) - return null; - - CmpCertificate[] results = new CmpCertificate[extraCerts.Count]; - for (int i = 0; i < results.Length; ++i) - { - results[i] = CmpCertificate.GetInstance(extraCerts[i]); - } - return results; - } - - /** - * <pre> - * PkiMessage ::= SEQUENCE { - * header PKIHeader, - * body PKIBody, - * protection [0] PKIProtection OPTIONAL, - * extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate - * OPTIONAL - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(header, body); - - AddOptional(v, 0, protection); - AddOptional(v, 1, extraCerts); - - return new DerSequence(v); - } - - private static void AddOptional(Asn1EncodableVector v, int tagNo, Asn1Encodable obj) - { - if (obj != null) - { - v.Add(new DerTaggedObject(true, tagNo, obj)); - } - } - } -} diff --git a/crypto/src/asn1/cmp/PKIMessages.cs b/crypto/src/asn1/cmp/PKIMessages.cs deleted file mode 100644 index ddabdf4ae..000000000 --- a/crypto/src/asn1/cmp/PKIMessages.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PkiMessages - : Asn1Encodable - { - private Asn1Sequence content; - - private PkiMessages(Asn1Sequence seq) - { - content = seq; - } - - public static PkiMessages GetInstance(object obj) - { - if (obj is PkiMessages) - return (PkiMessages)obj; - - if (obj is Asn1Sequence) - return new PkiMessages((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public PkiMessages(params PkiMessage[] msgs) - { - content = new DerSequence(msgs); - } - - public virtual PkiMessage[] ToPkiMessageArray() - { - PkiMessage[] result = new PkiMessage[content.Count]; - for (int i = 0; i != result.Length; ++i) - { - result[i] = PkiMessage.GetInstance(content[i]); - } - return result; - } - - /** - * <pre> - * PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} diff --git a/crypto/src/asn1/cmp/PKIStatus.cs b/crypto/src/asn1/cmp/PKIStatus.cs deleted file mode 100644 index b03dd3d62..000000000 --- a/crypto/src/asn1/cmp/PKIStatus.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; - -using Org.BouncyCastle.Math; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public enum PkiStatus - { - Granted = 0, - GrantedWithMods = 1, - Rejection = 2, - Waiting = 3, - RevocationWarning = 4, - RevocationNotification = 5, - KeyUpdateWarning = 6, - } - - public class PkiStatusEncodable - : Asn1Encodable - { - public static readonly PkiStatusEncodable granted = new PkiStatusEncodable(PkiStatus.Granted); - public static readonly PkiStatusEncodable grantedWithMods = new PkiStatusEncodable(PkiStatus.GrantedWithMods); - public static readonly PkiStatusEncodable rejection = new PkiStatusEncodable(PkiStatus.Rejection); - public static readonly PkiStatusEncodable waiting = new PkiStatusEncodable(PkiStatus.Waiting); - public static readonly PkiStatusEncodable revocationWarning = new PkiStatusEncodable(PkiStatus.RevocationWarning); - public static readonly PkiStatusEncodable revocationNotification = new PkiStatusEncodable(PkiStatus.RevocationNotification); - public static readonly PkiStatusEncodable keyUpdateWaiting = new PkiStatusEncodable(PkiStatus.KeyUpdateWarning); - - private readonly DerInteger status; - - private PkiStatusEncodable(PkiStatus status) - : this(new DerInteger((int)status)) - { - } - - private PkiStatusEncodable(DerInteger status) - { - this.status = status; - } - - public static PkiStatusEncodable GetInstance(object obj) - { - if (obj is PkiStatusEncodable) - return (PkiStatusEncodable)obj; - - if (obj is DerInteger) - return new PkiStatusEncodable((DerInteger)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual BigInteger Value - { - get { return status.Value; } - } - - public override Asn1Object ToAsn1Object() - { - return status; - } - } -} diff --git a/crypto/src/asn1/cmp/PKIStatusInfo.cs b/crypto/src/asn1/cmp/PKIStatusInfo.cs deleted file mode 100644 index 2463e0081..000000000 --- a/crypto/src/asn1/cmp/PKIStatusInfo.cs +++ /dev/null @@ -1,165 +0,0 @@ -using System; - -using Org.BouncyCastle.Math; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PkiStatusInfo - : Asn1Encodable - { - DerInteger status; - PkiFreeText statusString; - DerBitString failInfo; - - public static PkiStatusInfo GetInstance( - Asn1TaggedObject obj, - bool isExplicit) - { - return GetInstance(Asn1Sequence.GetInstance(obj, isExplicit)); - } - - public static PkiStatusInfo GetInstance( - object obj) - { - if (obj is PkiStatusInfo) - { - return (PkiStatusInfo)obj; - } - else if (obj is Asn1Sequence) - { - return new PkiStatusInfo((Asn1Sequence)obj); - } - - throw new ArgumentException("Unknown object in factory: " + obj.GetType().Name, "obj"); - } - - public PkiStatusInfo( - Asn1Sequence seq) - { - this.status = DerInteger.GetInstance(seq[0]); - - this.statusString = null; - this.failInfo = null; - - if (seq.Count > 2) - { - this.statusString = PkiFreeText.GetInstance(seq[1]); - this.failInfo = DerBitString.GetInstance(seq[2]); - } - else if (seq.Count > 1) - { - object obj = seq[1]; - if (obj is DerBitString) - { - this.failInfo = DerBitString.GetInstance(obj); - } - else - { - this.statusString = PkiFreeText.GetInstance(obj); - } - } - } - - /** - * @param status - */ - public PkiStatusInfo(int status) - { - this.status = new DerInteger(status); - } - - /** - * @param status - * @param statusString - */ - public PkiStatusInfo( - int status, - PkiFreeText statusString) - { - this.status = new DerInteger(status); - this.statusString = statusString; - } - - public PkiStatusInfo( - int status, - PkiFreeText statusString, - PkiFailureInfo failInfo) - { - this.status = new DerInteger(status); - this.statusString = statusString; - this.failInfo = failInfo; - } - - public BigInteger Status - { - get - { - return status.Value; - } - } - - public PkiFreeText StatusString - { - get - { - return statusString; - } - } - - public DerBitString FailInfo - { - get - { - return failInfo; - } - } - - /** - * <pre> - * PkiStatusInfo ::= SEQUENCE { - * status PKIStatus, (INTEGER) - * statusString PkiFreeText OPTIONAL, - * failInfo PkiFailureInfo OPTIONAL (BIT STRING) - * } - * - * PKIStatus: - * granted (0), -- you got exactly what you asked for - * grantedWithMods (1), -- you got something like what you asked for - * rejection (2), -- you don't get it, more information elsewhere in the message - * waiting (3), -- the request body part has not yet been processed, expect to hear more later - * revocationWarning (4), -- this message contains a warning that a revocation is imminent - * revocationNotification (5), -- notification that a revocation has occurred - * keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg - * - * PkiFailureInfo: - * badAlg (0), -- unrecognized or unsupported Algorithm Identifier - * badMessageCheck (1), -- integrity check failed (e.g., signature did not verify) - * badRequest (2), -- transaction not permitted or supported - * badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy - * badCertId (4), -- no certificate could be found matching the provided criteria - * badDataFormat (5), -- the data submitted has the wrong format - * wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token - * incorrectData (7), -- the requester's data is incorrect (for notary services) - * missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy) - * badPOP (9) -- the proof-of-possession failed - * - * </pre> - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(status); - - if (statusString != null) - { - v.Add(statusString); - } - - if (failInfo!= null) - { - v.Add(failInfo); - } - - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/PbmParameter.cs b/crypto/src/asn1/cmp/PbmParameter.cs deleted file mode 100644 index 59b1bd7bb..000000000 --- a/crypto/src/asn1/cmp/PbmParameter.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PbmParameter - : Asn1Encodable - { - private Asn1OctetString salt; - private AlgorithmIdentifier owf; - private DerInteger iterationCount; - private AlgorithmIdentifier mac; - - private PbmParameter(Asn1Sequence seq) - { - salt = Asn1OctetString.GetInstance(seq[0]); - owf = AlgorithmIdentifier.GetInstance(seq[1]); - iterationCount = DerInteger.GetInstance(seq[2]); - mac = AlgorithmIdentifier.GetInstance(seq[3]); - } - - public static PbmParameter GetInstance(object obj) - { - if (obj is PbmParameter) - return (PbmParameter)obj; - - if (obj is Asn1Sequence) - return new PbmParameter((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public PbmParameter( - byte[] salt, - AlgorithmIdentifier owf, - int iterationCount, - AlgorithmIdentifier mac) - : this(new DerOctetString(salt), owf, new DerInteger(iterationCount), mac) - { - } - - public PbmParameter( - Asn1OctetString salt, - AlgorithmIdentifier owf, - DerInteger iterationCount, - AlgorithmIdentifier mac) - { - this.salt = salt; - this.owf = owf; - this.iterationCount = iterationCount; - this.mac = mac; - } - - public virtual Asn1OctetString Salt - { - get { return salt; } - } - - public virtual AlgorithmIdentifier Owf - { - get { return owf; } - } - - public virtual DerInteger IterationCount - { - get { return iterationCount; } - } - - public virtual AlgorithmIdentifier Mac - { - get { return mac; } - } - - /** - * <pre> - * PbmParameter ::= SEQUENCE { - * salt OCTET STRING, - * -- note: implementations MAY wish to limit acceptable sizes - * -- of this string to values appropriate for their environment - * -- in order to reduce the risk of denial-of-service attacks - * owf AlgorithmIdentifier, - * -- AlgId for a One-Way Function (SHA-1 recommended) - * iterationCount INTEGER, - * -- number of times the OWF is applied - * -- note: implementations MAY wish to limit acceptable sizes - * -- of this integer to values appropriate for their environment - * -- in order to reduce the risk of denial-of-service attacks - * mac AlgorithmIdentifier - * -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11], - * } -- or HMAC [RFC2104, RFC2202]) - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return new DerSequence(salt, owf, iterationCount, mac); - } - } -} diff --git a/crypto/src/asn1/cmp/PollRepContent.cs b/crypto/src/asn1/cmp/PollRepContent.cs deleted file mode 100644 index 4045ac7ed..000000000 --- a/crypto/src/asn1/cmp/PollRepContent.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PollRepContent - : Asn1Encodable - { - private readonly DerInteger certReqId; - private readonly DerInteger checkAfter; - private readonly PkiFreeText reason; - - private PollRepContent(Asn1Sequence seq) - { - certReqId = DerInteger.GetInstance(seq[0]); - checkAfter = DerInteger.GetInstance(seq[1]); - - if (seq.Count > 2) - { - reason = PkiFreeText.GetInstance(seq[2]); - } - } - - public static PollRepContent GetInstance(object obj) - { - if (obj is PollRepContent) - return (PollRepContent)obj; - - if (obj is Asn1Sequence) - return new PollRepContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual DerInteger CertReqID - { - get { return certReqId; } - } - - public virtual DerInteger CheckAfter - { - get { return checkAfter; } - } - - public virtual PkiFreeText Reason - { - get { return reason; } - } - - /** - * <pre> - * PollRepContent ::= SEQUENCE OF SEQUENCE { - * certReqId INTEGER, - * checkAfter INTEGER, -- time in seconds - * reason PKIFreeText OPTIONAL - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(certReqId, checkAfter); - v.AddOptional(reason); - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/PollReqContent.cs b/crypto/src/asn1/cmp/PollReqContent.cs deleted file mode 100644 index ca2164151..000000000 --- a/crypto/src/asn1/cmp/PollReqContent.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PollReqContent - : Asn1Encodable - { - private readonly Asn1Sequence content; - - private PollReqContent(Asn1Sequence seq) - { - content = seq; - } - - public static PollReqContent GetInstance(object obj) - { - if (obj is PollReqContent) - return (PollReqContent)obj; - - if (obj is Asn1Sequence) - return new PollReqContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual DerInteger[][] GetCertReqIDs() - { - DerInteger[][] result = new DerInteger[content.Count][]; - for (int i = 0; i != result.Length; ++i) - { - result[i] = SequenceToDerIntegerArray((Asn1Sequence)content[i]); - } - return result; - } - - private static DerInteger[] SequenceToDerIntegerArray(Asn1Sequence seq) - { - DerInteger[] result = new DerInteger[seq.Count]; - for (int i = 0; i != result.Length; ++i) - { - result[i] = DerInteger.GetInstance(seq[i]); - } - return result; - } - - /** - * <pre> - * PollReqContent ::= SEQUENCE OF SEQUENCE { - * certReqId INTEGER - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} diff --git a/crypto/src/asn1/cmp/PopoDecKeyChallContent.cs b/crypto/src/asn1/cmp/PopoDecKeyChallContent.cs deleted file mode 100644 index 20b173b85..000000000 --- a/crypto/src/asn1/cmp/PopoDecKeyChallContent.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PopoDecKeyChallContent - : Asn1Encodable - { - private readonly Asn1Sequence content; - - private PopoDecKeyChallContent(Asn1Sequence seq) - { - content = seq; - } - - public static PopoDecKeyChallContent GetInstance(object obj) - { - if (obj is PopoDecKeyChallContent) - return (PopoDecKeyChallContent)obj; - - if (obj is Asn1Sequence) - return new PopoDecKeyChallContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual Challenge[] ToChallengeArray() - { - Challenge[] result = new Challenge[content.Count]; - for (int i = 0; i != result.Length; ++i) - { - result[i] = Challenge.GetInstance(content[i]); - } - return result; - } - - /** - * <pre> - * PopoDecKeyChallContent ::= SEQUENCE OF Challenge - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} diff --git a/crypto/src/asn1/cmp/PopoDecKeyRespContent.cs b/crypto/src/asn1/cmp/PopoDecKeyRespContent.cs deleted file mode 100644 index 8c322e4ec..000000000 --- a/crypto/src/asn1/cmp/PopoDecKeyRespContent.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class PopoDecKeyRespContent - : Asn1Encodable - { - private readonly Asn1Sequence content; - - private PopoDecKeyRespContent(Asn1Sequence seq) - { - content = seq; - } - - public static PopoDecKeyRespContent GetInstance(object obj) - { - if (obj is PopoDecKeyRespContent) - return (PopoDecKeyRespContent)obj; - - if (obj is Asn1Sequence) - return new PopoDecKeyRespContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual DerInteger[] ToDerIntegerArray() - { - DerInteger[] result = new DerInteger[content.Count]; - for (int i = 0; i != result.Length; ++i) - { - result[i] = DerInteger.GetInstance(content[i]); - } - return result; - } - - /** - * <pre> - * PopoDecKeyRespContent ::= SEQUENCE OF INTEGER - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} diff --git a/crypto/src/asn1/cmp/ProtectedPart.cs b/crypto/src/asn1/cmp/ProtectedPart.cs deleted file mode 100644 index db6798fee..000000000 --- a/crypto/src/asn1/cmp/ProtectedPart.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class ProtectedPart - : Asn1Encodable - { - private readonly PkiHeader header; - private readonly PkiBody body; - - private ProtectedPart(Asn1Sequence seq) - { - header = PkiHeader.GetInstance(seq[0]); - body = PkiBody.GetInstance(seq[1]); - } - - public static ProtectedPart GetInstance(object obj) - { - if (obj is ProtectedPart) - return (ProtectedPart)obj; - - if (obj is Asn1Sequence) - return new ProtectedPart((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public ProtectedPart(PkiHeader header, PkiBody body) - { - this.header = header; - this.body = body; - } - - public virtual PkiHeader Header - { - get { return header; } - } - - public virtual PkiBody Body - { - get { return body; } - } - - /** - * <pre> - * ProtectedPart ::= SEQUENCE { - * header PKIHeader, - * body PKIBody - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return new DerSequence(header, body); - } - } -} diff --git a/crypto/src/asn1/cmp/RevAnnContent.cs b/crypto/src/asn1/cmp/RevAnnContent.cs deleted file mode 100644 index 2c3bd5f77..000000000 --- a/crypto/src/asn1/cmp/RevAnnContent.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.Crmf; -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class RevAnnContent - : Asn1Encodable - { - private readonly PkiStatusEncodable status; - private readonly CertId certId; - private readonly DerGeneralizedTime willBeRevokedAt; - private readonly DerGeneralizedTime badSinceDate; - private readonly X509Extensions crlDetails; - - private RevAnnContent(Asn1Sequence seq) - { - status = PkiStatusEncodable.GetInstance(seq[0]); - certId = CertId.GetInstance(seq[1]); - willBeRevokedAt = DerGeneralizedTime.GetInstance(seq[2]); - badSinceDate = DerGeneralizedTime.GetInstance(seq[3]); - - if (seq.Count > 4) - { - crlDetails = X509Extensions.GetInstance(seq[4]); - } - } - - public static RevAnnContent GetInstance(object obj) - { - if (obj is RevAnnContent) - return (RevAnnContent)obj; - - if (obj is Asn1Sequence) - return new RevAnnContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual PkiStatusEncodable Status - { - get { return status; } - } - - public virtual CertId CertID - { - get { return certId; } - } - - public virtual DerGeneralizedTime WillBeRevokedAt - { - get { return willBeRevokedAt; } - } - - public virtual DerGeneralizedTime BadSinceDate - { - get { return badSinceDate; } - } - - public virtual X509Extensions CrlDetails - { - get { return crlDetails; } - } - - /** - * <pre> - * RevAnnContent ::= SEQUENCE { - * status PKIStatus, - * certId CertId, - * willBeRevokedAt GeneralizedTime, - * badSinceDate GeneralizedTime, - * crlDetails Extensions OPTIONAL - * -- extra CRL details (e.g., crl number, reason, location, etc.) - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(status, certId, willBeRevokedAt, badSinceDate); - v.AddOptional(crlDetails); - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/RevDetails.cs b/crypto/src/asn1/cmp/RevDetails.cs deleted file mode 100644 index 1bd95f1db..000000000 --- a/crypto/src/asn1/cmp/RevDetails.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.Crmf; -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class RevDetails - : Asn1Encodable - { - private readonly CertTemplate certDetails; - private readonly X509Extensions crlEntryDetails; - - private RevDetails(Asn1Sequence seq) - { - certDetails = CertTemplate.GetInstance(seq[0]); - - if (seq.Count > 1) - { - crlEntryDetails = X509Extensions.GetInstance(seq[1]); - } - } - - public static RevDetails GetInstance(object obj) - { - if (obj is RevDetails) - return (RevDetails)obj; - - if (obj is Asn1Sequence) - return new RevDetails((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public RevDetails(CertTemplate certDetails) - { - this.certDetails = certDetails; - } - - public RevDetails(CertTemplate certDetails, X509Extensions crlEntryDetails) - { - this.crlEntryDetails = crlEntryDetails; - } - - public virtual CertTemplate CertDetails - { - get { return certDetails; } - } - - public virtual X509Extensions CrlEntryDetails - { - get { return crlEntryDetails; } - } - - /** - * <pre> - * RevDetails ::= SEQUENCE { - * certDetails CertTemplate, - * -- allows requester to specify as much as they can about - * -- the cert. for which revocation is requested - * -- (e.g., for cases in which serialNumber is not available) - * crlEntryDetails Extensions OPTIONAL - * -- requested crlEntryExtensions - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(certDetails); - v.AddOptional(crlEntryDetails); - return new DerSequence(v); - } - } -} diff --git a/crypto/src/asn1/cmp/RevRepContent.cs b/crypto/src/asn1/cmp/RevRepContent.cs deleted file mode 100644 index 47987265a..000000000 --- a/crypto/src/asn1/cmp/RevRepContent.cs +++ /dev/null @@ -1,112 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.Crmf; -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class RevRepContent - : Asn1Encodable - { - private readonly Asn1Sequence status; - private readonly Asn1Sequence revCerts; - private readonly Asn1Sequence crls; - - private RevRepContent(Asn1Sequence seq) - { - status = Asn1Sequence.GetInstance(seq[0]); - - for (int pos = 1; pos < seq.Count; ++pos) - { - Asn1TaggedObject tObj = Asn1TaggedObject.GetInstance(seq[pos]); - - if (tObj.TagNo == 0) - { - revCerts = Asn1Sequence.GetInstance(tObj, true); - } - else - { - crls = Asn1Sequence.GetInstance(tObj, true); - } - } - } - - public static RevRepContent GetInstance(object obj) - { - if (obj is RevRepContent) - return (RevRepContent)obj; - - if (obj is Asn1Sequence) - return new RevRepContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public virtual PkiStatusInfo[] GetStatus() - { - PkiStatusInfo[] results = new PkiStatusInfo[status.Count]; - for (int i = 0; i != results.Length; ++i) - { - results[i] = PkiStatusInfo.GetInstance(status[i]); - } - return results; - } - - public virtual CertId[] GetRevCerts() - { - if (revCerts == null) - return null; - - CertId[] results = new CertId[revCerts.Count]; - for (int i = 0; i != results.Length; ++i) - { - results[i] = CertId.GetInstance(revCerts[i]); - } - return results; - } - - public virtual CertificateList[] GetCrls() - { - if (crls == null) - return null; - - CertificateList[] results = new CertificateList[crls.Count]; - for (int i = 0; i != results.Length; ++i) - { - results[i] = CertificateList.GetInstance(crls[i]); - } - return results; - } - - /** - * <pre> - * RevRepContent ::= SEQUENCE { - * status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo, - * -- in same order as was sent in RevReqContent - * revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL, - * -- IDs for which revocation was requested - * -- (same order as status) - * crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL - * -- the resulting CRLs (there may be more than one) - * } - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - Asn1EncodableVector v = new Asn1EncodableVector(status); - AddOptional(v, 0, revCerts); - AddOptional(v, 1, crls); - return new DerSequence(v); - } - - private void AddOptional(Asn1EncodableVector v, int tagNo, Asn1Encodable obj) - { - if (obj != null) - { - v.Add(new DerTaggedObject(true, tagNo, obj)); - } - } - } -} - diff --git a/crypto/src/asn1/cmp/RevRepContentBuilder.cs b/crypto/src/asn1/cmp/RevRepContentBuilder.cs deleted file mode 100644 index cc17d1d4c..000000000 --- a/crypto/src/asn1/cmp/RevRepContentBuilder.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; - -using Org.BouncyCastle.Asn1.Crmf; -using Org.BouncyCastle.Asn1.X509; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class RevRepContentBuilder - { - private readonly Asn1EncodableVector status = new Asn1EncodableVector(); - private readonly Asn1EncodableVector revCerts = new Asn1EncodableVector(); - private readonly Asn1EncodableVector crls = new Asn1EncodableVector(); - - public virtual RevRepContentBuilder Add(PkiStatusInfo status) - { - this.status.Add(status); - return this; - } - - public virtual RevRepContentBuilder Add(PkiStatusInfo status, CertId certId) - { - if (this.status.Count != this.revCerts.Count) - throw new InvalidOperationException("status and revCerts sequence must be in common order"); - - this.status.Add(status); - this.revCerts.Add(certId); - return this; - } - - public virtual RevRepContentBuilder AddCrl(CertificateList crl) - { - this.crls.Add(crl); - return this; - } - - public virtual RevRepContent Build() - { - Asn1EncodableVector v = new Asn1EncodableVector(); - - v.Add(new DerSequence(status)); - - if (revCerts.Count != 0) - { - v.Add(new DerTaggedObject(true, 0, new DerSequence(revCerts))); - } - - if (crls.Count != 0) - { - v.Add(new DerTaggedObject(true, 1, new DerSequence(crls))); - } - - return RevRepContent.GetInstance(new DerSequence(v)); - } - } -} diff --git a/crypto/src/asn1/cmp/RevReqContent.cs b/crypto/src/asn1/cmp/RevReqContent.cs deleted file mode 100644 index fbf869203..000000000 --- a/crypto/src/asn1/cmp/RevReqContent.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; - -namespace Org.BouncyCastle.Asn1.Cmp -{ - public class RevReqContent - : Asn1Encodable - { - private readonly Asn1Sequence content; - - private RevReqContent(Asn1Sequence seq) - { - content = seq; - } - - public static RevReqContent GetInstance(object obj) - { - if (obj is RevReqContent) - return (RevReqContent)obj; - - if (obj is Asn1Sequence) - return new RevReqContent((Asn1Sequence)obj); - - throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj"); - } - - public RevReqContent(params RevDetails[] revDetails) - { - this.content = new DerSequence(revDetails); - } - - public virtual RevDetails[] ToRevDetailsArray() - { - RevDetails[] result = new RevDetails[content.Count]; - for (int i = 0; i != result.Length; ++i) - { - result[i] = RevDetails.GetInstance(content[i]); - } - return result; - } - - /** - * <pre> - * RevReqContent ::= SEQUENCE OF RevDetails - * </pre> - * @return a basic ASN.1 object representation. - */ - public override Asn1Object ToAsn1Object() - { - return content; - } - } -} |