Bonjour,

Je suis sur un problème depuis quelques jours concernant une conversion de données de DER vers des caractères affichables.

Je récupère une séquence binaire formatée en ASN.1. Cette séquence est correcte car une fois encodée en hexadécimale affichable, n'importe quel décodeur ASN.1 en retrouve la structure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SEQUENCE {
   SET {
      SEQUENCE {
         OBJECTIDENTIFIER 2.5.4.3 (commonName)
         UTF8String 'TEST-2014'
      }
   }
}
Je souhaite récupérer la UTF8String et ainsi présenter le DN complet sous la forme "CN=TOTO,OU=TEST,C=FR" (l'exemple donné ne contient que le CN).

Pour ce faire, je m'appuie sur OpenSSL puisque cette librairie est déjà importée dans mon projet. Néanmoins, je ne parviens pas à réaliser la conversion.
Dans mon code, je tente de charger mon flux binaire dans une structure ASN1_STRING en utilisant les mutateurs d'openssl mais je ne dois pas m'y prendre correctement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
void der_decode(unsigned char* der, len) {
   unsigned char* result = NULL;
   ASN1_BIT_STRING* os = ASN1_BIT_STRING_new();
   ASN1_BIT_STRING_set(os, der, len);
   int ret = ASN1_STRING_to_UTF8(&result, os);
   ASN1_BIT_STRING_free(os);
   printf("result: %s\n", result);
   return;
}
Quelqu'un a une idée ?