Example usage for org.bouncycastle.asn1.cmp PKIHeaderBuilder setGeneralInfo

List of usage examples for org.bouncycastle.asn1.cmp PKIHeaderBuilder setGeneralInfo

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.cmp PKIHeaderBuilder setGeneralInfo.

Prototype

public PKIHeaderBuilder setGeneralInfo(ASN1Sequence seqOfInfoTypeAndValue) 

Source Link

Usage

From source file:org.ejbca.core.protocol.cmp.CmpMessageHelper.java

License:Open Source License

public static PKIHeaderBuilder getHeaderBuilder(PKIHeader head) {
    PKIHeaderBuilder builder = new PKIHeaderBuilder(head.getPvno().getValue().intValue(), head.getSender(),
            head.getRecipient());/*w  w w. j  ava 2  s . c  o  m*/
    builder.setFreeText(head.getFreeText());
    builder.setGeneralInfo(head.getGeneralInfo());
    builder.setMessageTime(head.getMessageTime());
    builder.setRecipKID((DEROctetString) head.getRecipKID());
    builder.setRecipNonce(head.getRecipNonce());
    builder.setSenderKID(head.getSenderKID());
    builder.setSenderNonce(head.getSenderNonce());
    builder.setTransactionID(head.getTransactionID());
    return builder;
}

From source file:org.ejbca.ui.cmpclient.CmpClientMessageHelper.java

License:Open Source License

private PKIHeaderBuilder getHeaderBuilder(PKIHeader head) {
    PKIHeaderBuilder builder = new PKIHeaderBuilder(head.getPvno().getValue().intValue(), head.getSender(),
            head.getRecipient());/* ww w  . ja  v  a2  s.  c om*/
    builder.setFreeText(head.getFreeText());
    builder.setGeneralInfo(head.getGeneralInfo());
    builder.setMessageTime(head.getMessageTime());
    builder.setRecipKID((DEROctetString) head.getRecipKID());
    builder.setRecipNonce(head.getRecipNonce());
    builder.setSenderKID(head.getSenderKID());
    builder.setSenderNonce(head.getSenderNonce());
    builder.setTransactionID(head.getTransactionID());
    return builder;
}

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

License:Open Source License

protected PKIHeader buildPKIHeader(final boolean addImplictConfirm, final ASN1OctetString tid,
        final CmpUtf8Pairs utf8Pairs, final InfoTypeAndValue... additionalGeneralInfos) {
    if (additionalGeneralInfos != null) {
        for (InfoTypeAndValue itv : additionalGeneralInfos) {
            ASN1ObjectIdentifier type = itv.getInfoType();
            if (CMPObjectIdentifiers.it_implicitConfirm.equals(type)) {
                throw new IllegalArgumentException(
                        "" + "additionGeneralInfos contains unpermitted ITV implicitConfirm");
            }/*from  w ww  . j a  v a  2s .  c  o m*/

            if (CMPObjectIdentifiers.regInfo_utf8Pairs.equals(type)) {
                throw new IllegalArgumentException(
                        "" + "additionGeneralInfos contains unpermitted ITV utf8Pairs");
            }
        }
    }

    PKIHeaderBuilder hBuilder = new PKIHeaderBuilder(PKIHeader.CMP_2000, sender,
            recipient != null ? recipient : DUMMY_RECIPIENT);
    hBuilder.setMessageTime(new ASN1GeneralizedTime(new Date()));

    ASN1OctetString _tid;
    if (tid == null) {
        _tid = new DEROctetString(randomTransactionId());
    } else {
        _tid = tid;
    }

    hBuilder.setTransactionID(_tid);

    List<InfoTypeAndValue> itvs = new ArrayList<>(2);
    if (addImplictConfirm) {
        itvs.add(CmpUtil.getImplictConfirmGeneralInfo());
    }

    if (utf8Pairs != null) {
        itvs.add(CmpUtil.buildInfoTypeAndValue(utf8Pairs));
    }

    if (additionalGeneralInfos != null) {
        for (InfoTypeAndValue itv : additionalGeneralInfos) {
            if (itv != null) {
                itvs.add(itv);
            }
        }
    }

    if (CollectionUtil.isNotEmpty(itvs)) {
        hBuilder.setGeneralInfo(itvs.toArray(new InfoTypeAndValue[0]));
    }

    return hBuilder.build();
}

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

