PDA

Ver versin completa : Respuestas al mandar instrucciones


phanatick
17-mar-2005, 10:46
SecaFaq
1.4 Bytes de estado.


Estos bytes contienen un mensaje espec*fico, aunque no tienen por que tratarse de un error (aunque puede). Los bytes de estado depende en bastante medida de la versión de la tarjeta (ver Sistema operativo de la tarjeta). Las versiones 3.0 o las 4.1 responden de forma bastante distinta a las 4.0


Los bytes de estado que comienzan por 0x6X son independientes del sistema e iguales para cada Smartcard ISO7816. Si se recibe algo distinto a 0x6X, entonces habrá que recurrir a la documentación del ISO7816, puesto que hay algunos bytes de estado menos comunes descritos a manera de suplemento.



6700 Longitud incorrecta en la entrada
6B00 Parámetro/byte de referencia incorrecto
6D00 Instrucción no soportada/inválida o instrucción soportada no permitida
6E00 Clase de instrucción (Class) no soportada
6F00 Sin diagnóstico preciso

6281 Datos proporcionados posiblemente incorrectos
6282 Fin de fichero encontrado antes de acabar el proceso de lectura
6284 Fichero seleccionado no válido
6501 Error – Ocurrió un problema de lectura/escritura de la eeprom u otro fallo Hardware
6800 La función anterior no está soportada en la tarjeta
6A00 Los valores para P1 y/o P2 son inválidos
6A80 Los parámetros en la parte de datos son inválidos
6A82 Fichero no encontrado
6A83 Registro no encontrado
6A84 Espacio insuficiente en fichero o registro

9000 Instrucción ejecutada sin errores
9002 Firma inválida o no presente
9004 Proveedor no soportado
9005 Nano para SECA admisible
9006 No hay memoria para el record Preview disponible
9007 No permitido – proveedor bloqueado
9008 Nano 0x01 – no permitido
9009 PPUA no consta en el bitmap F0
9010 PIN inválido
9011 Bit de test no activo, por tanto, instrucción no soportada
9013 Clave inválida, sólo se permiten MKs
9014 Instrucción precedente inválida
9015 Nano no permitido o valor de entrada no soportado
9016 No aparece o no está permitido
9017 No permitido
9018 El proveedor ya existe
9019 Se modificó la PPUA
901A No consta compra por fichas
901B Sin fichas o sin registro de crédito
901C Compra con fichas ok, pero debido al crédito
901D Clave primaria no disponible
901E Error
901F Clave secundaria no disponible
9021 La clave no es 0x0F- Denegado
9022 Tarjeta en modo inválido
9024 Fallo de checksum
9026 No hay más preview
9027 Faso de decodificación de preview
9301 Se excedió la fecha efectiva de la tarjeta
9302 Ninguna decodificación
9304 Ajuste de control parental demasiado bajo
9305 Transferencia no posible para esta zona geográfica
9401 Valor P1 no válido
9402 Valor P2 no válido
9600 Cadena de entrada no válida o evento nulo o todos los nanos procesados, ninguna decodificación
960A Índice de clave no soportado
96xx xx Nanos procesados, pero se encontró ningún nano 0xD1 o todos los nanos se procesaron con éxito
97xx Actualización de la eeprom no necesaria para ningún nano. Xx es el bitmap de estos nanos. 3C: ninguna actualización para Nanos 2, 3, 4, 5 (el contar partiendo de 0)Sacado del secafaq, para resolver las preguntas mas comunes.

saludos!

elgriego
18-mar-2005, 06:42
si no te importa añadir estas algunas estan repetidas pero por no copiarlas una a una las que no estan

