Java 类org.bouncycastle.asn1.BERTags 实例源码

项目:mDL-ILP    文件:DrivingLicence.java   
private void parseDG1(byte[] DG1) {
    try {
        ASN1InputStream bIn = new ASN1InputStream(DG1);
        org.bouncycastle.asn1.DERApplicationSpecific app = (DERApplicationSpecific) bIn.readObject();

        ASN1Sequence seq = (ASN1Sequence) app.getObject(BERTags.SEQUENCE);
        Enumeration secEnum = seq.getObjects();
        while (secEnum.hasMoreElements()) {
            ASN1Primitive seqObj = (ASN1Primitive) secEnum.nextElement();
            byte[] data = seqObj.getEncoded();
            if (data[0]== 0x41) {
                Log.d("type approval number", ByteUtils.bytesToHex(data));
                this.set5F01(data);
            } else if (data[0] == 0x42) {
                byte[] input = Arrays.copyOfRange(data, 3, data.length);
                parse5F02(input);
            } else if (data[0] == 0x7F) {
                parse7F63(data);
            }
        }
        bIn.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
项目:mDL-ILP    文件:DrivingLicence.java   
private void parseDG11(byte[] DG11) {
    try {
        ASN1InputStream bIn = new ASN1InputStream(DG11);
        org.bouncycastle.asn1.DERApplicationSpecific app = (DERApplicationSpecific) bIn.readObject();

        ASN1Sequence seq = (ASN1Sequence) app.getObject(BERTags.SEQUENCE);
        Enumeration secEnum = seq.getObjects();
        while (secEnum.hasMoreElements()) {
            ASN1Primitive seqObj = (ASN1Primitive) secEnum.nextElement();
            byte[] data = seqObj.getEncoded();
            if (data[0]== 0x7F) {
                parseDG11(data);
            } else if (data[0] == (byte) 0x80) {
                this.setBSN(Arrays.copyOfRange(data, 2, data.length));
            }
        }
        bIn.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
项目:mDL-ILP    文件:PACEAPDUInterface.java   
private byte[] parseNonce(byte[] data) {
    try (ASN1InputStream bIn = new ASN1InputStream(data)) {
        DERApplicationSpecific app = (DERApplicationSpecific) bIn.readObject();

        ASN1Sequence seq = (ASN1Sequence) app.getObject(BERTags.SEQUENCE);

        byte[] tag80 = ((ASN1Primitive) seq.getObjects().nextElement()).getEncoded();

        if (tag80[0] == (byte) 0x80) {

            MessageDigest md = MessageDigest.getInstance("SHA-256");
            byte[] kpi =  md.digest(Bytes.concatenate(CAN.getBytes(), Bytes.bytes("00 00 00 03")));

            return AESUtils.decryptAESCBC(Bytes.allButFirst(tag80, 2), kpi);
        }
    } catch (IOException | NoSuchAlgorithmException e) {
        Log.e(getClass().getName(), "Failed to parse nonce from response data", e);
    }

    return null;
}
项目:mDL-ILP    文件:DrivingLicence.java   
private void parseDG1(byte[] DG1) {
    try (ASN1InputStream bIn = new ASN1InputStream(DG1)) {

        org.bouncycastle.asn1.DERApplicationSpecific app = (DERApplicationSpecific) bIn.readObject();

        ASN1Sequence seq = (ASN1Sequence) app.getObject(BERTags.SEQUENCE);
        Enumeration secEnum = seq.getObjects();
        while (secEnum.hasMoreElements()) {
            ASN1Primitive seqObj = (ASN1Primitive) secEnum.nextElement();
            byte[] data = seqObj.getEncoded();
            if (data[0]== 0x41) {
                Log.d("type approval number", ByteUtils.bytesToHex(data));
                this.set5F01(Bytes.allButFirst(data, 1));
            } else if (data[0] == 0x42) {
                byte[] input = Arrays.copyOfRange(data, 3, data.length);
                parse5F02(input);
            } else if (data[0] == 0x7F) {
                parse7F63(data);
            }
        }
    } catch (IOException e) {
        Log.e(getClass().getName(), e.getMessage(), e);
    }
}
项目:mDL-ILP    文件:DrivingLicence.java   
private void parse7F63(byte[] input) {
    Log.d("input", ByteUtils.bytesToHex(input));
    try (ASN1InputStream bIn = new ASN1InputStream(input)) {
        ASN1Primitive obj = bIn.readObject();
        DERApplicationSpecific app = (DERApplicationSpecific) obj;
        ASN1Sequence seq = (ASN1Sequence) app.getObject(BERTags.SEQUENCE);
        Enumeration secEnum = seq.getObjects();
        List<byte[]> categories = new ArrayList<>();
        while (secEnum.hasMoreElements()) {
            ASN1Primitive seqObj = (ASN1Primitive) secEnum.nextElement();
            byte[] data = seqObj.getEncoded();
            Log.d("5F02data", ByteUtils.bytesToHex(data));
            switch (data[0]) {
                case 0x02:
                    Log.d("#CATEGORY","number of categories:" + data[data.length-1]);
                    break;
                case (byte) 0x87:
                    categories.add(Arrays.copyOfRange(data, 2, data.length));
                    break;
            }
        }
        this.set7F63(categories);
    } catch (IOException e) {
        Log.e(getClass().getName(), e.getMessage(), e);
    }
}
项目:mDL-ILP    文件:DrivingLicence.java   
private void parseDG11(byte[] DG11) {
    try (ASN1InputStream bIn = new ASN1InputStream(DG11)) {
        DERApplicationSpecific app = (DERApplicationSpecific) bIn.readObject();

        ASN1Sequence seq = (ASN1Sequence) app.getObject(BERTags.SEQUENCE);
        Enumeration secEnum = seq.getObjects();
        while (secEnum.hasMoreElements()) {
            ASN1Primitive seqObj = (ASN1Primitive) secEnum.nextElement();
            byte[] data = seqObj.getEncoded();
            if (data[0]== 0x7F) {
                parseDG11(data);
            } else if (data[0] == (byte) 0x80) {
                this.setBSN(Arrays.copyOfRange(data, 2, data.length));
            }
        }
    } catch (IOException e) {
        Log.e(getClass().getName(), e.getMessage(), e);
    }
}
项目:ipack    文件:SignaturePolicyIdentifier.java   
public static SignaturePolicyIdentifier getInstance(
    Object  obj)
{
    if (obj instanceof SignaturePolicyIdentifier)
    {
        return (SignaturePolicyIdentifier)obj;
    }
    else if (obj instanceof ASN1Null || hasEncodedTagValue(obj, BERTags.NULL))
    {
        return new SignaturePolicyIdentifier();
    }
    else if (obj != null)
    {
        return new SignaturePolicyIdentifier(SignaturePolicyId.getInstance(obj));
    }

    return null;
}
项目:ipack    文件:CVCertificateRequest.java   
private CVCertificateRequest(DERApplicationSpecific request)
    throws IOException
{
    if (request.getApplicationTag() == EACTags.AUTHENTIFICATION_DATA)
    {
        ASN1Sequence seq = ASN1Sequence.getInstance(request.getObject(BERTags.SEQUENCE));

        initCertBody(DERApplicationSpecific.getInstance(seq.getObjectAt(0)));

        outerSignature = DERApplicationSpecific.getInstance(seq.getObjectAt(seq.size() - 1)).getContents();
    }
    else
    {
        initCertBody(request);
    }
}
项目:ipack    文件:AuthEnvelopedDataParser.java   
public OriginatorInfo getOriginatorInfo()
    throws IOException
{
    originatorInfoCalled = true;

    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)nextObject).getTagNo() == 0)
    {
        ASN1SequenceParser originatorInfo = (ASN1SequenceParser) ((ASN1TaggedObjectParser)nextObject).getObjectParser(BERTags.SEQUENCE, false);
        nextObject = null;
        return OriginatorInfo.getInstance(originatorInfo.toASN1Primitive());
    }

    return null;
}
项目:ipack    文件:AuthEnvelopedDataParser.java   
public ASN1SetParser getAuthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    // TODO
    // "The authAttrs MUST be present if the content type carried in
    // EncryptedContentInfo is not id-data."

    return null;
}
项目:ipack    文件:AuthEnvelopedDataParser.java   
public ASN1SetParser getUnauthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject != null)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}
项目:ipack    文件:EnvelopedDataParser.java   
public OriginatorInfo getOriginatorInfo() 
    throws IOException
{
    _originatorInfoCalled = true; 

    if (_nextObject == null)
    {
        _nextObject = _seq.readObject();
    }

    if (_nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)_nextObject).getTagNo() == 0)
    {
        ASN1SequenceParser originatorInfo = (ASN1SequenceParser) ((ASN1TaggedObjectParser)_nextObject).getObjectParser(BERTags.SEQUENCE, false);
        _nextObject = null;
        return OriginatorInfo.getInstance(originatorInfo.toASN1Primitive());
    }

    return null;
}
项目:ipack    文件:EnvelopedDataParser.java   
public ASN1SetParser getUnprotectedAttrs()
    throws IOException
{
    if (_nextObject == null)
    {
        _nextObject = _seq.readObject();
    }


    if (_nextObject != null)
    {
        ASN1Encodable o = _nextObject;
        _nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}
项目:ipack    文件:SignedDataParser.java   
public ASN1SetParser getCertificates()
    throws IOException
{
    _certsCalled = true;
    _nextObject = _seq.readObject();

    if (_nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)_nextObject).getTagNo() == 0)
    {
        ASN1SetParser certs = (ASN1SetParser)((ASN1TaggedObjectParser)_nextObject).getObjectParser(BERTags.SET, false);
        _nextObject = null;

        return certs;
    }

    return null;
}
项目:ipack    文件:SignedDataParser.java   
public ASN1SetParser getCrls()
    throws IOException
{
    if (!_certsCalled)
    {
        throw new IOException("getCerts() has not been called.");
    }

    _crlsCalled = true;

    if (_nextObject == null)
    {
        _nextObject = _seq.readObject();
    }

    if (_nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)_nextObject).getTagNo() == 1)
    {
        ASN1SetParser crls = (ASN1SetParser)((ASN1TaggedObjectParser)_nextObject).getObjectParser(BERTags.SET, false);
        _nextObject = null;

        return crls;
    }

    return null;
}
项目:ipack    文件:AuthenticatedDataParser.java   
public OriginatorInfo getOriginatorInfo()
    throws IOException
{
    originatorInfoCalled = true;

    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)nextObject).getTagNo() == 0)
    {
        ASN1SequenceParser originatorInfo = (ASN1SequenceParser) ((ASN1TaggedObjectParser)nextObject).getObjectParser(BERTags.SEQUENCE, false);
        nextObject = null;
        return OriginatorInfo.getInstance(originatorInfo.toASN1Primitive());
    }

    return null;
}
项目:ipack    文件:AuthenticatedDataParser.java   
public ASN1SetParser getAuthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}
项目:ipack    文件:AuthenticatedDataParser.java   
public ASN1SetParser getUnauthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject != null)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}
项目:ipack    文件:CMSCompressedDataParser.java   
/**
 * @deprecated  use getContent(InputExpandedProvider)
 */
