rendered paste body#include <openssl/ssl.h>#include <openssl/crypto.h>#include <openssl/dh.h>#include <openssl/bn.h>#include <stdio.h>char *prime1080="FBE1022E23D213E8ACFA9AE8B9DFADA3EA6B7AC7A7B7E95AB5EB2DF858921FEADE95E6AC7BE7DE6ADBAB8A783E7AF7A7FA6A2B7BEB1E72EAE2B72F9FA2BFB2A2EFBEFAC868BADB3E828FA8BADFADA3E4CC1BE7E8AFE85E9698A783EB68FA07A77AB6AD7BEB618ACF9CA2897EB28A6189EFA07AB99A8A7FA9AE299EFA7BA66DEAFEFBEFBF0B7D8B";char *generator = "2";int main(){SSL_load_error_strings();SSL_library_init();OpenSSL_add_all_algorithms();DH *dhA = DH_new();DH *dhB = DH_new();unsigned char* keyA = NULL;unsigned char* keyB = NULL;BIGNUM *bn_prime1080 = BN_new();BIGNUM *bn_generator = BN_new();BN_init(bn_prime1080);BN_init(bn_generator);BN_hex2bn(&bn_prime1080, prime1080);BN_hex2bn(&bn_generator, generator);dhA->p = dhB->p = bn_prime1080;dhB->g = dhB->g = bn_generator;DH_generate_key(dhA);DH_generate_key(dhB);keyA = (unsigned char*)malloc(DH_size(dhA));keyB = (unsigned char*)malloc(DH_size(dhB));DH_compute_key(keyA,dhB->pub_key, dhA);DH_compute_key(keyB,dhA->pub_key, dhB);printf("key a: %s\n",keyA);printf("key b: %s\n",keyB);free(keyA);free(keyB);DH_free(dhA);DH_free(dhB);BN_free(bn_prime1080);BN_free(bn_generator);return 0;}