License:Open Source License

private PKIBody cmpEnrollCert(final PKIHeaderBuilder respHeader, final CmpControl cmpControl,
        final PKIHeader reqHeader, final PKIBody reqBody, final CmpRequestorInfo requestor, final String user,
        final ASN1OctetString tid, final AuditEvent auditEvent) throws InsuffientPermissionException {
    long confirmWaitTime = cmpControl.getConfirmWaitTime();
    if (confirmWaitTime < 0) {
        confirmWaitTime *= -1;//from www . j  a  v a2s. c om
    }
    confirmWaitTime *= 1000; // second to millisecond
    boolean sendCaCert = cmpControl.isSendCaCert();

    PKIBody respBody;

    int type = reqBody.getType();
    switch (type) {
    case PKIBody.TYPE_CERT_REQ:
        addAutitEventType(auditEvent, "CERT_REQ");
        checkPermission(requestor, Permission.ENROLL_CERT);
        respBody = processCr(requestor, user, tid, reqHeader, (CertReqMessages) reqBody.getContent(),
                confirmWaitTime, sendCaCert, auditEvent);
        break;
    case PKIBody.TYPE_KEY_UPDATE_REQ:
        addAutitEventType(auditEvent, "KEY_UPDATE");
        checkPermission(requestor, Permission.KEY_UPDATE);
        respBody = processKur(requestor, user, tid, reqHeader, (CertReqMessages) reqBody.getContent(),
                confirmWaitTime, sendCaCert, auditEvent);
        break;
    case PKIBody.TYPE_P10_CERT_REQ:
        addAutitEventType(auditEvent, "CERT_REQ");
        checkPermission(requestor, Permission.ENROLL_CERT);
        respBody = processP10cr(requestor, user, tid, reqHeader, (CertificationRequest) reqBody.getContent(),
                confirmWaitTime, sendCaCert, auditEvent);
        break;
    case PKIBody.TYPE_CROSS_CERT_REQ:
        addAutitEventType(auditEvent, "CROSS_CERT_REQ");
        checkPermission(requestor, Permission.CROSS_CERT_ENROLL);
        respBody = processCcp(requestor, user, tid, reqHeader, (CertReqMessages) reqBody.getContent(),
                confirmWaitTime, sendCaCert, auditEvent);
        break;
    default:
        throw new RuntimeException("should not reach here");
    } // switch type

    InfoTypeAndValue tv = null;
    if (cmpControl.isConfirmCert() == false && CmpUtil.isImplictConfirm(reqHeader)) {
        pendingCertPool.removeCertificates(tid.getOctets());
        tv = CmpUtil.getImplictConfirmGeneralInfo();
    } else {
        Date now = new Date();
        respHeader.setMessageTime(new ASN1GeneralizedTime(now));
        tv = new InfoTypeAndValue(CMPObjectIdentifiers.it_confirmWaitTime,
                new ASN1GeneralizedTime(new Date(System.currentTimeMillis() + confirmWaitTime)));
    }

    respHeader.setGeneralInfo(tv);
    return respBody;
}

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

License:Open Source License

