Revision 63ef0db60f7b9fc0c2bcabdc7e2bd133784ddd60 authored by Adam Langley on 13 December 2014, 20:13:10 UTC, committed by Matt Caswell on 16 December 2014, 14:46:57 UTC
The client_version needs to be preserved for the RSA key exchange. This change also means that renegotiation will, like TLS, repeat the old client_version rather than advertise only the final version. (Either way, version change on renego is not allowed.) This is necessary in TLS to work around an SChannel bug, but it's not strictly necessary in DTLS. (From BoringSSL) Reviewed-by: Emilia Käsper <emilia@openssl.org> (cherry picked from commit ec1af3c4195c1dfecdd9dc7458850ab1b8b951e0)
1 parent f74f5c8
des3s.cpp
//
// gettsc.inl
//
// gives access to the Pentium's (secret) cycle counter
//
// This software was written by Leonard Janke (janke@unixg.ubc.ca)
// in 1996-7 and is entered, by him, into the public domain.
#if defined(__WATCOMC__)
void GetTSC(unsigned long&);
#pragma aux GetTSC = 0x0f 0x31 "mov [edi], eax" parm [edi] modify [edx eax];
#elif defined(__GNUC__)
inline
void GetTSC(unsigned long& tsc)
{
asm volatile(".byte 15, 49\n\t"
: "=eax" (tsc)
:
: "%edx", "%eax");
}
#elif defined(_MSC_VER)
inline
void GetTSC(unsigned long& tsc)
{
unsigned long a;
__asm _emit 0fh
__asm _emit 31h
__asm mov a, eax;
tsc=a;
}
#endif
#include <stdio.h>
#include <stdlib.h>
#include <openssl/des.h>
void main(int argc,char *argv[])
{
des_key_schedule key1,key2,key3;
unsigned long s1,s2,e1,e2;
unsigned long data[2];
int i,j;
for (j=0; j<6; j++)
{
for (i=0; i<1000; i++) /**/
{
des_encrypt3(&data[0],key1,key2,key3);
GetTSC(s1);
des_encrypt3(&data[0],key1,key2,key3);
des_encrypt3(&data[0],key1,key2,key3);
des_encrypt3(&data[0],key1,key2,key3);
GetTSC(e1);
GetTSC(s2);
des_encrypt3(&data[0],key1,key2,key3);
des_encrypt3(&data[0],key1,key2,key3);
des_encrypt3(&data[0],key1,key2,key3);
des_encrypt3(&data[0],key1,key2,key3);
GetTSC(e2);
des_encrypt3(&data[0],key1,key2,key3);
}
printf("des %d %d (%d)\n",
e1-s1,e2-s2,((e2-s2)-(e1-s1)));
}
}

Computing file changes ...