2010-03-20 7 views
1

Salut, je suis en train d'utiliser libssl pour obtenir des EMSA_PSS_ENCODING grâce à la fonction RSA_padding_add_PKCS1_type1 dans libssl, mais je ne peux pas trouver ni documents ni solutions, c'est donc le code exemple, je l'ai écrit:EMSA_PSS_ENCODE avec libssl

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <openssl/rsa.h> 
#include <openssl/err.h> 

FILE *error_file; 

int main() 
{ 
int lSize; 
const unsigned char *string1= (unsigned char *)"The pen is on the table"; 
unsigned char *stringa=NULL; 
int num = 64; 
if ((stringa = (unsigned char *)OPENSSL_malloc(num)) == NULL) 
fprintf(stderr,"OPENSSL_malloc error\n"); 
    lSize = strlen((char *)string1); 

fprintf(stdout,"string1 len is %u\n",lSize); 
if(RSA_padding_add_PKCS1_type_1(stringa,num,string1,lSize) != 1) 
    fprintf(stderr,"Error: RSA_PADDING error\n"); 

error_file = fopen("libssl.log", "w"); 
ERR_print_errors_fp(error_file); 
fclose(error_file); 
fprintf(stdout,(char *)stringa); 
fprintf(stdout,"\n"); 

}

le problème est que je reçois pas de sortie dans stringa, je pense que la fonction RSA_padding_add .. doit être initialisé, mais je ne peux pas trouver comment le faire dans les quelques doc sur le site OpenSSL.

Merci

+0

évidemment lSize est une faute de frappe ... maintenant I'v édita – luiss

Répondre

0

Voir http://www.openssl.org/docs/crypto/RSA_padding_add_PKCS1_type_1.html. Essayez de définir lSize en (int)strlen(string1) après que string1 a été défini.

EDIT:

Allouer des chaînes.

unsigned char *stringa=malloc(num);

+0

Eh bien en fait je l'ai lu encore, mais il est d'aucune aide, il donne la façon d'utiliser la fonction de remplissage, mais pas comment l'initialiser, je continue d'obtenir mon stringa vide ... – luiss

+0

le malloc (num) n'aide pas ... mais merci quand même – luiss