$NetBSD: patch-aa,v 1.2 2010/04/10 00:11:49 markd Exp $ update for modern openssl. use gettimeofday() rather than ftime() to prime srand(). --- msn/util.cpp.orig 2009-07-22 19:57:10.000000000 +0000 +++ msn/util.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include "md5.h" #include "libsiren/siren7.h" @@ -259,15 +259,15 @@ namespace MSN unsigned char workvec[8]; RAND_bytes(workvec, 8); - des_key_schedule ks1,ks2,ks3; + DES_key_schedule ks1,ks2,ks3; const char *one=key3.c_str(); const char *two=key3.c_str()+8; const char *three=key3.c_str()+16; - des_set_key((C_Block *)one,ks1); - des_set_key((C_Block *)two,ks2); - des_set_key((C_Block *)three,ks3); + DES_set_key((DES_cblock *)one,&ks1); + DES_set_key((DES_cblock *)two,&ks2); + DES_set_key((DES_cblock *)three,&ks3); unsigned char output[72]; memset(&output,0,72); @@ -278,7 +278,7 @@ namespace MSN // ugly, but I think it is working properly std::ostringstream buf_; buf_ << nonce << "\x08\x08\x08\x08\x08\x08\x08\x08"; - DES_ede3_cbc_encrypt((const unsigned char*)buf_.str().c_str(),output,buf_.str().size(),&ks1,&ks2,&ks3,(C_Block *)workvec,DES_ENCRYPT); + DES_ede3_cbc_encrypt((const unsigned char*)buf_.str().c_str(),output,buf_.str().size(),&ks1,&ks2,&ks3,(DES_cblock *)workvec,DES_ENCRYPT); MSGUSRKEY.uStructHeaderSize=28; MSGUSRKEY.uCryptMode=1; @@ -367,10 +367,10 @@ namespace MSN std::string new_branch() { - struct timeb t; - ftime(&t); + struct timeval t; + gettimeofday(&t, NULL); char branch[100]; - srand(t.millitm); + srand(t.tv_usec); unsigned int a=random(); srand(a); unsigned short b=random();