pike.git/lib/modules/SSL.pmod/https.pike:196: Inside #if constant(SSL.Cipher.CipherAlgorithm) and #if defined(HTTPS_CLIENT)
#ifdef HTTPS_CLIENT
Stdio.File con = Stdio.File();
if (!con->connect("127.0.0.1", PORT)) {
werror("Failed to connect to server: %s\n", strerror(con->errno()));
return 17;
}
client(con);
return -17;
#else
#ifdef ECDSA_MODE
+ #if constant(Crypto.ECC.Curve)
ecdsa = Crypto.ECC.SECP_521R1.ECDSA()->
set_random(Crypto.Random.random_string)->generate_key();
my_certificate =
Standards.X509.make_selfsigned_certificate(ecdsa, 3600*4, ([
"organizationName" : "Test",
"commonName" : "*",
]));
ecdsa_mode();
#else
-
+ #error ECDSA not supported by this Pike.
+ exit(1);
+ #endif
+ #else
SSL3_DEBUG_MSG("Cert: '%s'\n", String.string2hex(my_certificate));
SSL3_DEBUG_MSG("Key: '%s'\n", String.string2hex(my_key));
#if 0
array key = SSL.asn1.ber_decode(my_key)->get_asn1()[1];
SSL3_DEBUG_MSG("Decoded key: %O\n", key);
object n = key[1][1];
object e = key[2][1];
object d = key[3][1];
object p = key[4][1];
object q = key[5][1];