summaryrefslogtreecommitdiff
path: root/code/ecp/crypto/test/ed25519_open.c
blob: 66f32f502528aee53e031c4608a41bf3a2b14209 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>

#include <curve25519.h>

#define KEY_LEN     32
#define SIG_LEN     64

static int v_rng(void *buf, size_t bufsize) {
    int fd;
    
    if((fd = open("/dev/urandom", O_RDONLY)) < 0) return -1;
    size_t nb = read(fd, buf, bufsize);
    close(fd);
    if (nb != bufsize) return -1;
    return 0;
}

int main(int argc, char *argv[]) {
    unsigned char msg[1024];
    size_t msg_len;
    int rv;
    unsigned char public[KEY_LEN];
    unsigned char private[KEY_LEN * 2];
    unsigned char signature[SIG_LEN];

    strcpy((char *)msg, "PERA JE CAR!");
    msg_len = strlen((char *)msg) + 1;
    
    int fd = open("msg.sig", O_RDONLY);
    read(fd, public, KEY_LEN);
    read(fd, signature, SIG_LEN);
    close(fd);

    rv = ED25519_verify(msg, msg_len, signature, public);
    printf("OPEN rv:%d\n", rv);
}