/** * Produce an object suitable for an ASN1OutputStream. * <pre> * TBSRequest ::= SEQUENCE { * version [0] EXPLICIT Version DEFAULT v1, * requestorName [1] EXPLICIT GeneralName OPTIONAL, * requestList SEQUENCE OF Request, * requestExtensions [2] EXPLICIT Extensions OPTIONAL } * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); // // if default don't include. // if (version.getValue().intValue() != 0) { v.add(new DERTaggedObject(true, 0, version)); } if (requestorName != null) { v.add(new DERTaggedObject(true, 1, requestorName)); } v.add(requestList); if (requestExtensions != null) { v.add(new DERTaggedObject(true, 2, requestExtensions)); } return(new DERSequence(v)); }
/** * When using authenticatedAttributes the authentication process is different. * The document digest is generated and put inside the attribute. The signing is done over the DER encoded * authenticatedAttributes. This method provides that encoding and the parameters must be * exactly the same as in {@link #getEncodedPKCS7(byte[],Calendar)}. * <p> * A simple example: * <p> * <pre> * Calendar cal = Calendar.getInstance(); * PdfPKCS7 pk7 = new PdfPKCS7(key, chain, null, "SHA1", null, false); * MessageDigest messageDigest = MessageDigest.getInstance("SHA1"); * byte buf[] = new byte[8192]; * int n; * Stream inp = sap.getRangeStream(); * while ((n = inp.read(buf)) > 0) { * messageDigest.update(buf, 0, n); * } * byte hash[] = messageDigest.digest(); * byte sh[] = pk7.getAuthenticatedAttributeBytes(hash, cal); * pk7.update(sh, 0, sh.length); * byte sg[] = pk7.getEncodedPKCS7(hash, cal); * </pre> * @param secondDigest the content digest * @param signingTime the signing time * @return the byte array representation of the authenticatedAttributes ready to be signed */ public byte[] GetAuthenticatedAttributeBytes(byte[] secondDigest, DateTime signingTime) { ASN1EncodableVector attribute = new ASN1EncodableVector(); ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new DERObjectIdentifier(ID_CONTENT_TYPE)); v.add(new DERSet(new DERObjectIdentifier(ID_PKCS7_DATA))); attribute.add(new DERSequence(v)); v = new ASN1EncodableVector(); v.add(new DERObjectIdentifier(ID_SIGNING_TIME)); v.add(new DERSet(new DERUTCTime(signingTime))); attribute.add(new DERSequence(v)); v = new ASN1EncodableVector(); v.add(new DERObjectIdentifier(ID_MESSAGE_DIGEST)); v.add(new DERSet(new DEROctetString(secondDigest))); attribute.add(new DERSequence(v)); MemoryStream bOut = new MemoryStream(); ASN1OutputStream dout = new ASN1OutputStream(bOut); dout.writeObject(new DERSet(attribute)); dout.Close(); return(bOut.ToArray()); }
public override ASN1Object toASN1Object() { ASN1EncodableVector vec = new ASN1EncodableVector(); IEnumerator e = ordering.GetEnumerator(); while (e.MoveNext()) { DERObjectIdentifier oid = (DERObjectIdentifier)e.Current; X509Extension ext = (X509Extension)extensions[oid]; ASN1EncodableVector v = new ASN1EncodableVector(); v.add(oid); if (ext.isCritical()) { v.add(new DERBoolean(true)); } v.add(ext.getValue()); vec.add(new DERSequence(v)); } return(new DERSequence(vec)); }
public TBSCertificateStructure generateTBSCertificate() { if ((serialNumber == null) || (signature == null) || (issuer == null) || (startDate == null) || (endDate == null) || (subject == null) || (subjectPublicKeyInfo == null)) { throw new InvalidOperationException("not all mandatory fields set in V1 TBScertificate generator"); } ASN1EncodableVector seq = new ASN1EncodableVector(); // seq.add(version); - not required as default value seq.add(serialNumber); seq.add(signature); seq.add(issuer); // // before and after dates // ASN1EncodableVector validity = new ASN1EncodableVector(); validity.add(startDate); validity.add(endDate); seq.add(new DERSequence(validity)); seq.add(subject); seq.add(subjectPublicKeyInfo); return(new TBSCertificateStructure(new DERSequence(seq))); }
/** * generate a signature for the message we've been loaded with using * the key we were initialised with. */ public byte[] generateSignature() { if (forSigning) { MemoryStream bOut = new MemoryStream(); DEROutputStream dOut = new DEROutputStream(bOut); ASN1EncodableVector v = new ASN1EncodableVector(); byte[] dig = new byte[digest.getDigestSize()]; digest.doFinal(dig, 0); BigInteger[] sig = dsaSigner.generateSignature(dig); v.add(new DERInteger(sig[0])); v.add(new DERInteger(sig[1])); dOut.writeObject(new DERSequence(v)); dOut.Flush(); byte[] output = bOut.ToArray(); dOut.Close(); return(output); } throw new Exception("DSADigestSigner initialised for verification.."); }
/** * Describe <code>toASN1Object</code> method here. * * @return a <code>ASN1Object</code> value */ public override ASN1Object toASN1Object() { ASN1EncodableVector av = new ASN1EncodableVector(); av.add(organization); av.add(noticeNumbers); return(new DERSequence(av)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(algId); v.add(new DEROctetString(digest)); return(new DERSequence(v)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(func); v.add(scheme); return(new DERSequence(v)); }
/** * Produce an object suitable for an ASN1OutputStream. * <pre> * Attribute ::= SEQUENCE { * attrType OBJECT IDENTIFIER, * attrValues SET OF AttributeValue * } * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(attrType); v.add(attrValues); return(new DERSequence(v)); }
/** * This outputs the key in PKCS1v2 format. * <pre> * RSAPublicKey ::= SEQUENCE { * modulus INTEGER, -- n * publicExponent INTEGER, -- e * } * </pre> * <p> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new DERInteger(getModulus())); v.add(new DERInteger(getPublicExponent())); return(new DERSequence(v)); }
/** * Returns a DER-encodable representation of this instance. * * @return a <code>ASN1Object</code> value */ public override ASN1Object toASN1Object() { ASN1EncodableVector dev = new ASN1EncodableVector(); dev.add(policyQualifierId); dev.add(qualifier); return(new DERSequence(dev)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(objectId); v.add(obj); return(new DERSequence(v)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(certId); v.add(new DERTaggedObject(0, certValue)); return(new DERSequence(v)); }
/** * Produce an object suitable for an ASN1OutputStream. * <pre> * OriginatorPublicKey ::= SEQUENCE { * algorithm AlgorithmIdentifier, * publicKey BIT STRING * } * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(algorithm); v.add(publicKey); return(new DERSequence(v)); }
/** * Produce an object suitable for an ASN1OutputStream. * <pre> * AttCertValidityPeriod ::= SEQUENCE { * notBeforeTime GeneralizedTime, * notAfterTime GeneralizedTime * } * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(notBeforeTime); v.add(notAfterTime); return(new DERSequence(v)); }
/** * Produce a DER encoding of the following structure. * <pre> * FieldID ::= SEQUENCE { * fieldType FIELD-ID.&id({IOSet}), * parameters FIELD-ID.&Type({IOSet}{@fieldType}) * } * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(this.id); v.add(this.parameters); return(new DERSequence(v)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(name); v.add(certSerialNumber); return(new DERSequence(v)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new DERInteger(0)); v.add(data); return(new BERSequence(v)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(iv); v.add(iterations); return(new DERSequence(v)); }
/** * Produce an object suitable for an ASN1OutputStream. * <pre> * ResponseBytes ::= SEQUENCE { * responseType OBJECT IDENTIFIER, * response OCTET STRING } * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(responseType); v.add(response); return(new DERSequence(v)); }
/** * Produce an object suitable for an ASN1OutputStream. * <pre> * AttributeCertificate ::= SEQUENCE { * acinfo AttributeCertificateInfo, * signatureAlgorithm AlgorithmIdentifier, * signatureValue BIT STRING * } * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(acinfo); v.add(signatureAlgorithm); v.add(signatureValue); return(new DERSequence(v)); }
public AttributeTable( ASN1EncodableVector v) { for (int i = 0; i != v.size(); i++) { Attribute a = Attribute.getInstance(v.get(i)); attributes.Add(a.getAttrType(), a); } }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(digInfo); v.add(new DEROctetString(salt)); v.add(new DERInteger(iterationCount)); return(new DERSequence(v)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(version); v.add(compressionAlgorithm); v.add(encapContentInfo); return(new BERSequence(v)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(tbsCertList); v.add(sigAlgId); v.add(sig); return(new DERSequence(v)); }
/** * write out an RSA private key with it's asscociated information * as described in PKCS8. * <pre> * PrivateKeyInfo ::= SEQUENCE { * version Version, * privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}}, * privateKey PrivateKey, * attributes [0] IMPLICIT Attributes OPTIONAL * } * Version ::= INTEGER {v1(0)} (v1,...) * * PrivateKey ::= OCTET STRING * * Attributes ::= SET OF Attribute * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new DERInteger(0)); v.add(algId); v.add(new DEROctetString(privKey)); return(new DERSequence(v)); }
public void addCapability( DERObjectIdentifier capability, ASN1Encodable _params) { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(capability); v.add(_params); capabilities.add(new DERSequence(v)); }
public void addCapability( DERObjectIdentifier capability, int value) { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(capability); v.add(new DERInteger(value)); capabilities.add(new DERSequence(v)); }
/** * Produce an object suitable for an ASN1OutputStream. * <pre> * KEKRecipientInfo ::= SEQUENCE { * version CMSVersion, -- always set to 4 * kekid KEKIdentifier, * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, * encryptedKey EncryptedKey * } * </pre> */ public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(version); v.add(kekid); v.add(keyEncryptionAlgorithm); v.add(encryptedKey); return(new DERSequence(v)); }
public override ASN1Object toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); for (int i = 0; i != info.Length; i++) { v.add(info[i]); } return(new BERSequence(v)); }