Example usage for org.bouncycastle.asn1.cmp PKIBody TYPE_KEY_UPDATE_REP

List of usage examples for org.bouncycastle.asn1.cmp PKIBody TYPE_KEY_UPDATE_REP

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.cmp PKIBody TYPE_KEY_UPDATE_REP.

Prototype

int TYPE_KEY_UPDATE_REP

To view the source code for org.bouncycastle.asn1.cmp PKIBody TYPE_KEY_UPDATE_REP.

Click Source Link

Usage

From source file:org.ejbca.ui.cmpclient.commands.KeyUpdateRequestCommand.java

License:Open Source License

@Override
public CommandResult handleCMPResponse(byte[] response, ParameterContainer parameters) throws Exception {
    String dest = parameters.get(DESTINATION_KEY);
    if (dest == null) {
        dest = "dest";
        new File("./" + dest).mkdirs();
        log.info("Using default destination directory: ./dest/");
    }/*from ww  w  .  j  a  v  a  2s.  c  om*/

    PKIMessage respObject = null;
    ASN1InputStream asn1InputStream = new ASN1InputStream(new ByteArrayInputStream(response));
    try {
        respObject = PKIMessage.getInstance(asn1InputStream.readObject());
    } finally {
        asn1InputStream.close();
    }
    if (respObject == null) {
        log.error("Cannot construct response object");
        return CommandResult.FUNCTIONAL_FAILURE;
    }

    PKIBody body = respObject.getBody();
    int tag = body.getType();
    if (tag == PKIBody.TYPE_KEY_UPDATE_REP) {
        CertRepMessage c = (CertRepMessage) body.getContent();
        CertResponse resp = c.getResponse()[0];
        PKIStatusInfo status = resp.getStatus();

        if (status.getStatus().intValue() == PKIStatus.GRANTED) {
            final X509Certificate cert = getCertFromResponse(resp);
            final ArrayList<Certificate> certs = new ArrayList<>();
            certs.add(cert);
            final byte[] certBytes = CertTools.getPemFromCertificateChain(certs);

            String certFileName = getDestinationCertFile(dest, parameters.get(SUBJECTDN_KEY));
            final FileOutputStream fos = new FileOutputStream(new File(certFileName));
            fos.write(certBytes);
            fos.close();
            log.info("CRMF request successful. Received certificate stored in " + certFileName);
            return CommandResult.SUCCESS;
        } else {
            final String errMsg = status.getStatusString().getStringAt(0).getString();
            log.error("Recieved CRMF response with status '" + status.getStatus().intValue()
                    + "' and error message: " + errMsg);
        }

    } else if (tag == PKIBody.TYPE_ERROR) {
        log.error("Error response was recieved");
        ErrorMsgContent c = (ErrorMsgContent) body.getContent();
        PKIStatusInfo info = c.getPKIStatusInfo();
        log.error("Error message: " + info.getStatusString().getStringAt(0));
    } else {
        log.error("Recieved response with body type(See PKIBody.java): " + tag);
    }
    return CommandResult.FUNCTIONAL_FAILURE;
}

From source file:org.xipki.ca.client.impl.X509CmpRequestor.java

License:Open Source License

public EnrollCertResultType requestCertificate(final EnrollCertRequestType req, final String username,
        final RequestResponseDebug debug) throws CmpRequestorException, PKIErrorException {
    PKIMessage request = buildPKIMessage(req, username);
    Map<BigInteger, String> reqIdIdMap = new HashMap<>();
    List<EnrollCertRequestEntryType> reqEntries = req.getRequestEntries();

    for (EnrollCertRequestEntryType reqEntry : reqEntries) {
        reqIdIdMap.put(reqEntry.getCertReq().getCertReqId().getValue(), reqEntry.getId());
    }//from  w w  w.  j ava  2 s . c  om

    int exptectedBodyType;
    switch (req.getType()) {
    case CERT_REQ:
        exptectedBodyType = PKIBody.TYPE_CERT_REP;
        break;
    case KEY_UPDATE:
        exptectedBodyType = PKIBody.TYPE_KEY_UPDATE_REP;
        break;
    default:
        exptectedBodyType = PKIBody.TYPE_CROSS_CERT_REP;
    }

    return intern_requestCertificate(request, reqIdIdMap, exptectedBodyType, debug);
}

From source file:org.xipki.ca.server.impl.X509CACmpResponder.java

License:Open Source License

private PKIBody processKur(final CmpRequestorInfo requestor, final String user, final ASN1OctetString tid,
        final PKIHeader reqHeader, final CertReqMessages kur, final long confirmWaitTime,
        final boolean sendCaCert, final AuditEvent auditEvent) throws InsuffientPermissionException {
    CertRepMessage repMessage = processCertReqMessages(requestor, user, tid, reqHeader, kur, true,
            confirmWaitTime, sendCaCert, auditEvent);
    return new PKIBody(PKIBody.TYPE_KEY_UPDATE_REP, repMessage);
}

From source file:org.xipki.pki.ca.client.impl.X509CmpRequestor.java

License:Open Source License

public EnrollCertResultResp requestCertificate(final EnrollCertRequest req, final String username,
        final RequestResponseDebug debug) throws CmpRequestorException, PkiErrorException {
    ParamUtil.requireNonNull("req", req);

    PKIMessage request = buildPkiMessage(req, username);
    Map<BigInteger, String> reqIdIdMap = new HashMap<>();
    List<EnrollCertRequestEntry> reqEntries = req.getRequestEntries();

    for (EnrollCertRequestEntry reqEntry : reqEntries) {
        reqIdIdMap.put(reqEntry.getCertReq().getCertReqId().getValue(), reqEntry.getId());
    }//  w w w. j  a  v  a2s .c  o m

    int exptectedBodyType;
    switch (req.getType()) {
    case CERT_REQ:
        exptectedBodyType = PKIBody.TYPE_CERT_REP;
        break;
    case KEY_UPDATE:
        exptectedBodyType = PKIBody.TYPE_KEY_UPDATE_REP;
        break;
    default:
        exptectedBodyType = PKIBody.TYPE_CROSS_CERT_REP;
    }

    return internRequestCertificate(request, reqIdIdMap, exptectedBodyType, debug);
}

From source file:org.xipki.pki.ca.server.impl.cmp.X509CaCmpResponder.java

License:Open Source License

private PKIBody processKur(final PKIMessage request, final CmpRequestorInfo requestor, final String user,
        final ASN1OctetString tid, final PKIHeader reqHeader, final CertReqMessages kur,
        final CmpControl cmpControl, final String msgId, final AuditEvent event) {
    CertRepMessage repMessage = processCertReqMessages(request, requestor, user, tid, reqHeader, kur, true,
            cmpControl, msgId, event);// ww w. j  a  va 2s .  com
    return new PKIBody(PKIBody.TYPE_KEY_UPDATE_REP, repMessage);
}