public CMSTypedStream  getContent()
    throws CMSException
{
    try
    {
        CompressedDataParser  comData = new CompressedDataParser((ASN1SequenceParser)_contentInfo.getContent(BERTags.SEQUENCE));
        ContentInfoParser     content = comData.getEncapContentInfo();

        ASN1OctetStringParser bytes = (ASN1OctetStringParser)content.getContent(BERTags.OCTET_STRING);

        return new CMSTypedStream(content.getContentType().toString(), new InflaterInputStream(bytes.getOctetStream()));
    }
    catch (IOException e)
    {
        throw new CMSException("IOException reading compressed content.", e);
    }
}
项目:ipack    文件:CMSCompressedDataParser.java   
/**
 * Return a typed stream which will allow the reading of the compressed content in
 * expanded form.
 *
 * @param expanderProvider a provider of expander algorithm implementations.
 * @return a type stream which will yield the un-compressed content.
 * @throws CMSException if there is an exception parsing the CompressedData object.
 */
public CMSTypedStream  getContent(InputExpanderProvider expanderProvider)
    throws CMSException
{
    try
    {
        CompressedDataParser  comData = new CompressedDataParser((ASN1SequenceParser)_contentInfo.getContent(BERTags.SEQUENCE));
        ContentInfoParser     content = comData.getEncapContentInfo();
        InputExpander expander = expanderProvider.get(comData.getCompressionAlgorithmIdentifier());

        ASN1OctetStringParser bytes = (ASN1OctetStringParser)content.getContent(BERTags.OCTET_STRING);

        return new CMSTypedStream(content.getContentType().getId(), expander.getInputStream(bytes.getOctetStream()));
    }
    catch (IOException e)
    {
        throw new CMSException("IOException reading compressed content.", e);
    }
}
项目:ipack    文件:CMSTimeStampedDataParser.java   
private void initialize(ContentInfoParser contentInfo)
    throws CMSException
{
    try
    {
        if (CMSObjectIdentifiers.timestampedData.equals(contentInfo.getContentType()))
        {
            this.timeStampedData = TimeStampedDataParser.getInstance(contentInfo.getContent(BERTags.SEQUENCE));
        }
        else
        {
            throw new IllegalArgumentException("Malformed content - type must be " + CMSObjectIdentifiers.timestampedData.getId());
        }
    }
    catch (IOException e)
    {
        throw new CMSException("parsing exception: " + e.getMessage(), e);
    }
}
项目:gwt-crypto    文件:SignaturePolicyIdentifier.java   
public static SignaturePolicyIdentifier getInstance(
    Object  obj)
{
    if (obj instanceof SignaturePolicyIdentifier)
    {
        return (SignaturePolicyIdentifier)obj;
    }
    else if (obj instanceof ASN1Null || hasEncodedTagValue(obj, BERTags.NULL))
    {
        return new SignaturePolicyIdentifier();
    }
    else if (obj != null)
    {
        return new SignaturePolicyIdentifier(SignaturePolicyId.getInstance(obj));
    }

    return null;
}
项目:gwt-crypto    文件:CVCertificateRequest.java   
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);
    }
}
项目:gwt-crypto    文件:AuthEnvelopedDataParser.java   
public OriginatorInfo getOriginatorInfo()
    throws IOException
{
    originatorInfoCalled = true;

    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)nextObject).getTagNo() == 0)
    {
        ASN1SequenceParser originatorInfo = (ASN1SequenceParser) ((ASN1TaggedObjectParser)nextObject).getObjectParser(BERTags.SEQUENCE, false);
        nextObject = null;
        return OriginatorInfo.getInstance(originatorInfo.toASN1Primitive());
    }

    return null;
}
项目:gwt-crypto    文件:AuthEnvelopedDataParser.java   
public ASN1SetParser getAuthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    // "The authAttrs MUST be present if the content type carried in
    // EncryptedContentInfo is not id-data."
    if (!authEncryptedContentInfoParser.getContentType().equals(CMSObjectIdentifiers.data))
    {
        throw new ASN1ParsingException("authAttrs must be present with non-data content");
    }

    return null;
}
项目:gwt-crypto    文件:AuthEnvelopedDataParser.java   
public ASN1SetParser getUnauthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject != null)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}
项目:gwt-crypto    文件:EnvelopedDataParser.java   
public OriginatorInfo getOriginatorInfo() 
    throws IOException
{
    _originatorInfoCalled = true; 

    if (_nextObject == null)
    {
        _nextObject = _seq.readObject();
    }

    if (_nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)_nextObject).getTagNo() == 0)
    {
        ASN1SequenceParser originatorInfo = (ASN1SequenceParser) ((ASN1TaggedObjectParser)_nextObject).getObjectParser(BERTags.SEQUENCE, false);
        _nextObject = null;
        return OriginatorInfo.getInstance(originatorInfo.toASN1Primitive());
    }

    return null;
}
项目:gwt-crypto    文件:EnvelopedDataParser.java   
public ASN1SetParser getUnprotectedAttrs()
    throws IOException
{
    if (_nextObject == null)
    {
        _nextObject = _seq.readObject();
    }


    if (_nextObject != null)
    {
        ASN1Encodable o = _nextObject;
        _nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}
项目:gwt-crypto    文件:SignedDataParser.java   
public ASN1SetParser getCertificates()
    throws IOException
{
    _certsCalled = true;
    _nextObject = _seq.readObject();

    if (_nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)_nextObject).getTagNo() == 0)
    {
        ASN1SetParser certs = (ASN1SetParser)((ASN1TaggedObjectParser)_nextObject).getObjectParser(BERTags.SET, false);
        _nextObject = null;

        return certs;
    }

    return null;
}
项目:gwt-crypto    文件:SignedDataParser.java   
public ASN1SetParser getCrls()
    throws IOException
{
    if (!_certsCalled)
    {
        throw new IOException("getCerts() has not been called.");
    }

    _crlsCalled = true;

    if (_nextObject == null)
    {
        _nextObject = _seq.readObject();
    }

    if (_nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)_nextObject).getTagNo() == 1)
    {
        ASN1SetParser crls = (ASN1SetParser)((ASN1TaggedObjectParser)_nextObject).getObjectParser(BERTags.SET, false);
        _nextObject = null;

        return crls;
    }

    return null;
}
项目:gwt-crypto    文件:AuthenticatedDataParser.java   
public OriginatorInfo getOriginatorInfo()
    throws IOException
{
    originatorInfoCalled = true;

    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)nextObject).getTagNo() == 0)
    {
        ASN1SequenceParser originatorInfo = (ASN1SequenceParser) ((ASN1TaggedObjectParser)nextObject).getObjectParser(BERTags.SEQUENCE, false);
        nextObject = null;
        return OriginatorInfo.getInstance(originatorInfo.toASN1Primitive());
    }

    return null;
}
项目:gwt-crypto    文件:AuthenticatedDataParser.java   
public ASN1SetParser getAuthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}
项目:gwt-crypto    文件:AuthenticatedDataParser.java   
public ASN1SetParser getUnauthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject != null)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}
项目:gwt-crypto    文件:CMSCompressedDataParser.java   
/**
 * Return a typed stream which will allow the reading of the compressed content in
 * expanded form.
 *
 * @param expanderProvider a provider of expander algorithm implementations.
 * @return a type stream which will yield the un-compressed content.
 * @throws CMSException if there is an exception parsing the CompressedData object.
 */
