Changeset 8860b8f in dispositivos_moviles for TibisayMovil/src
- Timestamp:
- Sep 18, 2013, 5:04:24 PM (11 years ago)
- Branches:
- master
- Children:
- c95e4a6
- Parents:
- 95d372e
- Location:
- TibisayMovil/src/ve/gob/cenditel/tibisaymovil
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
TibisayMovil/src/ve/gob/cenditel/tibisaymovil/ActivitySignatureErrors.java
r95d372e r8860b8f 51 51 52 52 Bundle bundle = getIntent().getExtras(); 53 String test = bundle.getString("string"); 53 String test = bundle.getString("numeroObjetoError"); 54 //Log.d("ActivitySignatureErrors.onCreate", "numero de objetos de error: "+test); 54 55 55 56 ArrayList<SignatureErrorDetail> errorList = (ArrayList<SignatureErrorDetail>) bundle.getSerializable("SignatureErrorDetailList"); 56 Log.d("ActivitySignatureErrors:", "obteniendo ArrayList<SignatureErrorDetail> errorList");57 Log.d("ActivitySignatureErrors", Integer.toString(errorList.size()));57 //Log.d("ActivitySignatureErrors:", "obteniendo ArrayList<SignatureErrorDetail> errorList"); 58 //Log.d("ActivitySignatureErrors: numero de objetos de error:", Integer.toString(errorList.size())); 58 59 60 //Log.d("ActivitySignatureErrors: firmante del objeto 0", errorList.get(0).getSigner()); 61 //Log.d("ActivitySignatureErrors: numero de errores del objeto 0", Integer.toString(errorList.get(0).getListError().size())); 62 //Log.d("ActivitySignatureErrors: firmante del objeto 1", errorList.get(1).getSigner()); 63 //Log.d("ActivitySignatureErrors: numero de errores del objeto 1", Integer.toString(errorList.get(1).getListError().size())); 64 65 // asignacion del adaptador 59 66 SignatureErrorDetailAdapter errorsAdapter = new SignatureErrorDetailAdapter(ActivitySignatureErrors.this, errorList); 60 67 errorsListView.setAdapter(errorsAdapter); … … 133 140 container.signature_icon = (ImageView) convertView.findViewById(R.id.signature_icon); 134 141 convertView.setTag(container); 135 } else{142 }//else{ 136 143 container = (ViewHolder) convertView.getTag(); 137 }144 //} 138 145 139 146 SignatureErrorDetail detailError = (SignatureErrorDetail) getItem(position); … … 142 149 //container.signature_errors.setText(detailError.getError()); 143 150 container.signature_errors.setText(detailError.getTransalatedStringError()); 151 Log.d("SignatureErrorDetailAdapter: position: "+Integer.toString(position), "Integer.toString(position)"); 152 Log.d("SignatureErrorDetailAdapter: signer: ", detailError.getSigner()); 153 Log.d("SignatureErrorDetailAdapter: lista de errores:", detailError.getTransalatedStringError()); 144 154 145 155 -
TibisayMovil/src/ve/gob/cenditel/tibisaymovil/BDOCUtils.java
r88eadd6 r8860b8f 82 82 } 83 83 84 public static String translateError(String e) { 85 String translatedError = null; 86 87 if (e.contains("Missing signature value!")) { 88 translatedError = "Error interno: El valor de la firma no se encontró en el archivo."; 89 } 90 if (e.contains("Signers cert missing!")) { 91 translatedError = "El certificado del firmante no se encuentó."; 92 } 93 if (e.contains("Signers cert not trusted, missing CA cert!")) { 94 translatedError = "El certificado del firmante no es confiable; No se encuentra el certificado de la AC que lo emitió."; 95 } 96 if (e.contains("Signers cert does not have non-repudiation bit set!")) { 97 translatedError = "El certificado del firmante no posee el uso de clave no repudio o Sin-rechazo."; 98 } 99 if (e.contains("No notarys certificate!")) { 100 translatedError = "No se encontró el certificado para el servidor OCSP."; 101 } 102 if (e.contains("Wrong notarys certificate:")) { 103 translatedError = "El certificado del servidor OCSP es incorrecto."; 104 } 105 if (e.contains("Notary certificates digest doesn't match!")) { 106 translatedError = "Error interno: La reseña o hash del certificado del servidor OCSP no coincide."; 107 } 108 if (e.contains("Error calculating notary certificate digest!")) { 109 translatedError = "Error interno: la reseña o hash del certificado del servidor OCSP no es correcta."; 110 } 111 if (e.contains("does not match OcpsRef-s producedAt:")) { 112 translatedError = "La hora de la notarización de la firma del servidor OCSP no es correcta"; 113 } 114 if (e.contains("Currently supports only one OCSP. Invalid ocsp")) { 115 translatedError = "Servidor OCSP inválido. Sólo está soportado un servidor OCSP."; 116 } 117 if (e.contains("No Reference element for DataFile:")) { 118 translatedError = "Error interno: no hay elemento de referencia para uno de los archivos firmados."; 119 } 120 if (e.contains("Invalid or missing signers cert!")) { 121 translatedError = "El certificado del firmante es inválido o no se encuentra en el archivo."; 122 } 123 if (e.contains("Invalid signature method!")) { 124 translatedError = "Algoritmo de firma no soportado."; 125 } 126 if (e.contains("Signature method:")) { 127 translatedError = "El algoritmo de firma no está disponible en la aplicación."; 128 } 129 if (e.contains("Invalid signature value! Signers cert and signature value don't match!")) { 130 translatedError = "Error interno: el valor de la firma no es correcto. El certificado firmante y el valor de la firma no coinciden."; 131 } 132 if (e.contains("Signature asn.1 prefix:")) { 133 translatedError = "Error interno: prefijo ASN.1 de la firma no es correcto."; 134 } 135 if (e.contains("Invalid signature value! Signature value decrypted len:")) { 136 translatedError = "Error interno: valor de firma inválido. No existe prefijo de estructura ASN.1."; 137 } 138 if (e.contains("Invalid signature value!")) { 139 translatedError = "Valor de firma inválido."; 140 } 141 if (e.contains("Missing Reference for file")) { 142 translatedError = "Error interno: no existe una referencia al archivo"; 143 } 144 if (e.contains("Signers certificate has expired!")) { 145 translatedError = "El certificado del firmante expiró."; 146 } 147 if (e.contains("Failed to verify OCSP for:")) { 148 translatedError = "No se pudo verificar el certificado del servidor OCSP."; 149 } 150 if (e.contains("OCSP value is empty!")) { 151 translatedError = "Error interno: el valor del certificado del OCSP es vacío."; 152 } 153 if (e.contains("No OCSP ref for uri:")) { 154 translatedError = "Error interno: no existe una referencia para el certificado del servidor OCSP."; 155 } 156 if (e.contains("Notarys digest doesn't match!")) { 157 translatedError = "Error interno: la reseña o hash del certificado OCSP no coincide."; 158 } 159 if (e.contains("Signature has no OCSP confirmation!")) { 160 translatedError = "La firma no tiene confirmación de un servidor OCSP."; 161 } 162 //if (e.contains("")) { 163 // translatedError = "El certificado firmante no ha sido firmado por una AC raíz conocida."; 164 //} 165 if (e.contains("The current BDoc container uses weaker encryption method than officialy accepted in Estonia")) { 166 translatedError = "El archivo firmado utiliza un algoritmo de reseña (hash) considerado débil."; 167 } 168 if (e.contains("81 -")) { 169 translatedError = "Error interno: tipo de bloque desconocido."; 170 } 171 172 else{ 173 //translatedError = e; 174 } 175 176 177 return translatedError; 178 } 179 180 84 181 } 85 182 -
TibisayMovil/src/ve/gob/cenditel/tibisaymovil/BDOCVerifyResultActivity.java
r95d372e r8860b8f 136 136 Intent intent = new Intent(BDOCVerifyResultActivity.this, ActivitySignatureErrors.class); 137 137 138 intent.putExtra("string", "hola mundo");138 139 139 140 140 intent.setClass(BDOCVerifyResultActivity.this, ActivitySignatureErrors.class); 141 141 intent.putExtra("SignatureErrorDetailList", errorList); 142 intent.putExtra("numeroObjetoError", Integer.toString(errorList.size())); 142 143 143 144 startActivity(intent); … … 185 186 // array de excepciones lanzadas al verificar firmas 186 187 ArrayList arraySignaturesErrors = null; 187 188 // array de strings para almanecenar los errores de firmas 189 ArrayList<String> signatureVerificationErrors = new ArrayList<String>(); 190 191 188 192 189 // verificar cada una de las firmas del contenedor 193 190 for (int i = 0; i < sdoc.countSignatures(); i++){ … … 195 192 arraySignaturesErrors = new ArrayList(); 196 193 arraySignaturesErrors = tmpSignature.verify(sdoc, false, false); 197 Log.d("****i:"+i,"arraySignaturesErrors.size: "+ arraySignaturesErrors.size()); 198 199 200 201 202 203 String tmpError = new String(); 204 for (int j = 0; j < arraySignaturesErrors.size(); j++){ 205 206 //signatureVerificationErrors.add("Firma "+Integer.toString(i+1)+ ": "+ 207 //arraySignaturesErrors.get(j).toString() + "\n"); 208 194 Log.d("**La Firma: "+Integer.toString(i),"tiene : "+ arraySignaturesErrors.size()+" errores."); 195 196 // lista de cadenas que almancenara los errores para el firmante i 197 ArrayList<String> signatureVerificationErrors = new ArrayList<String>(); 198 199 for (int j = 0; j < arraySignaturesErrors.size(); j++){ 200 // agregar la cadena de error particular a la lista 209 201 signatureVerificationErrors.add(arraySignaturesErrors.get(j).toString() + "\n"); 210 211 //BDOCUtils.translateError(((DigiDocException) arraySignaturesErrors.get(j)).getCode()) + "\n");212 /*213 Log.d("****signatureVerificationErrors",214 "Firma "+Integer.toString(i+1)+ ": "+215 arraySignaturesErrors.get(j).toString() + "\n");216 Log.d("signatureVerificationErrors: ", signatureVerificationErrors.get(j).toString());217 Log.d("----", Integer.toString(((DigiDocException) arraySignaturesErrors.get(j)).getCode()));218 Log.d("---traduccion: ", BDOCUtils.translateErrors(arraySignaturesErrors));219 Log.d("---traduccion codigo: ", BDOCUtils.translateError(((DigiDocException) arraySignaturesErrors.get(j)).getCode()));220 */221 //Log.d("*->tmpError: ", tmpError);222 tmpError = tmpError.concat(arraySignaturesErrors.get(j).toString()+"\n");223 224 225 226 202 } 227 203 228 //signatureVerificationErrors = "Firma "+Integer.toString(i+1)+ ": "+229 //arraySignaturesErrors.get(i).toString() + "\n";230 231 // lista de errores a pasar a la interfaz de detalles de error232 204 //String cn = SignedDoc.getCommonName(sdoc.getSignature(i).getKeyInfo().getSignersCertificate().getSubjectDN().getName()); 233 String name = sdoc.getSignature(i).getKeyInfo().getSubjectLastName(); 234 Log.d("*->tmpError: ", tmpError); 235 Log.d("*->", "signature "+Integer.toString(i)+ " " + name + " " +tmpError); 236 237 //SignatureErrorDetail object = new SignatureErrorDetail(name, tmpError); 238 SignatureErrorDetail object = new SignatureErrorDetail(name, signatureVerificationErrors); 239 240 205 String signer = sdoc.getSignature(i).getKeyInfo().getSubjectLastName(); 206 207 // crear objeto SignatureErrorDetail con detalles de error para la firma i 208 SignatureErrorDetail object = new SignatureErrorDetail(signer, signatureVerificationErrors); 209 210 // agregar el objeto SignatureErrorDetail a lista 241 211 errorList.add(object); 242 212 243 } 213 } // fin del for para la firma i 244 214 245 215 if (arraySignaturesErrors.isEmpty()) { 246 signatureVerificationResult.setText( "Válida");216 signatureVerificationResult.setText(getResources().getString(R.string.string_valid_signature)); 247 217 Log.d("signature.verify", "NO HUBO ERROR EN LA VERIFICACION DE FIRMA"); 248 218 Toast.makeText(getApplicationContext(), "¡FIRMA CORRECTA!", Toast.LENGTH_SHORT).show(); … … 253 223 arrowShowErrors.setVisibility(ImageView.VISIBLE); 254 224 255 String finalErrors = ""; 256 for (int i = 0; i < signatureVerificationErrors.size(); i++ ) { 257 finalErrors = finalErrors.concat(signatureVerificationErrors.get(i).toString()); 258 //resultAndErrors = resultAndErrors.concat("Firma: "+i+" "+sigError.get(i).toString()+"\n"); 259 } 260 //signatureVerificationResult.setText("Inválida\n"+finalErrors); 261 signatureVerificationResult.setText("Inválida."); 225 //signatureVerificationResult.setText("Inválida."); 226 signatureVerificationResult.setText(getResources().getString(R.string.string_invalid_signature)); 262 227 Log.d("************", "SI HUBO ERROR"); 263 Log.d("************", finalErrors);264 228 265 229 Toast.makeText(getApplicationContext(), "ERROR DE VERIFICACION DE FIRMA", Toast.LENGTH_SHORT).show(); … … 357 321 }); 358 322 359 360 /*361 if(sigError.isEmpty()){362 Log.d("signature.verify", "NO HUBO ERROR EN LA VERIFICACION DE FIRMA");363 String res = "Numero de firmas: " + Integer.toString(sdoc.countSignatures()) +364 " Numero de documentos: " + Integer.toString(sdoc.countDataFiles()) +365 " Perfil de firma: " + signature.getProfile() +366 " Sujeto: " + signature.getSubject() +367 " Hora: " + signature.getSignedProperties().getSigningTime().toString();368 Log.d("-->: ", res);369 370 //result.setText("Firma válida");371 372 }else{373 Log.d("signature.verify", "SI HUBO ERROR");374 Log.d("signature.verify", Integer.toString(sigError.size()));375 376 String resultAndErrors = "Firma Inválida\n";377 378 for (int i=0; i<sigError.size(); i++ ){379 Log.d("signature.verify", sigError.get(i).toString());380 //resultAndErrors.concat(sigError.get(i).toString()+"\n");381 resultAndErrors = resultAndErrors.concat("Firma: "+i+" "+sigError.get(i).toString()+"\n");382 383 //Toast.makeText(getApplicationContext(), sigError.get(i).toString(), Toast.LENGTH_SHORT).show();384 }385 Toast.makeText(getApplicationContext(), "ERROR DE VERIFICACION DE FIRMA", Toast.LENGTH_SHORT).show();386 //result.setText("Firma inválida");387 //result.setText(resultAndErrors);388 }389 */390 323 391 324 -
TibisayMovil/src/ve/gob/cenditel/tibisaymovil/SignatureErrorDetail.java
r95d372e r8860b8f 3 3 import java.io.Serializable; 4 4 import java.util.ArrayList; 5 6 import android.util.Log; 5 7 6 8 //clase que abstrae un objeto de tipo detalle de error de firma … … 12 14 private String mSigner; 13 15 private String mError; 14 private ArrayList<String> m listError;16 private ArrayList<String> mListError; 15 17 16 18 public SignatureErrorDetail(String signer, String error){ … … 43 45 44 46 public void setListError(ArrayList<String> mlistError) { 45 this.m listError = mlistError;47 this.mListError = mlistError; 46 48 } 47 49 48 50 public ArrayList<String> getListError() { 49 return m listError;51 return mListError; 50 52 } 51 53 … … 53 55 public String getTransalatedStringError() { 54 56 55 // TODO implementar aqui la traduccion de los errores56 57 57 return mlistError.get(0); 58 String stringError = new String(); 59 60 //Log.d("----getTransalatedStringError: size", Integer.toString(mListError.size())); 61 62 // traducir la cadena y concatenarla en stringError 63 for (int i = 0; i < mListError.size(); i++) { 64 stringError = stringError.concat(BDOCUtils.translateError(mListError.get(i))+"\n"); 65 //Log.d("getTranslatedStringError: error "+Integer.toString(i)+" ", mListError.get(i)); 66 } 67 68 69 //return mListError.get(0); 70 return stringError; 71 58 72 } 59 73
Note: See TracChangeset
for help on using the changeset viewer.