Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
BEGIN LICENSE BLOCK ***** Version: CPL 1.0/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Common Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.eclipse.org/legal/cpl-v10.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. Copyright (C) 2006 Ola Bini <ola@ologix.com> Alternatively, the contents of this file may be used under the terms of either of the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the CPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the CPL, the GPL or the LGPL. END LICENSE BLOCK ***
 
 package org.jruby.ext.openssl.x509store;
 
 import java.util.List;

Used to handle OpenSSL errors in a sane way. These are not safe for multi runtimes at the moments.

Author(s):
Ola Bini
 
 public class X509Error {
     private static ThreadLocal<List<ErrorException>> errors = new ThreadLocal<List<ErrorException>>();
 
     public static class ErrorException extends Exception {
         private static final long serialVersionUID = -3214495184277468063L;
 
         private int reason;
 
         public ErrorException(int reason) {
             super();
             this. = reason;
         }
 
         public int getReason() {
             return ;
         }
 
         @Override
         public String getMessage() {
             switch () {
             case .:
                 return "bad x509 filetype";
             case .:
                 return "base64 decode error";
             case .:
                 return "cant check dh key";
             case .:
                 return "cert already in hash table";
             case .:
                 return "err asn1 lib";
             case .:
                 return "invalid directory";
             case .:
                 return "invalid field name";
             case .:
                 return "invalid trust";
             case .:
                 return "key type mismatch";
             case .:
                 return "key values mismatch";
             case .:
                 return "loading cert dir";
             case .:
                 return "loading defaults";
             case .:
                 return "method not supported";
             case .:
                 return "no cert set for us to verify";
             case .:
                 return "public key decode error";
             case .:
                 return "public key encode error";
             case .:
                 return "should retry";
                 return "unable to find parameters in chain";
             case .:
                 return "unable to get certs public key";
             case .:
                 return "unknown key type";
             case .:
                return "unknown nid";
            case .:
                return "unknown purpose id";
            case .:
                return "unknown trust id";
            case .:
                return "unsupported algorithm";
            case .:
                return "wrong lookup type";
            case .:
                return "wrong type";
            default:
                return "(unknown X509 error)";
            }
        }
    }
    public static void addError(int reason) {
        synchronized () {
            List<ErrorExceptionerrs = .get();
            if (errs == null) {
                errs = new ArrayList<ErrorException>();
                .set(errs);
            }
            errs.add(new ErrorException(reason));
        }
    }
    public static void clearErrors() {
        synchronized () {
            List<ErrorExceptionerrs = .get();
            if (errs != null) {
                errs.clear();
            }
        }
    }
    
    public static List<ErrorExceptiongetErrors() {
        synchronized () {
            List<ErrorExceptionerrs = .get();
            if (errs == null) {
                errs = new ArrayList<ErrorException>();
                .set(errs);
            }
            return errs;
        }
    }
}// Err
New to GrepCode? Check out our FAQ X