Una aplicación de ejemplo para Android ha sido publicada por el Ministerio de Interior y la Policía Nacional para explicar cómo interactuar con la nueva versión del DNIe 3.0 (DNI español). Sin embargo, el código publicado no se ajusta a lo que podemos considerar "mejores prácticas" en el desarrollo de software.
|
etiquetas: tecnología , programación , dni electrónico
Los conceptos explicados ahí arriba no son compatibles con la programación que se realiza en las cárnicas, no por falta de interés de los programadores (aunque a veces sí), sino porque si contratas lo más bajo del mercado en sueldos, lo que consigues en calidad y tecnología va en la misma línea. ¡Ya, que funcione, es en sí mismo un milagro!
Me quedo con las 100 lineas dentro de un try, y que en el catch no haga nada y con el último algoritmo :
public long getTLV( int [] iTagLen, byte [] tlv){
Long tag;
int idxByte = 0;
tag = (long) tlv[idxByte++];
if( (tag & 0x1f) == 0x1f )
tag = (tag<<8) | tlv[idxByte++];
if( (tlv[idxByte] != (byte)0x81 ) && (tlv[idxByte] != (byte)0x82 ) ){
iTagLen[0] = idxByte + 1;
return tlv[idxByte];
}else if( tlv[idxByte] == (byte)0x81 ){
iTagLen[0] = idxByte + 2;
return (tlv[idxByte+1])& 0x00ff;
}else if( tlv[idxByte] == (byte)0x82 ){
iTagLen[0] = idxByte + 3;
return (0x100 + tlv[idxByte+=2])& 0xffff;
}else
return 0;
}
I am still wondering why tag is computed and never used.