protected PKIHeader buildPkiHeader(final boolean addImplictConfirm, final ASN1OctetString tid,
        final CmpUtf8Pairs utf8Pairs, final InfoTypeAndValue... additionalGeneralInfos) {
    if (additionalGeneralInfos != null) {
        for (InfoTypeAndValue itv : additionalGeneralInfos) {
            ASN1ObjectIdentifier type = itv.getInfoType();
            if (CMPObjectIdentifiers.it_implicitConfirm.equals(type)) {
                throw new IllegalArgumentException(
                        "additionGeneralInfos contains not-permitted ITV implicitConfirm");
            }/*  ww w  .jav  a  2s  .co m*/

            if (CMPObjectIdentifiers.regInfo_utf8Pairs.equals(type)) {
                throw new IllegalArgumentException("additionGeneralInfos contains not-permitted ITV utf8Pairs");
            }
        }
    }

    PKIHeaderBuilder hdrBuilder = new PKIHeaderBuilder(PKIHeader.CMP_2000, sender, recipient);
    hdrBuilder.setMessageTime(new ASN1GeneralizedTime(new Date()));

    ASN1OctetString tmpTid = (tid == null) ? new DEROctetString(randomTransactionId()) : tid;
    hdrBuilder.setTransactionID(tmpTid);

    List<InfoTypeAndValue> itvs = new ArrayList<>(2);
    if (addImplictConfirm) {
        itvs.add(CmpUtil.getImplictConfirmGeneralInfo());
    }

    if (utf8Pairs != null) {
        itvs.add(CmpUtil.buildInfoTypeAndValue(utf8Pairs));
    }

    if (additionalGeneralInfos != null) {
        for (InfoTypeAndValue itv : additionalGeneralInfos) {
            if (itv != null) {
                itvs.add(itv);
            }
        }
    }

    if (CollectionUtil.isNonEmpty(itvs)) {
        hdrBuilder.setGeneralInfo(itvs.toArray(new InfoTypeAndValue[0]));
    }

    return hdrBuilder.build();
}

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

License:Open Source License

private PKIBody cmpEnrollCert(final PKIMessage request, final PKIHeaderBuilder respHeader,
        final CmpControl cmpControl, final PKIHeader reqHeader, final PKIBody reqBody,
        final CmpRequestorInfo requestor, final String user, final ASN1OctetString tid, final String msgId,
        final AuditEvent event) throws InsuffientPermissionException {
    long confirmWaitTime = cmpControl.getConfirmWaitTime();
    if (confirmWaitTime < 0) {
        confirmWaitTime *= -1;//from w  ww. ja v a 2  s  .c om
    }
    confirmWaitTime *= 1000; // second to millisecond

    PKIBody respBody;

    int type = reqBody.getType();
    switch (type) {
    case PKIBody.TYPE_CERT_REQ:
        checkPermission(requestor, Permission.ENROLL_CERT);
        respBody = processCr(request, requestor, user, tid, reqHeader,
                CertReqMessages.getInstance(reqBody.getContent()), cmpControl, msgId, event);
        break;
    case PKIBody.TYPE_KEY_UPDATE_REQ:
        checkPermission(requestor, Permission.KEY_UPDATE);
        respBody = processKur(request, requestor, user, tid, reqHeader,
                CertReqMessages.getInstance(reqBody.getContent()), cmpControl, msgId, event);
        break;
    case PKIBody.TYPE_P10_CERT_REQ:
        checkPermission(requestor, Permission.ENROLL_CERT);
        respBody = processP10cr(request, requestor, user, tid, reqHeader,
                CertificationRequest.getInstance(reqBody.getContent()), cmpControl, msgId, event);
        break;
    case PKIBody.TYPE_CROSS_CERT_REQ:
        checkPermission(requestor, Permission.CROSS_CERT_ENROLL);
        respBody = processCcp(request, requestor, user, tid, reqHeader,
                CertReqMessages.getInstance(reqBody.getContent()), cmpControl, msgId, event);
        break;
    default:
        throw new RuntimeException("should not reach here");
    } // switch type

    InfoTypeAndValue tv = null;
    if (!cmpControl.isConfirmCert() && CmpUtil.isImplictConfirm(reqHeader)) {
        pendingCertPool.removeCertificates(tid.getOctets());
        tv = CmpUtil.getImplictConfirmGeneralInfo();
    } else {
        Date now = new Date();
        respHeader.setMessageTime(new ASN1GeneralizedTime(now));
        tv = new InfoTypeAndValue(CMPObjectIdentifiers.it_confirmWaitTime,
                new ASN1GeneralizedTime(new Date(System.currentTimeMillis() + confirmWaitTime)));
    }

    respHeader.setGeneralInfo(tv);
    return respBody;
}