Hi,
   
      I've implemented (in C++) a simple form of shamir secret sharing for the 
particular case (3,5). One function receives a BIGNUM A0 an generates the 5 
secrets. Another function, receives 3 secrets and generates the recover BIGNUM 
A0. It's working fine.
   
      The problem is that I need to convert a RSA private key into a BIGNUM A0, 
and I'm having trouble with this. 
   
       I was trying to do this (part of my code):
   
          RSA *Ch_Ap
          unsigned char *buffer, *next;
          BIGNUM *sec_BN = BN_new();
          Ch_Ap = RSA_generate_key(2048, RSA_F4, NULL, 0);
          int size = i2d_RSAPrivateKey(Ch_Ap, 0);
          buffer = next =(unsigned char *)malloc(size);
        i2d_RSAPrivateKey(Ch_Ap, &next);
        BN_bin2bn(buffer, size, sec_BN); 
   
       However, when I use sec_BN in my functions, the recovered BIGNUM is not 
the same as sec_BN. When I pass another BIGNUM, for example using the function 
BN_rand_range(), then the recovered BIGNUM is equal (proving that my secret 
sharing functions is ok). 
   
        I think it can be something about Big-Endian conversion in sec_BN, but 
I didn't find a way to do this conversion and I don't know if it is necessary 
too. 
   
   
         Thanks in advance,
   
   
                  Rafael Cividanes.


                
---------------------------------
 Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. 
Registre seu aparelho agora!

Reply via email to