private CVCertificateRequest(ASN1ApplicationSpecific request) throws IOException { if (request.getApplicationTag() == EACTags.AUTHENTIFICATION_DATA) { ASN1Sequence seq = ASN1Sequence.getInstance(request.getObject(BERTags.SEQUENCE)); initCertBody(ASN1ApplicationSpecific.getInstance(seq.getObjectAt(0))); outerSignature = ASN1ApplicationSpecific.getInstance(seq.getObjectAt(seq.size() - 1)).getContents(); } else { initCertBody(request); } }
public static CVCertificateRequest getInstance(Object obj) { if (obj instanceof CVCertificateRequest) { return (CVCertificateRequest)obj; } else if (obj != null) { try { return new CVCertificateRequest(ASN1ApplicationSpecific.getInstance(obj)); } catch (IOException e) { throw new ASN1ParsingException("unable to parse data: " + e.getMessage(), e); } } return null; }
public static int encodeTag(ASN1ApplicationSpecific spec) { int retValue = BERTags.APPLICATION; boolean constructed = spec.isConstructed(); if (constructed) { retValue |= BERTags.CONSTRUCTED; } int tag = spec.getApplicationTag(); if (tag > 31) { retValue |= 0x1F; retValue <<= 8; int currentByte = tag & 0x7F; retValue |= currentByte; tag >>= 7; while (tag > 0) { retValue |= 0x80; retValue <<= 8; currentByte = tag & 0x7F; tag >>= 7; } } else { retValue |= tag; } return retValue; }
private void initCertBody(ASN1ApplicationSpecific request) throws IOException { if (request.getApplicationTag() == EACTags.CARDHOLDER_CERTIFICATE) { ASN1Sequence seq = ASN1Sequence.getInstance(request.getObject(BERTags.SEQUENCE)); for (Enumeration en = seq.getObjects(); en.hasMoreElements();) { ASN1ApplicationSpecific obj = ASN1ApplicationSpecific.getInstance(en.nextElement()); switch (obj.getApplicationTag()) { case EACTags.CERTIFICATE_CONTENT_TEMPLATE: certificateBody = CertificateBody.getInstance(obj); valid |= bodyValid; break; case EACTags.STATIC_INTERNAL_AUTHENTIFICATION_ONE_STEP: innerSignature = obj.getContents(); valid |= signValid; break; default: throw new IOException("Invalid tag, not an CV Certificate Request element:" + obj.getApplicationTag()); } } } else { throw new IOException("not a CARDHOLDER_CERTIFICATE in request:" + request.getApplicationTag()); } }
/** * Gives an instance of Iso7816CertificateBody taken from Object obj * * @param obj is the Object to extract the certificate body from. * @return the Iso7816CertificateBody taken from Object obj. * @throws IOException if object is not valid. */ public static CertificateBody getInstance(Object obj) throws IOException { if (obj instanceof CertificateBody) { return (CertificateBody)obj; } else if (obj != null) { return new CertificateBody(ASN1ApplicationSpecific.getInstance(obj)); } return null; }
public static int encodeTag(ASN1ApplicationSpecific appSpe) { int retValue = BERTags.APPLICATION; boolean constructed = appSpe.isConstructed(); if (constructed) retValue |= BERTags.CONSTRUCTED; int tag = appSpe.getApplicationTag(); if (tag > 31) { retValue |= 0x1F; retValue <<= 8; int currentByte = tag & 0x7F; retValue |= currentByte; tag >>= 7; while (tag > 0) { retValue |= 0x80; retValue <<= 8; currentByte = tag & 0x7F; tag >>= 7; } } else retValue |= tag; return retValue; }
public static DiscretionaryDataTemplate getInstance(Object obj) throws IOException { if (obj instanceof DiscretionaryDataTemplate) { return (DiscretionaryDataTemplate) obj; } else if (obj != null) { return new DiscretionaryDataTemplate(ASN1ApplicationSpecific.getInstance(obj)); } return null; }
public static CVExtensions getInstance(Object appSpe) throws IOException { if (appSpe instanceof CVExtensions) { return (CVExtensions)appSpe; } else if (appSpe != null) { return new CVExtensions(ASN1ApplicationSpecific.getInstance(appSpe)); } return null; }
private DiscretionaryDataTemplate(ASN1ApplicationSpecific appSpe) throws IOException { setDiscretionaryData(appSpe); }
private CVExtensions(ASN1ApplicationSpecific appSpe) throws IOException { setCertificateExtensions(appSpe); }
public static AmECPublicKey getInstance(byte[] bytes) throws IOException { ASN1ApplicationSpecific seq = ASN1ApplicationSpecific.getInstance(bytes); AmECPublicKey ecPubKey = new AmECPublicKey(ASN1Sequence.getInstance(seq.getObject(16))); return ecPubKey; }
/** * Create an iso7816Certificate structure from a DERApplicationSpecific. * * @param appSpe the DERApplicationSpecific object. * @return the Iso7816CertificateStructure represented by the DERApplicationSpecific object. * @throws IOException if there is a problem parsing the data. */ private CVCertificate(ASN1ApplicationSpecific appSpe) throws IOException { setPrivateData(appSpe); }
/** * builds an Iso7816CertificateBody with an ASN1InputStream. * * @param obj DERApplicationSpecific containing the whole body. * @throws IOException if the body is not valid. */ private CertificateBody(ASN1ApplicationSpecific obj) throws IOException { setIso7816CertificateBody(obj); }