Example usage for org.bouncycastle.tsp TimeStampRequest getReqPolicy

List of usage examples for org.bouncycastle.tsp TimeStampRequest getReqPolicy

Introduction

In this page you can find the example usage for org.bouncycastle.tsp TimeStampRequest getReqPolicy.

Prototype

public ASN1ObjectIdentifier getReqPolicy() 

Source Link

Usage

From source file:org.signserver.client.cli.defaultimpl.TimeStampCommand.java

License:Open Source License

private void tsaPrintQuery() throws Exception {
    final byte[] bytes = readFiletoBuffer(inreqstring);

    final TimeStampRequest request;
    out.println("Time-stamp request {");

    request = new TimeStampRequest(bytes);
    out.println("  Version:                          " + request.getVersion());

    out.print("  Message imprint digest:           ");
    out.println(new String(Hex.encode(request.getMessageImprintDigest())));

    out.print("  Message imprint algorithm:        ");
    out.println(request.getMessageImprintAlgOID());

    out.print("  Policy:                           ");
    out.println(request.getReqPolicy() != null ? request.getReqPolicy() : "(null)");

    out.print("  Nonce:                            ");
    out.println(request.getNonce() != null ? request.getNonce().toString(16) : "(null)");

    out.print("  Request certificates:             ");
    out.println(request.getCertReq());/*from w w w .j a v  a2s  . c o  m*/

    if (request.hasExtensions()) {
        out.print("  Extensions: ");
        for (Object oid : request.getExtensionOIDs()) {
            if (oid instanceof String) {
                out.print("    " + oid + ": ");
                out.println(new String(Hex.encode(request.getExtensionValue((String) oid))));
            }
        }
    }

    out.println("}");
}

From source file:org.signserver.module.tsa.RequestedPolicyDispatcher.java

License:Open Source License

@Override
public ProcessResponse processData(final ProcessRequest signRequest, final RequestContext context)
        throws IllegalRequestException, CryptoTokenOfflineException, SignServerException {
    final GenericSignResponse result;

    // Log values
    final LogMap logMap = LogMap.getInstance(context);

    // Check context
    final RequestContext nextContext = context;
    if (context.get(this.getClass().getName()) != null) {
        throw new SignServerException("Dispatcher called more then one time for the same request. Aborting.");
    } else {//from  ww w .j av a 2s. c om
        context.put(this.getClass().getName(), "called");
    }

    // Check that the request contains a valid TimeStampRequest object.
    if (!(signRequest instanceof GenericSignRequest)) {
        throw new IllegalRequestException("Recieved request wasn't a expected GenericSignRequest.");
    }
    final ISignRequest sReq = (ISignRequest) signRequest;

    // Get TimeStampRequest
    final TimeStampRequest timeStampRequest;
    if (sReq.getRequestData() instanceof TimeStampRequest) {
        timeStampRequest = (TimeStampRequest) sReq.getRequestData();
    } else if (sReq.getRequestData() instanceof byte[]) {
        try {
            timeStampRequest = new TimeStampRequest((byte[]) sReq.getRequestData());
        } catch (IOException ex) {
            throw new IllegalRequestException("Could not parse TimeStampRequest", ex);
        }
    } else {
        throw new IllegalRequestException("Expected a TimeStampRequest");
    }

    try {
        // Add to context
        if (timeStampRequest.getReqPolicy() != null) {
            nextContext.put(TSA_REQUESTEDPOLICYOID, timeStampRequest.getReqPolicy().getId());
        }

        // Find to which worker the request should be dispatched
        final String toWorker = lookupWorkerToDispatchTo(timeStampRequest, context);
        if (toWorker == null) {
            final TimeStampResponseGenerator gen = new TimeStampResponseGenerator(null, null);
            final String statusString = includeStatusString ? "request contains unknown policy." : null;
            final TimeStampResponse resp = gen.generateFailResponse(PKIStatus.REJECTION,
                    PKIFailureInfo.unacceptedPolicy, statusString);

            // Auditlog
            logMap.put(IWorkerLogger.LOG_CLIENT_AUTHORIZED, "false");
            logMap.put(IWorkerLogger.LOG_EXCEPTION, "requested policy not supported");

            result = new GenericServletResponse(sReq.getRequestID(), resp.getEncoded(), null, null, null,
                    RESPONSE_CONTENT_TYPE);
        } else {
            int toWorkerId = 0;
            try {
                toWorkerId = Integer.parseInt(toWorker);
            } catch (NumberFormatException ignored) {
            }
            if (toWorkerId < 1) {
                toWorkerId = getWorkerSession().getWorkerId(toWorker);
            }

            // Mark request comming from a dispatcher so the DispatchedAuthorizer can be used
            context.put(RequestContext.DISPATCHER_AUTHORIZED_CLIENT, true);

            HttpServletRequest httpRequest = null;
            if (sReq instanceof GenericServletRequest) {
                httpRequest = ((GenericServletRequest) sReq).getHttpServletRequest();
            }
            ProcessRequest newRequest = new GenericServletRequest(sReq.getRequestID(),
                    (byte[]) sReq.getRequestData(), httpRequest);

            result = (GenericSignResponse) getWorkerSession().process(toWorkerId, newRequest, context);
        }
    } catch (IOException e) {
        logMap.put(ITimeStampLogger.LOG_TSA_EXCEPTION, e.getMessage());
        throw new SignServerException("Response message could not be constructed", e);
    } catch (TSPException e) {
        throw new SignServerException("Response message could not be constructed", e);
    }
    return result;
}

From source file:org.signserver.module.tsa.RequestedPolicyDispatcher.java

License:Open Source License

protected String lookupWorkerToDispatchTo(TimeStampRequest timeStampRequest, RequestContext requestContext) {
    String result;//from ww w. j a va 2 s.  c  o  m
    if (timeStampRequest.getReqPolicy() == null) {
        result = defaultWorker;
    } else {
        result = workerMapping.get(timeStampRequest.getReqPolicy().getId());
        if (result == null && useDefaultIfMismatch) {
            result = defaultWorker;
        }
    }
    return result;
}