problème de conversion unsigned const char* => const char*
problème de conversion unsigned const char* => const char* - C++ - Programmation
MarshPosté le 05-04-2011 à 01:52:05
Je reviens vers vous car je n'ai pas trouvé de solutions à mon problème de conversion de const char* en unsigned const char*. reinterpret_cast me semble le plus pertinent. Mais ce n'est pas le cas, apparemment il me génère un problème.
en effet, je dois utliser une fonction OpenSSL pour décodé un string ( format PEM codé en base 64, en une structure interne C ( internal C structure ). Voici le prototype de la fonction:
Code :
X509 *d2i_X509(X509 **px, constunsignedchar **in, int len);
A priori, je ne peux/dois pas changer la signature de ce constructeur. Donc je suis obligé de partir d'un const char *str. quand je debug, mycert est NULL, ca signifie que d2i_X509 a échoué. l'erreur est en fait :
Code :
error:0D07209B:asn1 encoding routines:ASN1_get_object:too long
Je crois que c'est à cause du reinterpret_cast. Est ce que il y a d'autres moyen de résoudre le problème de conversion const char* => unsigned const char* ?
Marsh Posté le 05-04-2011 à 01:52:05
Je reviens vers vous car je n'ai pas trouvé de solutions à mon problème de conversion de const char* en unsigned const char*. reinterpret_cast me semble le plus pertinent.
Mais ce n'est pas le cas, apparemment il me génère un problème.
en effet, je dois utliser une fonction OpenSSL pour décodé un string ( format PEM codé en base 64, en une structure interne C ( internal C structure ). Voici le prototype de la fonction:
la doc se trouve ici : http://www.openssl.org/docs/crypto/d...#RETURN_VALUES
En gros cette fonction lit un string en format PEM qui se trouve dans const unsigend char **in et renvoie une structure X509*
Maintenant, pourquoi j'ai utilisé un cast ? parce que mon constructeur prend en paramètre un PEM de type const char *str. Voici le code :
A priori, je ne peux/dois pas changer la signature de ce constructeur. Donc je suis obligé de partir d'un const char *str.
quand je debug, mycert est NULL, ca signifie que d2i_X509 a échoué. l'erreur est en fait :
Je crois que c'est à cause du reinterpret_cast.
Est ce que il y a d'autres moyen de résoudre le problème de conversion const char* => unsigned const char* ?
Merci d'avance pour votre aide.
Message édité par razuki le 05-04-2011 à 01:52:42