On Tue October 5 2010, krishnamurthy santhanam wrote:
> Hi,
> 
> memcpy is not working for the RAND_bytes. could anyone help me to resolve
> the issue.
> 
> blf.c
> 
> #include<stdio.h>
> #include"scatype.h"
> #include<stdlib.h>
> #define BF_DEFAULT_KEY_SIZE 128
> typedef struct {
>         unsigned long  length;
>         unsigned char   dsc_type;
>         unsigned char   dsc_class;
>         char            *str;
>     } STR_DESCRIPTOR;
> /* functions have to be external */
> extern blfGenKey();
> int main() {
> printf("in main\n");
> /* call function from shared library */
> STR_DESCRIPTOR key;
> key.str = malloc(1024);
> blfGenKey(&key);
> printf("digest - |%s|\n",key.str);
> free (key.str);
> return 0;
> }
> 
> 
> blowfish.c
> 
> int blfGenKey(STR_DESCRIPTOR *key)
> {
>     unsigned char    keyData[BF_DEFAULT_KEY_SIZE];
>     int status = FAILURE;
>     printf("\n entered\n");
>     printf("%d\n",BF_DEFAULT_KEY_SIZE);
>     int i;
>     printf("\n entered loop\n");
>     if(!RAND_bytes(keyData,BF_DEFAULT_KEY_SIZE))
>         memcpy(key->str,keyData,BF_DEFAULT_KEY_SIZE);
>         key->length = BF_DEFAULT_KEY_SIZE;
> 
>         printf("key=\n%s\n",key->str);
>

And you know that key->str does not contain a zero byte?

>         status = SUCCESS;
>         printf("\n%d\n",key->length);
> 
> output:
> in main
> 
>  entered
> 128
> entered loop
> key=  <--------------null value
>

Comment probably says it all - a null (\000) byte in the string.
Use your debugger to check or print it as if it where data (which it is).

Mike

> 128
> status=0
> digest - ||   <------key is not printing
> 
> Any help would be greatly appreciable.
> 
> kris
> 


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to