diff options
Diffstat (limited to 'core/src/main/java/org/bouncycastle/asn1/cmp/PKIHeader.java')
-rw-r--r-- | core/src/main/java/org/bouncycastle/asn1/cmp/PKIHeader.java | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/core/src/main/java/org/bouncycastle/asn1/cmp/PKIHeader.java b/core/src/main/java/org/bouncycastle/asn1/cmp/PKIHeader.java deleted file mode 100644 index 82f1b087..00000000 --- a/core/src/main/java/org/bouncycastle/asn1/cmp/PKIHeader.java +++ /dev/null @@ -1,260 +0,0 @@ -package org.bouncycastle.asn1.cmp; - -import java.util.Enumeration; - -import org.bouncycastle.asn1.ASN1Encodable; -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1GeneralizedTime; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1Object; -import org.bouncycastle.asn1.ASN1OctetString; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.ASN1TaggedObject; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.DERTaggedObject; -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.GeneralName; - -public class PKIHeader - extends ASN1Object -{ - /** - * Value for a "null" recipient or sender. - */ - public static final GeneralName NULL_NAME = new GeneralName(X500Name.getInstance(new DERSequence())); - - public static final int CMP_1999 = 1; - public static final int CMP_2000 = 2; - - private ASN1Integer pvno; - private GeneralName sender; - private GeneralName recipient; - private ASN1GeneralizedTime 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; - - private PKIHeader(ASN1Sequence seq) - { - Enumeration en = seq.getObjects(); - - pvno = ASN1Integer.getInstance(en.nextElement()); - sender = GeneralName.getInstance(en.nextElement()); - recipient = GeneralName.getInstance(en.nextElement()); - - while (en.hasMoreElements()) - { - ASN1TaggedObject tObj = (ASN1TaggedObject)en.nextElement(); - - switch (tObj.getTagNo()) - { - case 0: - messageTime = ASN1GeneralizedTime.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 IllegalArgumentException("unknown tag number: " + tObj.getTagNo()); - } - } - } - - public static PKIHeader getInstance(Object o) - { - if (o instanceof PKIHeader) - { - return (PKIHeader)o; - } - - if (o != null) - { - return new PKIHeader(ASN1Sequence.getInstance(o)); - } - - return null; - } - - public PKIHeader( - int pvno, - GeneralName sender, - GeneralName recipient) - { - this(new ASN1Integer(pvno), sender, recipient); - } - - private PKIHeader( - ASN1Integer pvno, - GeneralName sender, - GeneralName recipient) - { - this.pvno = pvno; - this.sender = sender; - this.recipient = recipient; - } - - public ASN1Integer getPvno() - { - return pvno; - } - - public GeneralName getSender() - { - return sender; - } - - public GeneralName getRecipient() - { - return recipient; - } - - public ASN1GeneralizedTime getMessageTime() - { - return messageTime; - } - - public AlgorithmIdentifier getProtectionAlg() - { - return protectionAlg; - } - - public ASN1OctetString getSenderKID() - { - return senderKID; - } - - public ASN1OctetString getRecipKID() - { - return recipKID; - } - - public ASN1OctetString getTransactionID() - { - return transactionID; - } - - public ASN1OctetString getSenderNonce() - { - return senderNonce; - } - - public ASN1OctetString getRecipNonce() - { - return recipNonce; - } - - public PKIFreeText getFreeText() - { - return freeText; - } - - public InfoTypeAndValue[] getGeneralInfo() - { - if (generalInfo == null) - { - return null; - } - InfoTypeAndValue[] results = new InfoTypeAndValue[generalInfo.size()]; - for (int i = 0; i < results.length; i++) - { - results[i] - = InfoTypeAndValue.getInstance(generalInfo.getObjectAt(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 ASN1Primitive toASN1Primitive() - { - ASN1EncodableVector v = new ASN1EncodableVector(); - - v.add(pvno); - v.add(sender); - v.add(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 void addOptional(ASN1EncodableVector v, int tagNo, ASN1Encodable obj) - { - if (obj != null) - { - v.add(new DERTaggedObject(true, tagNo, obj)); - } - } -} |