#include <stdlib.h>
#include <string.h>
-
-int main(char *argv[], int argc) {
- crypt_init();
-
- struct crypt_rsa_privkey *privkey;
- FILE *fp;
- if(fp = fopen("privkey.pem", "r")) {
- char buffer[4096];
- fread(buffer, sizeof(buffer), 1, fp);
- fclose(fp);
-
- privkey = crypt_load_privkey(buffer);
- } else {
- privkey = crypt_generate_privkey(2048);
-
- fp = fopen("privkey.pem", "w");
- char *buffer = crypt_export_privkey(privkey, 0);
- fprintf(fp, "%s", buffer);
- free(buffer);
- fclose(fp);
- }
-
- struct crypt_rsa_pubkey *pubkey = crypt_get_pubkey(privkey);
- char plain[] = "Test String!!!";
- char *crypted = NULL;
- int len = crypt_encrypt_data(pubkey, plain, sizeof(plain), &crypted);
-
- printf("Crypt Len: %d\n", len);
- printf("Crypt: ");
- int i;
- for(i = 0; i < len; i++) {
- printf(" %02X", ((unsigned int)crypted[i] & 0xFF));
- }
- printf("\n");
-
- char *decrypted = NULL;
- len = crypt_decrypt_data(privkey, crypted, len, &decrypted);
- printf("Decrypt Len: %d\n", len);
- printf("Decrypt: %s\n", decrypted);
-}
-
-
-
/*
// GnuTLS Backend not working because of gnutls_pubkey_encrypt_data doesn't exists prior to GnuTLS 3.0
// still searching for a replacement...