- 01 01 -> Error en fase de test-hardware: RAM interna.
- 01 02 -> Error en fase de test-hardware: EEPROM.
- 01 04 -> Error en fase de test-hardware: RAM esterna.
- 01 05 -> Error en fase de test-hardware: Dispositivos adicionales.
- 01 10 -> Error en fase de test-hardware: ROM checksum incorrecto.
- 67 00 -> Longitud de entrada incorrecta.
- 6B 00 -> Parametro (P1 o P2) incorrecto.
- 6D 00 -> Instrucción no soportada o protegida.
- 6E 00 -> Clase no soportada (admitido sólo el valor C1)
- 6F 00 -> Ningun diagnóstico preciso.
- 62 81 -> Datos proporcionados posiblemente incorrectos.
- 62 82 -> Fin de fichero encontrado antes de acabar el proceso de lectura.
- 62 84 -> Fichero seleccionado incorrecto.
- 65 01 -> Ocurrió un problema de lectura o escritura de la eeprom u otro fallo de Hardware.
- 68 00 -> La función anterior no está soportada en la tarjeta.
- 6A 00 -> Los valores para P1 y/o P2 son incorrectos.
- 6A 80 -> Los parámetros de datos son incorrectos.
- 6A 82 -> Fichero no encontrado.
- 6A 83 -> Registro no encontrado.
- 6A 84 -> Espacio insuficiente en fichero o registro.
- 90 00 -> Instrucción ejecutada sin errores.
- 90 01 -> Error en fase de escritura en Eeprom.
- 90 02 -> Firma inválida o no presente.
- 90 03 -> Imposible crear o modificar un record para el proveedor indicado (sin autorización)
- 90 04 -> Proveedor inexistente.
- 90 05 -> Nano admitido sólo para el proveedor raiz (SECA)
- 90 06 -> No hay memoria para el registro de previsionado.
- 90 07 -> No permitido, proveedor bloqueado.
- 90 08 -> Nano 01 no admitido.
- 90 09 -> PPUA ausente en el Bitmap del nano F0.
- 90 10 -> PIN incorrecto.
- 90 11 -> Bit de test no activo. Instrucción no soportada.
- 90 13 -> Clave inválida, admitida sólo clave de gestión.
- 90 14 -> Instrucción precedente inválida.
- 90 15 -> Nano no permitido o Valor "D1" incorrecto.
- 90 16 -> Proveedor no habilitado o error en datos acoplados.
- 90 17 -> No habilitada (flag incorrecto)
- 90 18 -> Error en creación del proveedor (Proveedor ya existente)
- 90 19 -> Proveedor procesado con exito o PPUA modificada con éxito.
- 90 1A -> Error en la adquisición de fichas.
- 90 1B -> Fichas insuficientes o registro de crédito inexistente.
- 90 1C -> Adquisición realizada, fichas terminadas.
- 90 1D -> Clave primaria no disponible.
- 90 1E -> Imposible agregar mas fichas (overflow)
- 90 1F -> Clave secundaria no disponible.
- 90 20 -> Indice de clave incorrecto.
- 90 21 -> Clave inválida, admitida sólo clave 0F.
- 90 22 -> Indice de clave incorrecto en ATR2.
- 90 23 -> Nano 71 debe preceder al nano D1.
- 90 24 -> Instrucción no permitida en ATR3 o parámetro incorrecto (flags SE/SSE)
- 90 25 -> El contador ha alcanzado el valor 00.
- 90 26 -> Evento ya visionado (no decodifica)
- 90 27 -> Decodificando en preview.
- 90 28 -> Error en el contenido de la clave (error de checksum)
- 90 29 -> Error de checksum.
- 90 2B -> Error en el procesado del nano.
- 90 2C -> Error en el primer parámetro (fuera el intervalo)
- 90 2D -> Flag de la EEPROM incorrecto.
- 90 2E -> Error en el último parámetro.
- 90 2F -> Nano F7 no precedido por el nano 50.
- 90 30 -> Error en la fase de comprobación.
- 90 31 -> Flag incorrecto, error en fase de verificación tabla hash o parámetro incorrecto.
- 90 33 -> Error en nano 1B, flag incorrecto o error en fase de verificación tabla hash.
- 90 34 -> Error en fase de encriptación o desencriptación (algoritmo no activo)
- 90 35 -> SuperEncriptación obligatoria (flag activo)
- 90 36 -> Parámetro P4 incorrecto (bit 0,1)
- 90 37 -> P5 fuera de intervalo.
- 90 38 -> P5 Nulo o clave inválida, admitida sólo clave operativa.
- 90 4A -> Clave inválida, admitida sólo clave operativa.
- 90 90 -> EEPROM no modificada.
- 90 A0 -> EEPROM modificada.
- 93 01 -> Fecha expirada.
- 93 02 -> No hay decodificación.
- 93 04 -> Visión protegida a través del control parental.
- 93 05 -> Transmisión no destinada a esta zona geográfica.
- 94 01 -> Valor P1 incorrecto.
- 94 02 -> Valor P2 incorrecto.
- 96 00 -> Error de pre-parsing o evento nulo.
- 96 0A -> Índice de clave no soportado.
- 96 xx -> Nano D1 encontrado o error de parsing, nanos xx procesados.
- 97 xx -> Actualización de la EPROM no necesaria para algunos nanos, nanos xx procesados.
- 98 xx -> Evento nulo, nanos xx procesados.
- 99 xx -> Fecha inválida, nanos xx procesados.
- 9A xx -> Nano no habilitado, nanos xx procesados.
- 9B 00 -> Tarjeta bloqueada. Instrucción no admitida en ATR nivel de protección

