os/security/crypto/weakcrypto/test/tasymmetric/script_gen/gen_random.c
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of the License "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description: 
sl@0
    15
* Generates C code that initialises a variable to hold some random data.
sl@0
    16
*
sl@0
    17
*/
sl@0
    18
sl@0
    19
sl@0
    20
sl@0
    21
sl@0
    22
/**
sl@0
    23
 @file
sl@0
    24
*/
sl@0
    25
sl@0
    26
#include <openssl/rand.h>
sl@0
    27
sl@0
    28
static void gen_random(int len)
sl@0
    29
    {
sl@0
    30
    unsigned char data[len];
sl@0
    31
    int i, j;
sl@0
    32
sl@0
    33
    RAND_bytes(data, len);
sl@0
    34
sl@0
    35
    printf("unsigned char random[] =");
sl@0
    36
    for (i = 0 ; i < sizeof(data) ; i += 16)
sl@0
    37
        {
sl@0
    38
        printf("\n\t\"");
sl@0
    39
        for (j = i ; j < sizeof(data) && j < (i + 16) ; ++j)
sl@0
    40
            {
sl@0
    41
            printf("\\x%02x", data[j]);
sl@0
    42
            }
sl@0
    43
        printf("\"");
sl@0
    44
        }
sl@0
    45
sl@0
    46
    printf(";\n");
sl@0
    47
    }
sl@0
    48
sl@0
    49
static void badUsage()
sl@0
    50
    {
sl@0
    51
    printf("gen_random [BYTES]\n");
sl@0
    52
    exit(1);
sl@0
    53
    }
sl@0
    54
sl@0
    55
int main(int argc, char* argv[])
sl@0
    56
    {
sl@0
    57
    int bytes = 256;
sl@0
    58
sl@0
    59
    if (argc > 2)
sl@0
    60
        badUsage();
sl@0
    61
    else if (argc == 2)
sl@0
    62
        {
sl@0
    63
        bytes = atoi(argv[1]);
sl@0
    64
        if (bytes < 1)
sl@0
    65
            badUsage();
sl@0
    66
        }
sl@0
    67
sl@0
    68
    gen_random(bytes);
sl@0
    69
    return 0;
sl@0
    70
    }