mirror of
https://gitlab.kit.edu/kit/scc/sys/mail/exim-encrypt-dlfunc.git
synced 2025-12-06 12:03:55 +01:00
…
This commit is contained in:
22
src/genkey.c
22
src/genkey.c
@ -32,6 +32,15 @@ void
|
||||
dump_key_as_exim_config(FILE * f, const char *name, unsigned char *key,
|
||||
unsigned int keylen)
|
||||
{
|
||||
// write a comment with C variable declaration
|
||||
fprintf(f, "# const unsigned char %s[%d] = { ", name, keylen);
|
||||
for (int i = 0; i < keylen; i++) {
|
||||
fprintf(f, "0x%02x", key[i]);
|
||||
if (i < keylen - 1) {
|
||||
fprintf(f, ", ");
|
||||
}
|
||||
}
|
||||
fprintf(f, " }; const unsigned int %s_length = %d;\n", name, keylen);
|
||||
// encode with base64
|
||||
unsigned int b64len = sodium_base64_ENCODED_LEN(keylen, sodium_base64_VARIANT_ORIGINAL);
|
||||
unsigned char *b64string = malloc(b64len);
|
||||
@ -89,6 +98,8 @@ void create_cryptobox_keys(const char *filebase, const char *varname)
|
||||
unsigned char recipient_pk[crypto_box_PUBLICKEYBYTES];
|
||||
unsigned char recipient_sk[crypto_box_SECRETKEYBYTES];
|
||||
|
||||
crypto_box_keypair(recipient_pk, recipient_sk);
|
||||
|
||||
char pk_filename[4096];
|
||||
char pk_varname[4096];
|
||||
char sk_filename[4096];
|
||||
@ -106,11 +117,10 @@ void create_cryptobox_keys(const char *filebase, const char *varname)
|
||||
|
||||
}
|
||||
|
||||
void create_secretboy_key(const char *filebase, const char *varname) {
|
||||
void create_secretbox_key(const char *filebase, const char *varname) {
|
||||
unsigned char key[crypto_secretbox_KEYBYTES];
|
||||
while (key_contains_zero(key, crypto_secretbox_KEYBYTES)) {
|
||||
crypto_secretbox_keygen(key);
|
||||
}
|
||||
|
||||
crypto_secretbox_keygen(key);
|
||||
|
||||
char key_filename[4096];
|
||||
char key_varname[4096];
|
||||
@ -121,7 +131,7 @@ void create_secretboy_key(const char *filebase, const char *varname) {
|
||||
write_key_files(key_filename, key_varname, key, crypto_secretbox_KEYBYTES);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if (sodium_init() < 0) {
|
||||
fputs("Unable to initialize libsodium", stderr);
|
||||
@ -130,8 +140,6 @@ int main(void)
|
||||
|
||||
fputs("=== Creating cryptobox key pair ===\n", stderr);
|
||||
create_cryptobox_keys("cryptobox_recipient", "cryptobox_recipient");
|
||||
fputs("=== Creating secretbox key ===\n", stderr);
|
||||
create_secretboy_key("secretbox", "secretbox");
|
||||
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user