public CMSTypedStream  getContent(InputExpanderProvider expanderProvider)
    throws CMSException
{
    try
    {
        CompressedDataParser  comData = new CompressedDataParser((ASN1SequenceParser)_contentInfo.getContent(BERTags.SEQUENCE));
        ContentInfoParser     content = comData.getEncapContentInfo();
        InputExpander expander = expanderProvider.get(comData.getCompressionAlgorithmIdentifier());

        ASN1OctetStringParser bytes = (ASN1OctetStringParser)content.getContent(BERTags.OCTET_STRING);

        return new CMSTypedStream(content.getContentType().getId(), expander.getInputStream(bytes.getOctetStream()));
    }
    catch (IOException e)
    {
        throw new CMSException("IOException reading compressed content.", e);
    }
}
项目:gwt-crypto    文件:CMSTimeStampedDataParser.java   
private void initialize(ContentInfoParser contentInfo)
    throws CMSException
{
    try
    {
        if (CMSObjectIdentifiers.timestampedData.equals(contentInfo.getContentType()))
        {
            this.timeStampedData = TimeStampedDataParser.getInstance(contentInfo.getContent(BERTags.SEQUENCE));
        }
        else
        {
            throw new IllegalArgumentException("Malformed content - type must be " + CMSObjectIdentifiers.timestampedData.getId());
        }
    }
    catch (IOException e)
    {
        throw new CMSException("parsing exception: " + e.getMessage(), e);
    }
}
项目:Aki-SSL    文件:SignaturePolicyIdentifier.java   
public static SignaturePolicyIdentifier getInstance(
    Object  obj)
{
    if (obj instanceof SignaturePolicyIdentifier)
    {
        return (SignaturePolicyIdentifier)obj;
    }
    else if (obj instanceof ASN1Null || hasEncodedTagValue(obj, BERTags.NULL))
    {
        return new SignaturePolicyIdentifier();
    }
    else if (obj != null)
    {
        return new SignaturePolicyIdentifier(SignaturePolicyId.getInstance(obj));
    }

    return null;
}
项目:Aki-SSL    文件:CVCertificateRequest.java   
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);
    }
}
项目:Aki-SSL    文件:AuthEnvelopedDataParser.java   
public OriginatorInfo getOriginatorInfo()
    throws IOException
{
    originatorInfoCalled = true;

    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser && ((ASN1TaggedObjectParser)nextObject).getTagNo() == 0)
    {
        ASN1SequenceParser originatorInfo = (ASN1SequenceParser) ((ASN1TaggedObjectParser)nextObject).getObjectParser(BERTags.SEQUENCE, false);
        nextObject = null;
        return OriginatorInfo.getInstance(originatorInfo.toASN1Primitive());
    }

    return null;
}
项目:Aki-SSL    文件:AuthEnvelopedDataParser.java   
public ASN1SetParser getAuthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject instanceof ASN1TaggedObjectParser)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    // "The authAttrs MUST be present if the content type carried in
    // EncryptedContentInfo is not id-data."
    if (!authEncryptedContentInfoParser.getContentType().equals(CMSObjectIdentifiers.data))
    {
        throw new ASN1ParsingException("authAttrs must be present with non-data content");
    }

    return null;
}
项目:Aki-SSL    文件:AuthEnvelopedDataParser.java   
public ASN1SetParser getUnauthAttrs()
    throws IOException
{
    if (nextObject == null)
    {
        nextObject = seq.readObject();
    }

    if (nextObject != null)
    {
        ASN1Encodable o = nextObject;
        nextObject = null;
        return (ASN1SetParser)((ASN1TaggedObjectParser)o).getObjectParser(BERTags.SET, false);
    }

    return null;
}