ft_nm/rsa/rsa.h

56 lines
1.4 KiB
C
Raw Normal View History

2024-02-14 16:14:03 +00:00
#ifndef _RSA_H
#define _RSA_H 1
2024-02-15 20:26:40 +00:00
#include <stdint.h>
2024-02-14 16:14:03 +00:00
#include <stdio.h>
2024-02-15 20:26:40 +00:00
#include <stddef.h>
2024-02-14 16:14:03 +00:00
#include <stdlib.h>
#include <fcntl.h>
2024-02-15 20:26:40 +00:00
#include <unistd.h>
#include <string.h>
2024-02-16 14:57:11 +00:00
#define RSA_BLOCK_SIZE 64
2024-02-14 16:14:03 +00:00
2024-02-15 20:26:40 +00:00
typedef struct bigint_s {
uint32_t *data;
size_t len;
} bigint_t;
2024-02-14 16:14:03 +00:00
2024-02-15 20:26:40 +00:00
typedef struct rsa_s {
bigint_t p;
bigint_t q;
} rsa_t;
2024-02-14 16:14:03 +00:00
2024-02-15 20:25:35 +00:00
2024-02-15 20:26:40 +00:00
void *protected_malloc(size_t size);
2024-02-15 20:25:35 +00:00
2024-02-15 20:26:40 +00:00
rsa_t rsa_generate_keys(size_t block_size);
2024-02-14 16:14:03 +00:00
2024-02-15 20:25:35 +00:00
2024-02-15 20:26:40 +00:00
void bigint_set_random_bytes(bigint_t n);
void bigint_set_msb_and_lsb_to_one(bigint_t n);
void bigint_bitwise_left_shift(bigint_t n);
void bigint_bitwise_right_shift(bigint_t n);
void bigint_decrement(bigint_t n);
int bigint_cmp(bigint_t a, bigint_t b);
bigint_t bigint_prime(size_t len);
void bigint_print(bigint_t n);
bigint_t bigint_new(size_t len);
bigint_t bigint_zero(size_t len);
bigint_t bigint_clone(bigint_t src);
2024-02-16 12:32:06 +00:00
void bigint_add(bigint_t a, bigint_t b);
bigint_t assignable_bigint_mul(bigint_t a, bigint_t b);
2024-02-15 20:26:40 +00:00
bigint_t assignable_bigint_modulo(bigint_t a, bigint_t b);
2024-02-16 12:32:06 +00:00
bigint_t assignable_bigint_pow_mod(bigint_t a, bigint_t e, bigint_t n);
2024-02-16 14:57:11 +00:00
void bigint_set_zeros(bigint_t n);
2024-02-14 16:14:03 +00:00
2024-02-15 20:26:40 +00:00
void bigint_destroy(bigint_t n);
2024-02-14 16:14:03 +00:00
2024-02-15 20:26:40 +00:00
void array_set_random_bytes(uint32_t *n, size_t size);
void array_set_msb_and_lsb_to_one(uint32_t *n, size_t size);
void array_bitwise_right_shift(uint32_t *a, size_t len);
void array_bitwise_right_shift(uint32_t *a, size_t len);
void array_decrement(uint32_t *a, size_t len);
2024-02-15 20:25:35 +00:00
2024-02-14 16:14:03 +00:00
#endif