#### AlisonAuthOperation
Esta clase permite realizar un proceso de autenticación. La contraseña puede ser requerida dependiendo de la Security Policy del certificado seleccionado.
* __AlisonAuthOperation(String aliasCert)__
Constructor del objeto. Se puede indicar el alias del certificado que desea utilizar, de lo contrario utilizar seleccionara automaticamente el certificado a utilizar.
#### AlisonSignatureOperation
Esta operación es utilizada para generar firmar en formato CAdES.
* __AlisonSignatureOperation(String text2Sign)__
Crea una operación de firma. El texto a ser firmado debe ser indicado.
#### AlisonImportOperation
Esta operación permite la importación de un certificado dentro del KeyStore propio de la librería.
* __AlisonImportOperation(url)__
Utiliza como parametro la url base obtenida del escaneo del QR luego la operacion por si misma realizara la descarga y el tratamiento de errores de la misma
#### AlisonListOperation
Permite listar los certificados administrados por la librería.
AlisonListOperation(Context context, boolean eraseCert): Utiliza como parametros el Context del activity y un boolean que corresponde al manejo de borrado de certificado en caso de que el mismo este en estado "INVALIDADO".
* __ArrayList <Webcertificate> ListCertificates()__
Esta operación devuelve una lista de los Webcertificates instalados y administrados por la librería, almacenados dentro del KeyStore específico de la aplicación.
Luego de obtenida la lista puede acceder a las propiedades del certificado:
*__String getAlias()__ = Obtiene el alias del certificado
*__Int getDaysToExpire()__ = Obtiene los dias que falta para que el certificado expire.
*__Int getCertificateStatus()__ = Obtiene el estado actual del certificado correspondiente con la policy. Los estados pueden ser los siguientes:
* 0:Estado del certificado correcto
* 22009(AlisonCodes.STATUS_INVALIDATED_C): Estado invalidado, producido cuando las credenciales de seguridad del dispositivo fueron removidas, dejando al certificado en estado invalido.
* 22010(AlisonCodes.STATUS_CHECK_POLICY_ERROR_C): El certificado no cumple las politicas establecidas en la policy
* 22011(AlisonCodes.STATUS_POLICY_ERROR_AND_INVALIDATED_CERT_C): El certificado no cumple la policy y ademas esta en estado invalidado.
Si no hay ningún certificado instalado devuelve una lista vacia.
#### AlisonRenewOperation
Esta operación permite la renovacion de un certificado que esta dentro del periodo de renovacion,
instalando el nuevo y eliminando el anterior, para poder seguir operando.
* __AlisonRenewOperation(url)__
#### AlisonEraseOperation
* __int deleteSelectedCertificate(String certToDelete)__
Operacion que borra el certificado representado por el String certToDelete, el cual sera el correspondiente alias del certificado a borrar
Los valores devueltos son:
* 1 : operación exitosa.
* 0 : no existe ningún certificado con el identificador indicado.
* -1 : se ha producido un error al intentar borrar el certificado.
* __int deleteCertificates()__
Operacion que borra __todos__ los certificados del KeyStore de la aplicacion.
Los valores devueltos son:
* 1 : operación exitosa.
* 0 : no existe ningún certificado para borrar.
* -1 : se ha producido un error al intentar borrar algún certificado.
#### Obtencion de Resultados
Los resultados se obtienen en onActivityResult
* __void onActivityResult(int requestCode, int resultCode, Intent data)__
*__requestCode__ : Codigo de pedido del Intent utilizado en la operacion seleccionada.
*__resultCode__ : Codigo de resultado de la operacion la cual puede ser:
*0: Finalizo correctamente.
*2: Finalizo con error.
*__data__ : Informacion adicional del resultado de la operacion. La informacion se obtiene de la siguiente manera:
* __data.getStringExtra("key")__: Donde la key representa la estructura a obtener y puede ser una de las siguientes:
* __opResult__ : Indica informacion adicional sobre el resultado de la operacion, y tiene la siguiente estructura.
{"opResult":[{"code":,"detail":}],"opType":,"resultStatus":}
*__code(int)__: Codigo de error de la operacion.
*__detail(String)__:Detalle del codigo de error obtenido.
*__opType(int)__: Codigo de la operacion que fue utilizada.
__resultStatus(int)__: Resultado general de la operacion:
0:Resultado correcto.
2:Resultado fallido.
* __signatureB64__: Firma en base 64. Obtenida en operaciones de firma y autenticacion en caso de que se hayan ejecutado correctamente.
* __signedText__: Texto que fue firmado. Obtenida en operaciones de firma y autenticacion en caso de que se hayan ejecutado correctamente.
* __lockedTime__: Cuando la operacion sale por el error 22311(AlisonCodes.ERR_C_CERT_LOCKED) es posible consultar cuanto tiempo permanecera bloqueada la operacion, util para enviarselo al usuario con el mensaje correspondiente
#### Codigos de error mas usados
__Generales (Todas las operaciones)__
* 0 (AlisonCodes.C_OPERATION_SUCCESS): Operacion realizada correctamente.
* 2 (AlisonCodes.STATUS_ERROR): La operacion no finalizo correctamente.
* 22105(AlisonCodes.C_CANCELLED): El usuario cancelo la operacion.
* 22700(AlisonCodes.ERR_C_ERROR_BACKEND): Se produjo un error insalvable desde Colt, por perdida de conexion o problemas en la misma, se debe repetir la operacion.
__AlisonImportOperation__
* 22315(AlisonCodes.ERR_C_1_CERTIFICATE_INSTALLED): Se intento instalar un certificado cuando ya hay un certificado instalado.
* 22307(AlisonCodes.ERR_C_WRONG_PASS): Password ingresado incorrecto.
* 22311(AlisonCodes.ERR_C_CERT_LOCKED): Certificado bloqueado por cantidad de intentos fallidos.
* 22310(AlisonCodes.ERR_C_CERT_ERASED): Certificado eliminado por cantidad de intentos fallidos.
__AlisonSignatureOperation__
* 22402(AlisonCodes.PKCS12_PASSWORD_HASH_DOES_NOT_MATCH_C): El password ingresado no coincide con el del certificado instalado.
* 22311(AlisonCodes.ERR_C_CERT_LOCKED): Certificado bloqueado por cantidad de intentos fallidos.
* 22310(AlisonCodes.ERR_C_CERT_ERASED): Certificado eliminado por cantidad de intentos fallidos.
* 22401(AlisonCodes.ERR_NO_C_CANDIDATE_CERT_FOUND): No hay un certificado instalado.
* 22008(AlisonCodes.AUTHENTICATION_MODE_NOT_SETTED_C): No hay seteado un tipo de lockeo de pantalla
__AlisonAuthOperation__
* 22401(AlisonCodes.ERR_NO_C_CANDIDATE_CERT_FOUND): No hay un certificado instalado.
* 22008(AlisonCodes.AUTHENTICATION_MODE_NOT_SETTED_C): No hay seteado un tipo de lockeo de pantalla
__AlisonListOperation getCertificateStatus__
* 0:Estado del certificado correcto
* 22009(AlisonCodes.STATUS_INVALIDATED_C): Estado invalidado, producido cuando las credenciales de seguridad del dispositivo fueron removidas, dejando al certificado en estado invalido.
* 22010(AlisonCodes.STATUS_CHECK_POLICY_ERROR_C): El certificado no cumple las politicas establecidas en la policy
* 22011(AlisonCodes.STATUS_POLICY_ERROR_AND_INVALIDATED_CERT_C): El certificado no cumple la policy y ademas esta en estado invalidado.
## Archivos adicionales ##
Los siguientes archivos adicionales deben ser agregados al proyecto que haya uso de la librería.
Las siguientes carpetas tienen que ser completadas. En el caso que alguna de ellas no exista, entonces hay que crearla dentro de la jerarquía correspondiente:
* __layout__:
* Password_dialog.xml: ventana que solicita la contraseña para acceder al certificado. Esto puede ocurrir en la operación de firma o instalación.
* Renew_dialog.xml: Ventana que solicita las contraseñas necesarias para la renovacion.
* sdk_activity: Contenedor utilizado para mostrasr los Fragmentos que corresponden a las ventanas de firma y renovacion.
* popup_loading.xml: popup del formato de loading de progreso de descarga, con el estilo del BRC
* __values__:
* Alison-leng.xml: definiciones de los strings en lenguaje inglés.
* Colors.xml: Dado que se agrego un color del BRC es necesario este archivo para que el popup_loading.xml funcione correctamente
* __values-es__:
* Alison-leng.xml: definiciones de los strings en lenguaje español.