Package org.jruby.ext.openssl.x509store

Examples of org.jruby.ext.openssl.x509store.StoreContext


        }

        /* Now verify the certificates */
        if((flags & NOVERIFY) == 0) {
            for(X509AuxCertificate signer : signers) {
                StoreContext cert_ctx = new StoreContext();
                if((flags & NOCHAIN) == 0) {
                    if(cert_ctx.init(store, signer, new ArrayList<X509AuxCertificate>(getSign().getCert())) == 0) {
                        throw new PKCS7Exception(F_PKCS7_VERIFY, -1);
                    }
                    cert_ctx.setPurpose(X509Utils.X509_PURPOSE_SMIME_SIGN);
                } else if(cert_ctx.init(store, signer, null) == 0) {
                    throw new PKCS7Exception(F_PKCS7_VERIFY, -1);
                }
                cert_ctx.setExtraData(1, store.getExtraData(1));
                if((flags & NOCRL) == 0) {
                    cert_ctx.setCRLs((List<X509CRL>)getSign().getCrl());
                }
                try {
                    int i = cert_ctx.verifyCertificate();
                    int j = 0;
                    if(i <= 0) {
                        j = cert_ctx.getError();
                    }
                    cert_ctx.cleanup();
                    if(i <= 0) {
                        throw new PKCS7Exception(F_PKCS7_VERIFY, R_CERTIFICATE_VERIFY_ERROR, "Verify error:" + X509Utils.verifyCertificateErrorString(j));
                    }
                } catch(PKCS7Exception e) {
                    throw e;
View Full Code Here


    private StoreContext ctx;
    private RubyClass cX509Cert;

    public X509StoreCtx(Ruby runtime, RubyClass type) {
        super(runtime, type);
        ctx = new StoreContext();
        cX509Cert = Utils.getClassFromPath(runtime, "OpenSSL::X509::Certificate");
    }
View Full Code Here

        // part of ssl_verify_cert_chain
        StoreContext createStoreContext(String purpose) {
            if (store == null) {
                return null;
            }
            StoreContext ctx = new StoreContext();
            if (ctx.init(store, null, null) == 0) {
                return null;
            }
            // for verify_cb
            ctx.setExtraData(1, store.getExtraData(1));
            if (purpose != null) {
                ctx.setDefault(purpose);
            }
            ctx.param.inherit(store.param);
            return ctx;
        }
View Full Code Here

            }
            ArrayList<java.security.cert.X509Certificate> chain = new ArrayList<java.security.cert.X509Certificate>();
            if (ctx.extraChainCert != null) {
                chain.addAll(ctx.extraChainCert);
            } else if (ctx.cert != null) {
                StoreContext storeCtx = ctx.createStoreContext(null);
                X509AuxCertificate x = ctx.cert;
                while (true) {
                    chain.add(x);
                    if (x.getIssuerDN().equals(x.getSubjectDN())) {
                        break;
                    }
                    try {
                        Name xn = new Name(x.getIssuerX500Principal());
                        X509Object[] s_obj = new X509Object[1];
                        if (storeCtx.getBySubject(X509Utils.X509_LU_X509, xn, s_obj) <= 0) {
                            break;
                        }
                        x = ((Certificate) s_obj[0]).x509;
                    } catch (Exception e) {
                        break;
View Full Code Here

                throw new CertificateException("uninitialized trust manager");
            }
            if (chain != null && chain.length > 0) {
                if ((ctx.verifyMode & SSL.VERIFY_PEER) != 0) {
                    // verify_peer
                    StoreContext storeCtx = ctx.createStoreContext(purpose);
                    if (storeCtx == null) {
                        throw new CertificateException("couldn't initialize store");
                    }
                    storeCtx.setCertificate(chain[0]);
                    storeCtx.setChain(chain);
                    verifyChain(storeCtx);
                }
            } else {
                if ((ctx.verifyMode & SSL.VERIFY_FAIL_IF_NO_PEER_CERT) != 0) {
                    // fail if no peer cert
View Full Code Here

TOP

Related Classes of org.jruby.ext.openssl.x509store.StoreContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.