Ignore:
Timestamp:
05/03/11 15:58:45 (13 years ago)
Author:
rafaelraymundo
Message:

Ticket #1813 - Problema com mais de um driver de token configurado.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.0.1/security/ExpressoCert/src/br/gov/serpro/cert/DigitalCertificate.java

    r4123 r4198  
    22 
    33import br.gov.serpro.setup.Setup; 
     4import br.gov.serpro.cert.Token; 
    45import java.awt.Frame; 
    56import java.io.ByteArrayInputStream; 
     
    5859import java.io.OutputStreamWriter; 
    5960import java.security.AlgorithmParameters; 
     61import java.security.NoSuchProviderException; 
    6062import java.security.cert.CertificateEncodingException; 
    6163import java.util.regex.Matcher; 
     
    256258        // TODO: Usar dentro de um "loop" para testar outros modelos de tokens. 
    257259        this.tokens = new TokenCollection(setup); 
    258         int interfaceType = DigitalCertificate.KEYSTORE_DETECTED; 
     260 
     261        Provider[] providers = Security.getProviders(); 
     262        if (this.setup.getParameter("debug").equalsIgnoreCase("true")) { 
     263            for (Provider provider : providers) { 
     264                System.out.println(provider.getInfo()); 
     265            } 
     266        } 
     267 
     268        int interfaceType = DigitalCertificate.KEYSTORE_DETECTED; 
    259269 
    260270        try { 
     
    264274        } catch (Exception e1) { 
    265275 
    266             Provider[] providers = Security.getProviders(); 
    267276            if (this.setup.getParameter("debug").equalsIgnoreCase("true")) { 
    268                 for (Provider provider : providers) { 
    269                     System.out.println(provider.getInfo()); 
    270                 } 
    271  
    272277                // Não conseguiu abrir o token (ePass2000). 
    273278                System.out.println("Erro ao ler o token: " + e1.getMessage()); 
     
    746751     *                                                   ou Smartcard não foi encontrada, ou o usuário não inseriu o Token. 
    747752     */ 
    748     private void loadKeyStore() throws KeyStoreException { 
    749  
    750         //Provider pkcs11Provider = new sun.security.pkcs11.SunPKCS11(new ByteArrayInputStream(pkcs11Config.getBytes())); 
    751         //Security.addProvider(pkcs11Provider); 
    752         this.keyStore = KeyStore.getInstance("PKCS11"); 
    753         this.providerName = keyStore.getProvider().getName(); 
    754  
     753    private void loadKeyStore() throws GeneralSecurityException { 
     754 
     755        try{ 
     756            if (this.setup.getParameter("debug").equalsIgnoreCase("true")) { 
     757                System.out.println("Carregando provider: PKCS11"); 
     758            } 
     759            this.keyStore = KeyStore.getInstance("PKCS11"); 
     760            this.providerName = keyStore.getProvider().getName(); 
     761        } 
     762        catch (GeneralSecurityException kex){ 
     763            if (this.setup.getParameter("debug").equalsIgnoreCase("true")) { 
     764                System.out.println("Erro ao carregar provider: PKCS11"); 
     765                Throwable cause = kex.getCause(); 
     766                kex.printStackTrace(); 
     767                if (cause != null){ 
     768                    cause.printStackTrace(); 
     769                } 
     770            } 
     771            throw kex; 
     772        } 
    755773    } 
    756774 
     
    779797                this.cert = this.keyStore.getCertificate(this.selectedCertificateAlias); 
    780798             
    781                 System.out.println("Aliases (" + this.keyStore.size() + "): "); 
    782799                if (this.setup.getParameter("debug").equalsIgnoreCase("true")) { 
     800                    System.out.println("Aliases (" + this.keyStore.size() + "): "); 
    783801                    for (Enumeration alias = this.keyStore.aliases(); alias.hasMoreElements();) { 
    784802                        System.out.println(alias.nextElement()); 
     
    808826     */ 
    809827    public String getPEMCertificate() throws CertificateEncodingException { 
    810         return Base64Utils.der2pem(this.cert.getEncoded()); 
     828        if (this.cert != null){ 
     829            return Base64Utils.der2pem(this.cert.getEncoded()); 
     830        } 
     831        return null; 
     832 
    811833    } 
    812834 
Note: See TracChangeset for help on using the changeset viewer.