phanatick
18-mar-2005, 08:59
no problem, elgriego.. gracias por la aportacion :D ;)

compy
18-mar-2005, 09:26
^^^^Me lo dijo un amigo:Si lo creis necesario pues lo borrais :qtdoy:
Creacion de Gemelas.
------------------------------------------------------------------------
Hay que mandar como "C1 40 ..." desde un proveedor que ya tenga gemelas.

Las Ins. que usan el Bug 1C NO funcionan si el bug está tapado.

Bug 1C, crea gemelas en 00: 1C 00 D0 55 00 00 00 00 00 00 00 00 AA 00 80 5F 00 00 00 41 00 00 00 00 21 A0 00 02 17 80
Bug 1C, crea gemelas en 64: 1C 00 D0 55 00 00 00 00 00 00 00 00 AA 00 81 5F 00 00 00 41 00 00 00 00 21 A0 00 02 17 81
Bug 1C, crea gemelas en 66: 1C 00 D0 55 00 00 00 00 00 00 00 00 AA 00 82 5F 00 00 00 41 00 00 00 00 21 A0 00 02 17 82
Bug 1C, crea gemelas en 67: 1C 00 D0 55 00 00 00 00 00 00 00 00 AA 00 83 5F 00 00 00 41 00 00 00 00 21 A0 00 02 17 83

- Desde Seca >> Crea gemelas en 0064: 24 00 64 90 55 00 00 00 00 00 00 00 00 90 5F 00 00 00 00 00 00 00 00
- Desde Seca >> Crea gemelas en 0066: 24 00 66 90 55 00 00 00 00 00 00 00 00 90 5F 00 00 00 00 00 00 00 00
- Desde Seca >> Crea gemelas en 0067: 24 00 67 90 55 00 00 00 00 00 00 00 00 90 5F 00 00 00 00 00 00 00 00

- Desde Seca >> Borra gemelas en 0064: 24 00 64 10 55 10 5F
- Desde Seca >> Borra gemelas en 0066: 24 00 66 10 55 10 5F
- Desde Seca >> Borra gemelas en 0067: 24 00 67 10 55 10 5F
- Desde Seca >> Borra gemelas en 0000: 10 55 10 5F

Restaurar Gemelas
------------------------------------------------------------------------
Una vez creadas gemelas en Seca podemos generar y guardar la Ins. que nos permitirá crearlas otra vez sin usar el Bug 1C.

- Configuramos el InsGen P3P4=1001, MkGemela=5.
- Conectamos y seleccionamos Proveedor [00 00]
- En Data: 90 55 00 00 00 00 00 00 00 00 90 5F 00 00 00 00 00 00 00 00
- Generamos como Ins. "C1 40 00 90 LN 1001 ..." (firma Mk0) sin enviar la Ins.

En [Log] nos aparecerá la Ins. generada. Esta Ins. la guardamos y nos servirá para volver a crear gemelas en Seca y desde Seca. Como va firmada con la Mk0 la podemos usar sin la necesidad de otras gemelas ni del Bug 1C.

Restaurar división entre claves de gestión y operacionales
------------------------------------------------------------------------
Para prevenir un (90 13) al firmar con cualquier clave que no sea Mk0, podemos generar y guardar una Ins. que nos permitirá restaurar la división sin usar gemelas (con firma Mk0)

- Configuramos el InsGen con P3P4=1001, MkGemela=5.
- Conectamos y seleccionamos Proveedor [00 00]
- En DATA: 34 7C 0C 00
- Generamos como Ins. "C1 40 00 90 LN 1001 ..." (firma Mk0) sin enviar la Ins.

En [Log] nos aparecerá la Ins. generada. Esta Ins. la guardamos y nos servirá para volver a restaurar la división entre claves de gestión y operacionales desde Seca. Como va firmada con la Mk0 la podremos usar cuando nuestras gemelas no sean de gestión (90 13)

Restaurar Desbloqueo
------------------------------------------------------------------------
Para prevenir un (90 07) el enviar qualquier Ins. desde Seca a un proveedor bloqueado, podemos generar y guardar una Ins. que nos permitirá desbloquear el proveedor sin usar gemelas (con firma Mk0)

