pike.git / lib / modules / SSL.pmod / https.pike

version» Context lines:

pike.git/lib/modules/SSL.pmod/https.pike:83:    sha->update(secret);    rc4->set_encrypt_key(sha->digest());    }       string read(int size)    {    return rc4->crypt(replace(allocate(size), 0, "\021") * "");    }   }    + #if 0   /* ad-hoc asn.1-decoder */      class ber_decode { -  inherit "struct"; +  inherit ADT.struct;       array get_asn1()    {    int tag = get_int(1);    int len;    string contents;       werror(sprintf("decoding tag %x\n", tag));    if ( (tag & 0x1f) == 0x1f)    throw( ({ "high tag numbers is not supported\n", backtrace() }) );
pike.git/lib/modules/SSL.pmod/https.pike:121:    array elem = seq->get_asn1();    // werror(sprintf("elem: %O\n", elem));    res += ({ elem });    }    return ({ tag, res });    }    else    return ({ tag, contents });    }   } + #endif      /* PKCS#1 Private key structure:      RSAPrivateKey ::= SEQUENCE {    version Version,    modulus INTEGER, -- n    publicExponent INTEGER, -- e    privateExponent INTEGER, -- d    prime1 INTEGER, -- p    prime2 INTEGER, -- q
pike.git/lib/modules/SSL.pmod/https.pike:150:   {    werror("Accept!\n");    conn(f->accept());   }      int main()   {    werror(sprintf("Cert: '%s'\n", Crypto.string_to_hex(my_certificate)));    werror(sprintf("Key: '%s'\n", Crypto.string_to_hex(my_key)));   // werror(sprintf("Decoded cert: %O\n", ber_decode(my_certificate)->get_asn1())); -  array key = ber_decode(my_key)->get_asn1()[1]; +  array key = asn1.ber_decode(my_key)->get_asn1()[1];    werror(sprintf("Decoded key: %O\n", key)); -  object n = Gmp.mpz(key[1][1], 256); -  object e = Gmp.mpz(key[2][1], 256); -  object d = Gmp.mpz(key[3][1], 256); -  object p = Gmp.mpz(key[4][1], 256); -  object q = Gmp.mpz(key[5][1], 256); +  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];       werror(sprintf("n = %s\np = %s\nq = %s\npq = %s\n",    n->digits(), p->digits(), q->digits(), (p*q)->digits()));    rsa = Crypto.rsa();    rsa->set_public_key(n, e);    rsa->set_private_key(d);    certificates = ({ my_certificate });    random = no_random()->read;    werror("Starting\n"); -  return bind(PORT, my_accept_callback) ? -17 : 17; +  if (!bind(PORT, my_accept_callback)) +  { +  perror(""); +  return 17;    } -  +  else +  return -17; + }