package org.bouncycastle.cert.cmp;

import java.io.IOException;

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.cmp.PKIBody;
import org.bouncycastle.asn1.cmp.PKIHeader;
import org.bouncycastle.asn1.cmp.PKIMessage;
import org.bouncycastle.cert.CertIOException;

General wrapper for a generic PKIMessage
/** * General wrapper for a generic PKIMessage */
public class GeneralPKIMessage { private final PKIMessage pkiMessage; private static PKIMessage parseBytes(byte[] encoding) throws IOException { try { return PKIMessage.getInstance(ASN1Primitive.fromByteArray(encoding)); } catch (ClassCastException e) { throw new CertIOException("malformed data: " + e.getMessage(), e); } catch (IllegalArgumentException e) { throw new CertIOException("malformed data: " + e.getMessage(), e); } }
Create a PKIMessage from the passed in bytes.
Params:
  • encoding – BER/DER encoding of the PKIMessage
Throws:
  • IOException – in the event of corrupted data, or an incorrect structure.
/** * Create a PKIMessage from the passed in bytes. * * @param encoding BER/DER encoding of the PKIMessage * @throws IOException in the event of corrupted data, or an incorrect structure. */
public GeneralPKIMessage(byte[] encoding) throws IOException { this(parseBytes(encoding)); }
Wrap a PKIMessage ASN.1 structure.
Params:
  • pkiMessage – base PKI message.
/** * Wrap a PKIMessage ASN.1 structure. * * @param pkiMessage base PKI message. */
public GeneralPKIMessage(PKIMessage pkiMessage) { this.pkiMessage = pkiMessage; } public PKIHeader getHeader() { return pkiMessage.getHeader(); } public PKIBody getBody() { return pkiMessage.getBody(); }
Return true if this message has protection bits on it. A return value of true indicates the message can be used to construct a ProtectedPKIMessage.
Returns:true if message has protection, false otherwise.
/** * Return true if this message has protection bits on it. A return value of true * indicates the message can be used to construct a ProtectedPKIMessage. * * @return true if message has protection, false otherwise. */
public boolean hasProtection() { return pkiMessage.getHeader().getProtectionAlg() != null; } public PKIMessage toASN1Structure() { return pkiMessage; } }