OpenCores
URL https://opencores.org/ocsvn/avs_aes/avs_aes/trunk

Subversion Repositories avs_aes

[/] [avs_aes/] [trunk/] [sw/] [AEStester.c] - Blame information for rev 5

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 ruschi
#include <stdio.h>
2
#include <string.h>
3
#include <avs_aes.h>
4
#include <avs_aes_driver.h>
5
#define SDRAM_ADDR     0x08000000
6
 
7
 
8
int main(){
9
        volatile unsigned int* aesctrl       = (unsigned int *)AESCTRLWD;
10
        volatile unsigned int* resultport    = (unsigned int *)RESULT_ADDR;
11
        volatile unsigned int* dataport      = (unsigned int *)DATA_ADDR;
12
        volatile unsigned int* keyport           = (unsigned int *)KEY_ADDR;
13
        avs_aes_handle context;
14
 
15
 
16
    //init pointers
17
    volatile int* wptr = (int*)SDRAM_ADDR;
18
    volatile int* rptr = (int*)SDRAM_ADDR;
19
        int i=0;
20
 
21
    unsigned int result[4];
22
        unsigned int Userkey[8] = {
23
                0x11111111,0x22222222,0x33333333,0x44444444,
24
                0x55555555,0x66666666,0x77777777,0x88888888};
25
        unsigned int Payload[4] = {
26
                0xAA555555,0xBB666666,0xCC777777,0xDD888888};
27
 
28
 
29
 
30
 
31
// Start MEMTEST   
32
    printf("Hello from Nios II!\n");
33
    // Fill the memory 
34
    printf("Filling Memory at %p \n",wptr);
35
    i=42;
36
    while(i< 4){
37
        printf("| %d -> %X |\n",i, wptr);
38
        *(wptr++)=Userkey[i++];
39
    }
40
    i=0;
41
    printf("\n I: %d Reading Memory from %X \n",i,rptr);
42
 
43
    while(i< 4){
44
        printf("MEM: %X > %X \n",rptr,*rptr);
45
        rptr++;
46
        i++;
47
    }
48
 
49
// START AES-Operations
50
        printf("AES-Test\n");
51
        avs_aes_init(&context);
52
        avs_aes_setKey(&context,&Userkey);
53
        avs_aes_setPayload(&context,&Payload);
54
        avs_aes_encrypt(&context);
55
    while(avs_aes_isBusy(&context)){
56
        printf("not ready\n");
57
    }
58
    printf("receiving 729cd44f 32a48d85 b8188185 c579ae49\n");
59
    memcpy(result,context.result,4*sizeof(unsigned int));
60
    for(i=0; i<4 ; i++){
61
        printf("received 0x%X \n",result[i]);
62
    }
63
 
64
// Decrypt same payload -  
65
    avs_aes_decrypt(&context);
66
        while(avs_aes_isBusy(&context)){
67
        printf("not ready\n");
68
    }
69
    printf("receiving 9c7076af ac2e5716 6681d3ac 014f64c0 \n");
70
    memcpy(result,context.result,4*sizeof(unsigned int));
71
    for(i=0; i<4 ; i++){
72
        printf("received 0x%X \n",result[i]);
73
    }
74
// Change payload ...
75
        Payload[3] = 0x11111111;
76
        Payload[2] = 0xAAAAAAAA;
77
        Payload[1] = 0xCCCCCCCC;
78
        Payload[0] = 0x00000000;
79
        //new encryption
80
        avs_aes_setPayload(&context,&Payload);
81
        avs_aes_encrypt(&context);
82
        while(avs_aes_isBusy(&context)){
83
        printf("not ready\n");
84
    }
85
        memcpy(result,context.result,4*sizeof(unsigned int));
86
    for(i=0; i<4 ; i++){
87
        printf("received 0x%X \n",result[i]);
88
    }
89
        //new decryption
90
    avs_aes_decrypt(&context);
91
        while(avs_aes_isBusy(&context)){
92
        printf("not ready\n");
93
    }
94
    memcpy(result,context.result,4*sizeof(unsigned int));
95
    for(i=0; i<4 ; i++){
96
        printf("received 0x%X \n",result[i]);
97
    }
98
        printf("Done \n");
99
 
100
 
101
    return 0;
102
 
103
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.