813b392000-08-04Andreas Sigfridsson #! /usr/bin/env pike // SSL Client example import SSL.constants; SSL.sslfile sslfile; void write_callback(mixed id) { sslfile->set_write_callback(0);
aa77d52001-04-18Pär Svensson  // sslfile->write("GET / HTTP/1.0\r\n\r\n");
813b392000-08-04Andreas Sigfridsson } void read_callback(mixed id, string s) { write(s); } int main(int argc, array(string) argv) { SSL.context context = SSL.context(); // Allow only strong crypto context->preferred_suites = ({ SSL_rsa_with_idea_cbc_sha, SSL_rsa_with_rc4_128_sha, SSL_rsa_with_rc4_128_md5, SSL_rsa_with_3des_ede_cbc_sha, }); context->random = Crypto.randomness.reasonably_random()->read; Stdio.File socket = Stdio.File(); if(!socket->connect("pike.roxen.com", 443)) { werror("couldn't connect\n"); exit(-1); } socket->set_nonblocking();
aa77d52001-04-18Pär Svensson  sslfile = SSL.sslfile(socket, context, 1,0);
813b392000-08-04Andreas Sigfridsson  sslfile->set_nonblocking(read_callback, write_callback, exit); return -17; }