Systemsicherheit/Assignment 7 - SGX Hands-on/rsa/rsa.h
Sascha Tommasone 4d6d39df95
All checks were successful
Latex Build / build-latex (Assignment 4 - Protokollsicherheit (Praxis)) (push) Successful in 1m2s
Latex Build / build-latex (Assignment 5 - Software Security - Teil 1) (push) Successful in 1m2s
Latex Build / build-latex (Assignment 6 - Software Security - Teil 2) (push) Successful in 1m0s
Latex Build / build-latex (Assignment 4 - Protokollsicherheit (Praxis)) (pull_request) Successful in 36s
Latex Build / build-latex (Assignment 5 - Software Security - Teil 1) (pull_request) Successful in 8s
Latex Build / build-latex (Assignment 6 - Software Security - Teil 2) (pull_request) Successful in 9s
[Assigment-7] basic rsa implementation
2024-06-29 16:10:15 +02:00

37 lines
No EOL
593 B
C

#ifndef RSA_H
#define RSA_H
#include <gmp.h>
#include <stdint.h>
#ifndef MODULUS_SIZE
#define MODULUS_SIZE 256ULL
#endif
typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint64_t u64;
typedef struct {
mpz_t p;
mpz_t q;
mpz_t n;
mpz_t e;
mpz_t d;
} rsa_key;
typedef struct {
mpz_t e;
mpz_t n;
} rsa_public_key;
void rsa_print(rsa_key *key);
int rsa_init(rsa_key *key);
void rsa_free(rsa_key *key);
int rsa_sign(u8 *sig, const u8 *sha256, const rsa_key *key);
int rsa_verify(const u8 *sig, const u8* sha256, rsa_public_key *pk);
#endif