Example usage for org.bouncycastle.asn1.smime SMIMECapability getInstance

List of usage examples for org.bouncycastle.asn1.smime SMIMECapability getInstance

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.smime SMIMECapability getInstance.

Prototype

public static SMIMECapability getInstance(Object obj) 

Source Link

Usage

From source file:net.sf.keystore_explorer.crypto.x509.X509Ext.java

License:Open Source License

private String getSMIMECapabilitiesStringValue(byte[] octets) throws IOException {

    // @formatter:off

    /*/*from  ww w . j a  v  a2s.c  o m*/
       SMIMECapabilities ::= SEQUENCE OF SMIMECapability
            
       SMIMECapability ::= SEQUENCE
       {
    capabilityID OBJECT IDENTIFIER,
    parameters ANY DEFINED BY capabilityID OPTIONAL
       }
     */

    // @formatter:on

    StringBuilder sb = new StringBuilder();

    int capabilityNr = 0;

    ASN1Sequence asn1Sequence = ASN1Sequence.getInstance(octets);
    for (ASN1Encodable asn1Encodable : asn1Sequence.toArray()) {
        SMIMECapability capability = SMIMECapability.getInstance(asn1Encodable);
        ASN1ObjectIdentifier oid = capability.getCapabilityID();
        ASN1Encodable parameters = capability.getParameters();

        sb.append(MessageFormat.format(res.getString("SMIMECapability"), ++capabilityNr));
        sb.append(NEWLINE);

        sb.append(INDENT);
        sb.append(MessageFormat.format(res.getString("SMIMECapability.ObjectID"), ObjectIdUtil.toString(oid)));
        sb.append(NEWLINE);

        if (parameters != null) {
            sb.append(INDENT);
            sb.append(MessageFormat.format(res.getString("SMIMECapability.Parameter"),
                    HexUtil.getHexString(parameters.toASN1Primitive().getEncoded())));
            sb.append(NEWLINE);
        }
    }

    return sb.toString();
}