- Configuramos el InsGen con P3P4 y MkGemela correspondiente al proveedor a prevenir.
- Conectamos y seleccionamos dicho Proveedor.
- En DATA: 02
- Generamos como Ins. "C1 40 0x 90 ..." (firma Mk0) sin enviar la Ins.

En [Log] nos aparecerá la Ins. generada. Esta Ins. la guardamos y nos servirá para desbloquear el proveedor. Como va firmada con la Mk0 la podremos usar aunque el proveedor bloqueado no tenga gemelas.

Averiguar SSE 1001/1003
------------------------------------------------------------------------
- Configuramos el InsGen con P3P4=1003 y MkGemela correspondiente al proveedor a averiguar.
- Conectamos y seleccionamos dicho Proveedor.
- En DATA: 02
- Desmarcamos "No enviar la Ins" y Generamos como "C1 40 ..."

Si responde (90 36) desconectamos, vamos a configuración, cambiamos P3P4 = 1001 y volvemos a probar lo mismo. Cuando la respuesta sea (97 01) sabremos que la SSE especificada en P3P4 está activada en éste proveedor.

Comprobar PBM
------------------------------------------------------------------------
- Configuramos el InsGen con P3P4 y MkGemela del 64.
- Conectamos y seleccionamos Proveedor [00 64]
- En DATA: 1C 10
- Desmarcamos "No enviar la Ins" y Generamos como "C1 40 ..."

Respuesta: (90 00) -> PBM correcto.
Respuesta: (9A 00) -> PBM incorrecto.

Comprobar Bug 1C
------------------------------------------------------------------------
- Configuramos el InsGen con P3P4 y MkGemela del 64.
- Conectamos y seleccionamos Proveedor [00 64]
- En DATA: 1C 00
- Desmarcamos "No enviar la Ins" y Generamos como "C1 40 ..."

Respuesta: (90 00) -> Bug 1C disponible.
Respuesta: (9A 00) -> Bug 1C no disponible.

Mk0E del 64
------------------------------------------------------------------------
Enviar: C1 38 01 9E 6D 10 03 63 F1 A2 7C 7E 15 8E F0 82 CB 14 2C 11 34 14 99 D2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EE

Respuesta: (90 00) -> Clave 0E correcta.
Respuesta: (90 02) -> Clave 0E incorrecta.
Respuesta: (67 00) -> Es una 7.0b

PBM
------------------------------------------------------------------------
Enviamos: C1 34 00 00 03 00 00 00
Enviamos: C1 32 01 00 10
Respuesta: C1 32 01 00 10 32 83 xx xx xx xx xx xx xx xx 04 FF FF FF FF FF FF 90 00 - > Donde x es el PBM.


CheckSum UA
------------------------------------------------------------------------
Enviamos: C1 0E 00 00 08
Respuesta: C1 0E 00 00 08 0E 00 xx 00 00 11 22 33 44 90 00 -> Donde xx es el CheckSum y 11 22 33 44 es la UA.


Cambio UA
------------------------------------------------------------------------
Enviamos: C1 0C 00 00 08 00 xx 00 00 11 22 33 44 -> En ATR3 escribe UA "11 22 33 44" con CheckSum xx.
Enviamos: C1 0C 00 03 00 -> De ATR3 Vuelve a ATR1.

Nivel ATR
------------------------------------------------------------------------
Respuesta: 3B F7 11 00 01 40 96 70 70 07 0E 6C B6 D6 -> Nivel 1 (Normal)
Respuesta: 3B F7 11 00 01 40 96 70 70 07 9B 1B C2 A3 -> Nivel 2 (Bajo)
Respuesta: 3B F7 11 00 01 40 96 70 70 07 A5 96 58 7C -> Nivel 3 (Alto)
Respuesta: 3B F7 11 00 01 40 96 70 70 07 E6 9A 4D F5 -> nivel 4 ()

Plain Keys
------------------------------------------------------------------------
ATR 2 [ C2 A3 FB 04 8F FB 9B 1B ] -> Pasa a ATR 2
ATR 3 [ 58 7C 00 5F F8 96 A5 96 ] -> Pasa a ATR 3
ATR 1 [ C1 0C 00 03 00 ].............-> Pasa a ATR 1

:manifa: pos ya Ta.. :birra: Compy

elgriego
18-mar-2005, 09:35
hay compy solo te ha quedado poner el paso de atr 3 a atr normal venga ponlo y queda ya todo en tu post

Saludos