Below is the list of changes that have just been committed into a local
5.0 repository of msvensson. When msvensson does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2008-02-14 19:12:07+01:00, msvensson@stripped +194 -0
Import yassl 1.8.6 and latest version of cyassl
extra/cyassl/ctaocrypt/benchmark/benchmark.c@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +7 -2
Import patch yassl.diff
extra/cyassl/ctaocrypt/benchmark/benchmark.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/cyassl/ctaocrypt/benchmark/benchmark.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/ctaocrypt/benchmark/benchmark.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +195 -0
Import patch yassl.diff
extra/cyassl/ctaocrypt/benchmark/benchmark.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/ctaocrypt/ctaocrypt.sln@stripped, 2007-10-10 00:30:56+02:00, msvensson@stripped +38 -0
Import patch yassl.diff
extra/cyassl/ctaocrypt/ctaocrypt.sln@stripped, 2007-10-10 00:30:56+02:00, msvensson@stripped +0 -0
extra/cyassl/ctaocrypt/include/aes.h@stripped, 2006-04-05 03:36:57+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/arc4.h@stripped, 2006-04-05 03:36:57+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/asn.h@stripped, 2008-02-14 02:45:14+01:00, msvensson@stripped +14 -4
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/coding.h@stripped, 2006-12-07 22:51:51+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/des3.h@stripped, 2007-04-30 22:33:38+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/dh.h@stripped, 2006-04-05 03:36:58+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/dsa.h@stripped, 2006-05-15 00:17:09+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/error.h@stripped, 2007-04-30 22:33:38+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/hmac.h@stripped, 2006-11-23 00:33:56+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/integer.h@stripped, 2007-11-27 01:48:40+01:00, msvensson@stripped +2 -2
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/md5.h@stripped, 2006-04-05 03:36:58+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/random.h@stripped, 2006-04-05 03:36:59+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/rsa.h@stripped, 2006-04-05 03:36:59+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/sha.h@stripped, 2006-04-05 03:36:59+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/sha256.h@stripped, 2006-12-05 20:11:18+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/include/types.h@stripped, 2006-04-05 03:36:59+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/aes.c@stripped, 2006-04-05 03:37:00+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/arc4.c@stripped, 2006-04-05 03:37:00+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/asn.c@stripped, 2008-02-14 02:45:14+01:00, msvensson@stripped +111 -18
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/coding.c@stripped, 2007-04-30 22:33:38+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/des3.c@stripped, 2007-04-30 22:33:38+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/dh.c@stripped, 2006-04-05 03:37:01+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/dsa.c@stripped, 2006-05-15 00:17:09+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/hmac.c@stripped, 2006-11-23 00:33:56+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/integer.c@stripped, 2007-11-27 01:48:40+01:00, msvensson@stripped +2 -2
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/md5.c@stripped, 2006-04-05 03:37:03+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/misc.c@stripped, 2006-04-05 03:37:04+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/random.c@stripped, 2006-11-23 00:33:56+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/rsa.c@stripped, 2006-05-15 00:17:09+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/sha.c@stripped, 2006-04-05 03:37:04+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/src/sha256.c@stripped, 2006-12-19 02:36:21+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/ctaocrypt/test/test.c@stripped, 2008-02-13 03:50:23+01:00, msvensson@stripped +37 -30
Import patch yassl.diff
extra/cyassl/ctaocrypt/test/test.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/cyassl/ctaocrypt/test/test.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/ctaocrypt/test/test.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +195 -0
Import patch yassl.diff
extra/cyassl/ctaocrypt/test/test.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/cyassl.sln@stripped, 2007-10-10 00:30:56+02:00, msvensson@stripped +92 -0
Import patch yassl.diff
extra/cyassl/cyassl.sln@stripped, 2007-10-10 00:30:56+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/client/client.c@stripped, 2008-02-14 02:45:15+01:00, msvensson@stripped +13 -1
Import patch yassl.diff
extra/cyassl/examples/client/client.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/cyassl/examples/client/client.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/client/client.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +197 -0
Import patch yassl.diff
extra/cyassl/examples/client/client.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/echoclient/echoclient.c@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/examples/echoclient/echoclient.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/cyassl/examples/echoclient/echoclient.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/echoclient/echoclient.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +197 -0
Import patch yassl.diff
extra/cyassl/examples/echoclient/echoclient.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/echoserver/echoserver.c@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/examples/echoserver/echoserver.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/cyassl/examples/echoserver/echoserver.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/echoserver/echoserver.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +197 -0
Import patch yassl.diff
extra/cyassl/examples/echoserver/echoserver.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/server/server.c@stripped, 2008-02-14 02:45:15+01:00, msvensson@stripped +7 -0
Import patch yassl.diff
extra/cyassl/examples/server/server.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/cyassl/examples/server/server.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/server/server.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +197 -0
Import patch yassl.diff
extra/cyassl/examples/server/server.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/examples/test.h@stripped, 2008-02-14 02:45:15+01:00, msvensson@stripped +64 -11
Import patch yassl.diff
extra/cyassl/include/cyassl_error.h@stripped, 2008-02-13 03:50:23+01:00, msvensson@stripped +5 -2
Import patch yassl.diff
extra/cyassl/include/cyassl_int.h@stripped, 2008-02-14 02:45:15+01:00, msvensson@stripped +81 -5
Import patch yassl.diff
extra/cyassl/include/openssl/des.h@stripped, 2007-05-04 16:28:39+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/include/openssl/engine.h@stripped, 2007-10-30 00:25:24+01:00, msvensson@stripped +5 -0
Import patch yassl.diff
extra/cyassl/include/openssl/engine.h@stripped, 2007-10-30 00:25:24+01:00, msvensson@stripped +0 -0
extra/cyassl/include/openssl/evp.h@stripped, 2007-05-04 16:28:39+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/include/openssl/hmac.h@stripped, 2007-05-04 16:28:39+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/cyassl/include/openssl/md4.h@stripped, 2007-10-30 00:25:24+01:00, msvensson@stripped +1 -0
Import patch yassl.diff
extra/cyassl/include/openssl/md4.h@stripped, 2007-10-30 00:25:24+01:00, msvensson@stripped +0 -0
extra/cyassl/include/openssl/ocsp.h@stripped, 2007-10-30 00:25:24+01:00, msvensson@stripped +1 -0
Import patch yassl.diff
extra/cyassl/include/openssl/ocsp.h@stripped, 2007-10-30 00:25:24+01:00, msvensson@stripped +0 -0
extra/cyassl/include/openssl/ssl.h@stripped, 2008-02-14 02:45:15+01:00, msvensson@stripped +8 -1
Import patch yassl.diff
extra/cyassl/src/cyassl_int.c@stripped, 2008-02-14 02:45:15+01:00, msvensson@stripped +461 -21
Import patch yassl.diff
extra/cyassl/src/keys.c@stripped, 2008-02-13 03:50:23+01:00, msvensson@stripped +44 -11
Import patch yassl.diff
extra/cyassl/src/ssl.c@stripped, 2008-02-14 02:45:15+01:00, msvensson@stripped +109 -13
Import patch yassl.diff
extra/cyassl/src/tls.c@stripped, 2008-02-13 03:50:23+01:00, msvensson@stripped +2 -2
Import patch yassl.diff
extra/cyassl/testsuite/testsuite.c@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +4 -4
Import patch yassl.diff
extra/cyassl/testsuite/testsuite.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/cyassl/testsuite/testsuite.sln@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/cyassl/testsuite/testsuite.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +221 -0
Import patch yassl.diff
extra/cyassl/testsuite/testsuite.vcproj@stripped, 2007-10-10 00:30:57+02:00, msvensson@stripped +0 -0
extra/yassl/examples/client/client.cpp@stripped, 2007-10-03 22:36:45+02:00, msvensson@stripped +2 -2
Import patch yassl.diff
extra/yassl/examples/client/client.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/yassl/examples/client/client.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/examples/client/client.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +197 -0
Import patch yassl.diff
extra/yassl/examples/client/client.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/examples/echoclient/echoclient.cpp@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/examples/echoclient/echoclient.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/yassl/examples/echoclient/echoclient.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/examples/echoclient/echoclient.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +197 -0
Import patch yassl.diff
extra/yassl/examples/echoclient/echoclient.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/examples/echoserver/echoserver.cpp@stripped, 2007-10-03 22:36:45+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/examples/echoserver/echoserver.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/yassl/examples/echoserver/echoserver.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/examples/echoserver/echoserver.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +197 -0
Import patch yassl.diff
extra/yassl/examples/echoserver/echoserver.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/examples/server/server.cpp@stripped, 2007-10-03 22:36:45+02:00, msvensson@stripped +2 -2
Import patch yassl.diff
extra/yassl/examples/server/server.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/yassl/examples/server/server.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/examples/server/server.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +197 -0
Import patch yassl.diff
extra/yassl/examples/server/server.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/include/buffer.hpp@stripped, 2007-03-15 03:15:07+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/cert_wrapper.hpp@stripped, 2007-03-15 03:15:07+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/crypto_wrapper.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/factory.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/handshake.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/lock.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/log.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/openssl/crypto.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +1 -0
Import patch yassl.diff
extra/yassl/include/openssl/des_old.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +1 -0
Import patch yassl.diff
extra/yassl/include/openssl/des_old.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +0 -0
extra/yassl/include/openssl/evp.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +10 -0
Import patch yassl.diff
extra/yassl/include/openssl/evp.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +0 -0
extra/yassl/include/openssl/hmac.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +1 -0
Import patch yassl.diff
extra/yassl/include/openssl/hmac.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +0 -0
extra/yassl/include/openssl/objects.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +1 -0
Import patch yassl.diff
extra/yassl/include/openssl/objects.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +0 -0
extra/yassl/include/openssl/sha.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +1 -0
Import patch yassl.diff
extra/yassl/include/openssl/sha.h@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +0 -0
extra/yassl/include/openssl/ssl.h@stripped, 2008-01-31 20:35:03+01:00, msvensson@stripped +6 -2
Import patch yassl.diff
extra/yassl/include/socket_wrapper.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/timer.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/yassl.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/yassl_error.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/yassl_imp.hpp@stripped, 2007-03-15 03:15:08+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/include/yassl_int.hpp@stripped, 2007-12-24 00:18:00+01:00, msvensson@stripped +10 -2
Import patch yassl.diff
extra/yassl/include/yassl_types.hpp@stripped, 2007-12-24 00:18:01+01:00, msvensson@stripped +9 -1
Import patch yassl.diff
extra/yassl/src/buffer.cpp@stripped, 2007-03-15 03:15:09+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/src/cert_wrapper.cpp@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +6 -6
Import patch yassl.diff
extra/yassl/src/crypto_wrapper.cpp@stripped, 2007-03-15 03:15:09+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/src/handshake.cpp@stripped, 2008-01-12 00:17:24+01:00, msvensson@stripped +11 -1
Import patch yassl.diff
extra/yassl/src/lock.cpp@stripped, 2007-03-15 03:15:09+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/src/log.cpp@stripped, 2007-03-15 03:15:09+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/src/socket_wrapper.cpp@stripped, 2007-08-28 10:03:04+02:00, msvensson@stripped +1 -5
Import patch yassl.diff
extra/yassl/src/ssl.cpp@stripped, 2007-12-24 00:18:01+01:00, msvensson@stripped +34 -2
Import patch yassl.diff
extra/yassl/src/template_instnt.cpp@stripped, 2008-01-12 00:17:24+01:00, msvensson@stripped +2 -1
Import patch yassl.diff
extra/yassl/src/timer.cpp@stripped, 2007-03-15 03:15:10+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/src/yassl.cpp@stripped, 2007-03-15 03:15:10+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/src/yassl_error.cpp@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +6 -1
Import patch yassl.diff
extra/yassl/src/yassl_imp.cpp@stripped, 2008-01-12 00:17:24+01:00, msvensson@stripped +12 -3
Import patch yassl.diff
extra/yassl/src/yassl_int.cpp@stripped, 2007-12-24 00:18:01+01:00, msvensson@stripped +61 -11
Import patch yassl.diff
extra/yassl/taocrypt/benchmark/benchmark.cpp@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/benchmark/benchmark.sln@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/yassl/taocrypt/benchmark/benchmark.sln@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +0 -0
extra/yassl/taocrypt/benchmark/benchmark.vcproj@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +195 -0
Import patch yassl.diff
extra/yassl/taocrypt/benchmark/benchmark.vcproj@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +0 -0
extra/yassl/taocrypt/include/aes.hpp@stripped, 2007-03-15 03:15:10+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/algebra.hpp@stripped, 2007-03-15 03:15:10+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/arc4.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/asn.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/block.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/blowfish.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/coding.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/des.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/dh.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/dsa.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/error.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/file.hpp@stripped, 2007-03-15 03:15:11+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/hash.hpp@stripped, 2007-03-20 22:43:58+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/hmac.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/integer.hpp@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +1 -8
Import patch yassl.diff
extra/yassl/taocrypt/include/kernelc.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/md2.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/md4.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/md5.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/misc.hpp@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +6 -3
Import patch yassl.diff
extra/yassl/taocrypt/include/modarith.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/modes.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/pwdbased.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/random.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/ripemd.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/rsa.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/runtime.hpp@stripped, 2007-10-03 22:36:45+02:00, msvensson@stripped +2 -2
Import patch yassl.diff
extra/yassl/taocrypt/include/sha.hpp@stripped, 2007-03-20 22:43:58+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/twofish.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/type_traits.hpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/include/types.hpp@stripped, 2007-03-20 22:43:58+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/algorithm.hpp@stripped, 2006-09-18 22:19:22+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/helpers.hpp@stripped, 2006-09-27 19:22:32+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/list.hpp@stripped, 2006-09-18 22:19:22+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/memory.hpp@stripped, 2006-09-18 22:19:22+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/memory_array.hpp@stripped, 2006-09-18 22:19:22+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/pair.hpp@stripped, 2006-09-18 22:19:22+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/stdexcept.hpp@stripped, 2006-09-18 22:19:22+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/vector.hpp@stripped, 2006-09-18 22:19:22+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/aes.cpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/aestables.cpp@stripped, 2007-03-15 03:15:12+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/algebra.cpp@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +2 -2
Import patch yassl.diff
extra/yassl/taocrypt/src/arc4.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/asn.cpp@stripped, 2007-12-24 00:28:42+01:00, msvensson@stripped +8 -10
Import patch yassl.diff
extra/yassl/taocrypt/src/bftables.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/blowfish.cpp@stripped, 2007-10-03 00:30:00+02:00, msvensson@stripped +24 -13
Import patch yassl.diff
extra/yassl/taocrypt/src/coding.cpp@stripped, 2007-05-03 19:31:49+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/crypto.cpp@stripped, 2007-08-21 00:31:31+02:00, msvensson@stripped +6 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/des.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/dh.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/dsa.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/file.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/hash.cpp@stripped, 2007-03-20 22:43:58+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/integer.cpp@stripped, 2007-03-23 16:30:14+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/md2.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/md4.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/md5.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/misc.cpp@stripped, 2007-04-11 19:34:46+02:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/random.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/ripemd.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/rsa.cpp@stripped, 2007-03-15 03:15:16+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/sha.cpp@stripped, 2007-03-20 22:43:58+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/template_instnt.cpp@stripped, 2007-03-15 03:15:17+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/tftables.cpp@stripped, 2007-03-15 03:15:17+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/src/twofish.cpp@stripped, 2007-03-15 03:15:17+01:00, msvensson@stripped +1 -1
Import patch yassl.diff
extra/yassl/taocrypt/taocrypt.sln@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +38 -0
Import patch yassl.diff
extra/yassl/taocrypt/taocrypt.sln@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +0 -0
extra/yassl/taocrypt/taocrypt.vcproj@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +244 -125
Import patch yassl.diff
extra/yassl/taocrypt/test/test.cpp@stripped, 2007-10-16 03:25:34+02:00, msvensson@stripped +13 -10
Import patch yassl.diff
extra/yassl/taocrypt/test/test.sln@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/yassl/taocrypt/test/test.sln@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +0 -0
extra/yassl/taocrypt/test/test.vcproj@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +195 -0
Import patch yassl.diff
extra/yassl/taocrypt/test/test.vcproj@stripped, 2007-10-05 01:29:27+02:00, msvensson@stripped +0 -0
extra/yassl/testsuite/test.hpp@stripped, 2007-10-05 01:48:09+02:00, msvensson@stripped +51 -7
Import patch yassl.diff
extra/yassl/testsuite/testsuite.cpp@stripped, 2007-10-05 01:29:28+02:00, msvensson@stripped +4 -4
Import patch yassl.diff
extra/yassl/testsuite/testsuite.sln@stripped, 2007-10-05 01:29:28+02:00, msvensson@stripped +20 -0
Import patch yassl.diff
extra/yassl/testsuite/testsuite.sln@stripped, 2007-10-05 01:29:28+02:00, msvensson@stripped +0 -0
extra/yassl/testsuite/testsuite.vcproj@stripped, 2007-10-05 01:29:28+02:00, msvensson@stripped +221 -0
Import patch yassl.diff
extra/yassl/testsuite/testsuite.vcproj@stripped, 2007-10-05 01:29:28+02:00, msvensson@stripped +0 -0
extra/yassl/yassl.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +92 -0
Import patch yassl.diff
extra/yassl/yassl.sln@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +0 -0
extra/yassl/yassl.vcproj@stripped, 2007-10-05 01:29:26+02:00, msvensson@stripped +164 -108
Import patch yassl.diff
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: msvensson
# Host: pilot.mysql.com
# Root: /data/msvensson/mysql/cyassl/my50-cyassl
--- 1.2/extra/yassl/taocrypt/mySTL/algorithm.hpp 2006-09-18 22:19:22 +02:00
+++ 1.3/extra/yassl/taocrypt/mySTL/algorithm.hpp 2006-09-18 22:19:22 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/taocrypt/mySTL/helpers.hpp 2006-09-27 19:22:32 +02:00
+++ 1.4/extra/yassl/taocrypt/mySTL/helpers.hpp 2006-09-27 19:22:32 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/taocrypt/mySTL/list.hpp 2006-09-18 22:19:22 +02:00
+++ 1.5/extra/yassl/taocrypt/mySTL/list.hpp 2006-09-18 22:19:22 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.2/extra/yassl/taocrypt/mySTL/memory.hpp 2006-09-18 22:19:22 +02:00
+++ 1.3/extra/yassl/taocrypt/mySTL/memory.hpp 2006-09-18 22:19:22 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.2/extra/yassl/taocrypt/mySTL/memory_array.hpp 2006-09-18 22:19:22 +02:00
+++ 1.3/extra/yassl/taocrypt/mySTL/memory_array.hpp 2006-09-18 22:19:22 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.2/extra/yassl/taocrypt/mySTL/pair.hpp 2006-09-18 22:19:22 +02:00
+++ 1.3/extra/yassl/taocrypt/mySTL/pair.hpp 2006-09-18 22:19:22 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.2/extra/yassl/taocrypt/mySTL/stdexcept.hpp 2006-09-18 22:19:22 +02:00
+++ 1.3/extra/yassl/taocrypt/mySTL/stdexcept.hpp 2006-09-18 22:19:22 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.2/extra/yassl/taocrypt/mySTL/vector.hpp 2006-09-18 22:19:22 +02:00
+++ 1.3/extra/yassl/taocrypt/mySTL/vector.hpp 2006-09-18 22:19:22 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.2/extra/yassl/taocrypt/src/crypto.cpp 2006-09-26 23:09:44 +02:00
+++ 1.3/extra/yassl/taocrypt/src/crypto.cpp 2007-08-21 00:31:31 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -26,6 +26,11 @@ extern "C" {
// locking handled internally by library
char CRYPTO_lock() { return 0;}
char CRYPTO_add_lock() { return 0;}
+
+
+ // for openvpn, test are the signatures they use
+ char EVP_CIPHER_CTX_init() { return 0; }
+ char CRYPTO_mem_ctrl() { return 0; }
} // extern "C"
--- 1.1/extra/cyassl/ctaocrypt/benchmark/benchmark.c 2006-11-23 00:33:56 +01:00
+++ 1.2/extra/cyassl/ctaocrypt/benchmark/benchmark.c 2007-10-10 00:30:57 +02:00
@@ -19,6 +19,11 @@
#define NO_DH /* remove for now */
+#ifdef _MSC_VER
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable: 4996)
+#endif
+
void bench_des();
void bench_arc4();
void bench_aes();
@@ -235,7 +240,7 @@ void bench_rsa()
byte message[] = "Everyone gets Friday off.";
byte cipher[128]; /* for 1024 bit */
byte plain[128]; /* for 1024 bit */
- const int len = strlen((char*)message);
+ const int len = (int)strlen((char*)message);
double start, total, each, milliEach;
RsaKey key;
@@ -248,7 +253,7 @@ void bench_rsa()
bytes = fread(tmp, 1, 1024, file);
InitRsaKey(&key);
- bytes = RsaPrivateKeyDecode(tmp, &idx, &key, bytes);
+ bytes = RsaPrivateKeyDecode(tmp, &idx, &key, (word32)bytes);
start = current_time();
--- 1.1/extra/cyassl/ctaocrypt/include/aes.h 2006-04-05 03:36:57 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/aes.h 2006-04-05 03:36:57 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/arc4.h 2006-04-05 03:36:57 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/arc4.h 2006-04-05 03:36:57 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/asn.h 2006-12-07 22:51:51 +01:00
+++ 1.2/extra/cyassl/ctaocrypt/include/asn.h 2008-02-14 02:45:14 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -52,10 +52,17 @@ enum ASN_Flags{
};
enum DN_Tags {
- ASN_COMMON_NAME = 0x03
+ ASN_COMMON_NAME = 0x03, /* CN */
+ ASN_SUR_NAME = 0x04, /* SN */
+ ASN_COUNTRY_NAME = 0x06, /* C */
+ ASN_LOCALITY_NAME = 0x07, /* L */
+ ASN_STATE_NAME = 0x08, /* ST */
+ ASN_ORG_NAME = 0x0a, /* O */
+ ASN_ORGUNIT_NAME = 0x0b /* OU */
};
enum Misc_ASN {
+ ASN_NAME_MAX = 256,
SHA_SIZE = 20,
MIN_DATE_SIZE = 13,
MAX_DATE_SIZE = 15,
@@ -111,8 +118,10 @@ typedef struct DecodedCert {
byte subjectHash[SHA_SIZE]; /* hash of all Names */
byte issuerHash[SHA_SIZE]; /* hash of all Names */
byte* signature;
- char* issuer; /* CommonName */
- char* subject; /* CommonName */
+ char* issuerCN; /* CommonName */
+ char* subjectCN; /* CommonName */
+ char issuer[ASN_NAME_MAX]; /* full name including common name */
+ char subject[ASN_NAME_MAX]; /* full name including common name */
int verify; /* Default to yes, but could be off */
byte* source; /* byte buffer holder cert, NOT owner */
word32 srcIdx; /* current offset into buffer */
@@ -144,6 +153,7 @@ int RsaPublicKeyDecode(const byte* input
#ifndef NO_DH
int DhKeyDecode(const byte* input, word32* inOutIdx, DhKey* key, word32);
+int DhSetKey(DhKey* key, const byte* p, word32 pSz, const byte* g, word32 gSz);
#endif
#ifndef NO_DSA
--- 1.1/extra/cyassl/ctaocrypt/include/coding.h 2006-12-07 22:51:51 +01:00
+++ 1.2/extra/cyassl/ctaocrypt/include/coding.h 2006-12-07 22:51:51 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/des3.h 2007-04-30 22:33:38 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/des3.h 2007-04-30 22:33:38 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/dh.h 2006-04-05 03:36:58 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/dh.h 2006-04-05 03:36:58 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/dsa.h 2006-05-15 00:17:09 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/dsa.h 2006-05-15 00:17:09 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/error.h 2007-04-30 22:33:38 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/error.h 2007-04-30 22:33:38 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/hmac.h 2006-11-23 00:33:56 +01:00
+++ 1.2/extra/cyassl/ctaocrypt/include/hmac.h 2006-11-23 00:33:56 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/integer.h 2006-04-05 03:36:58 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/integer.h 2007-11-27 01:48:40 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
/*
* Based on public domain LibTomMath 0.38 by Tom St Denis, tomstdenis@stripped,
- * http://math.libtomcrypt.org
+ * http://math.libtomcrypt.com
*/
--- 1.1/extra/cyassl/ctaocrypt/include/md5.h 2006-04-05 03:36:58 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/md5.h 2006-04-05 03:36:58 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/random.h 2006-04-05 03:36:59 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/random.h 2006-04-05 03:36:59 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/rsa.h 2006-04-05 03:36:59 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/rsa.h 2006-04-05 03:36:59 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/sha.h 2006-04-05 03:36:59 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/sha.h 2006-04-05 03:36:59 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/sha256.h 2006-12-05 20:11:18 +01:00
+++ 1.2/extra/cyassl/ctaocrypt/include/sha256.h 2006-12-05 20:11:18 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/include/types.h 2006-04-05 03:36:59 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/include/types.h 2006-04-05 03:36:59 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/aes.c 2006-04-05 03:37:00 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/aes.c 2006-04-05 03:37:00 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/arc4.c 2006-04-05 03:37:00 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/arc4.c 2006-04-05 03:37:00 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/asn.c 2007-04-30 22:33:38 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/asn.c 2008-02-14 02:45:14 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -24,9 +24,16 @@
#include <time.h>
#include <assert.h>
+#ifdef _MSC_VER
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable: 4996)
+#endif
-#define NO_DH /* remove for now */
-#define NO_DSA /* remove for now */
+
+enum {
+ FALSE = 0,
+ TRUE = 1
+};
enum {
@@ -226,6 +233,33 @@ int DhKeyDecode(const byte* input, word3
return 0;
}
+int DhSetKey(DhKey* key, const byte* p, word32 pSz, const byte* g, word32 gSz)
+{
+ /* may have leading 0 */
+ if (p[0] == 0) {
+ pSz--; p++;
+ }
+
+ if (g[0] == 0) {
+ gSz--; g++;
+ }
+
+ mp_init(&key->p);
+ if (mp_read_unsigned_bin(&key->p, p, pSz) != 0) {
+ mp_clear(&key->p);
+ return ASN_DH_KEY_E;
+ }
+
+ mp_init(&key->g);
+ if (mp_read_unsigned_bin(&key->g, g, gSz) != 0) {
+ mp_clear(&key->p);
+ return ASN_DH_KEY_E;
+ }
+
+ return 0;
+}
+
+
#endif /* NO_DH */
@@ -283,8 +317,8 @@ void InitDecodedCert(DecodedCert* cert,
{
cert->publicKey = 0;
cert->signature = 0;
- cert->issuer = 0;
- cert->subject = 0;
+ cert->issuerCN = 0;
+ cert->subjectCN = 0;
cert->source = source; /* don't own */
cert->srcIdx = 0;
}
@@ -292,8 +326,8 @@ void InitDecodedCert(DecodedCert* cert,
void FreeDecodedCert(DecodedCert* cert)
{
- free(cert->subject);
- free(cert->issuer);
+ free(cert->subjectCN);
+ free(cert->issuerCN);
free(cert->signature);
free(cert->publicKey);
}
@@ -346,16 +380,17 @@ static int GetAlgoId(DecodedCert* cert,
*oid += cert->source[cert->srcIdx++];
/* just sum it up for now */
- if (*oid != SHAwDSA && *oid != DSAk) {
- b = cert->source[cert->srcIdx++]; /* should have NULL tag and 0 */
-
- if (b != ASN_TAG_NULL)
- return ASN_TAG_NULL_E;
+ /* could have NULL tag and 0 terminator, but may not */
+ b = cert->source[cert->srcIdx++];
+ if (b == ASN_TAG_NULL) {
b = cert->source[cert->srcIdx++];
if (b != 0)
return ASN_EXPECT_0_E;
}
+ else
+ /* go back, didn't have it */
+ cert->srcIdx--;
return 0;
}
@@ -422,6 +457,8 @@ static int GetName(DecodedCert* cert, in
Sha sha;
int length; /* length of all distinguished names */
int dummy;
+ char* full = (nameType == ISSUER) ? cert->issuer : cert->subject;
+ word32 idx = 0;
InitSha(&sha);
@@ -453,6 +490,7 @@ static int GetName(DecodedCert* cert, in
/* v1 name types */
if (joint[0] == 0x55 && joint[1] == 0x04) {
byte id;
+ byte copy = FALSE;
int strLen;
cert->srcIdx += 2;
@@ -463,28 +501,83 @@ static int GetName(DecodedCert* cert, in
return ASN_PARSE_E;
if (id == ASN_COMMON_NAME) {
- char** pp = (nameType == ISSUER) ?
- &cert->issuer : &cert->subject;
- *pp = (char*) malloc(strLen + 1);
- if (!*pp)
+ char** cn = (nameType == ISSUER) ?
+ &cert->issuerCN : &cert->subjectCN;
+ *cn = (char*) malloc(strLen + 1);
+ if (!*cn)
return MEMORY_E;
- memcpy(*pp, &cert->source[cert->srcIdx], strLen);
- (*pp)[strLen] = 0;
+ memcpy(*cn, &cert->source[cert->srcIdx], strLen);
+ (*cn)[strLen] = 0;
+
+ memcpy(&full[idx], "/CN=", 4);
+ idx += 4;
+ copy = TRUE;
+ }
+ else if (id == ASN_SUR_NAME) {
+ memcpy(&full[idx], "/SN=", 4);
+ idx += 4;
+ copy = TRUE;
+ }
+ else if (id == ASN_COUNTRY_NAME) {
+ memcpy(&full[idx], "/C=", 3);
+ idx += 3;
+ copy = TRUE;
+ }
+ else if (id == ASN_LOCALITY_NAME) {
+ memcpy(&full[idx], "/L=", 3);
+ idx += 3;
+ copy = TRUE;
}
+ else if (id == ASN_STATE_NAME) {
+ memcpy(&full[idx], "/ST=", 4);
+ idx += 4;
+ copy = TRUE;
+ }
+ else if (id == ASN_ORG_NAME) {
+ memcpy(&full[idx], "/O=", 3);
+ idx += 3;
+ copy = TRUE;
+ }
+ else if (id == ASN_ORGUNIT_NAME) {
+ memcpy(&full[idx], "/OU=", 4);
+ idx += 4;
+ copy = TRUE;
+ }
+
+ if (copy) {
+ memcpy(&full[idx], &cert->source[cert->srcIdx], strLen);
+ idx += strLen;
+ }
+
ShaUpdate(&sha, &cert->source[cert->srcIdx], strLen);
cert->srcIdx += strLen;
}
else {
/* skip */
+ byte email = FALSE;
int adv;
+
+ if (joint[0] == 0x2a && joint[1] == 0x86) /* email id hdr */
+ email = TRUE;
+
cert->srcIdx += oidSz + 1;
if (GetLength(cert->source, &cert->srcIdx, &adv) < 0)
return ASN_PARSE_E;
+ if (email) {
+ memcpy(&full[idx], "/emailAddress=", 14);
+ idx += 14;
+
+ memcpy(&full[idx], &cert->source[cert->srcIdx], adv);
+ idx += adv;
+ }
+
cert->srcIdx += adv;
}
}
+ full[idx++] = 0;
+
if (nameType == ISSUER)
ShaFinal(&sha, cert->issuerHash);
else
--- 1.1/extra/cyassl/ctaocrypt/src/coding.c 2007-04-30 22:33:38 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/coding.c 2007-04-30 22:33:38 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/des3.c 2007-04-30 22:33:38 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/des3.c 2007-04-30 22:33:38 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/dh.c 2006-04-05 03:37:01 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/dh.c 2006-04-05 03:37:01 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/dsa.c 2006-05-15 00:17:09 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/dsa.c 2006-05-15 00:17:09 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/hmac.c 2006-11-23 00:33:56 +01:00
+++ 1.2/extra/cyassl/ctaocrypt/src/hmac.c 2006-11-23 00:33:56 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/integer.c 2006-04-05 03:37:03 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/integer.c 2007-11-27 01:48:40 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
/*
* Based on public domain LibTomMath 0.38 by Tom St Denis, tomstdenis@stripped,
- * http://math.libtomcrypt.org
+ * http://math.libtomcrypt.com
*/
--- 1.1/extra/cyassl/ctaocrypt/src/md5.c 2006-04-05 03:37:03 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/md5.c 2006-04-05 03:37:03 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/misc.c 2006-04-05 03:37:04 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/misc.c 2006-04-05 03:37:04 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/random.c 2006-11-23 00:33:56 +01:00
+++ 1.2/extra/cyassl/ctaocrypt/src/random.c 2006-11-23 00:33:56 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/rsa.c 2006-05-15 00:17:09 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/rsa.c 2006-05-15 00:17:09 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/sha.c 2006-04-05 03:37:04 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/src/sha.c 2006-04-05 03:37:04 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/src/sha256.c 2006-12-19 02:36:21 +01:00
+++ 1.2/extra/cyassl/ctaocrypt/src/sha256.c 2006-12-19 02:36:21 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/ctaocrypt/test/test.c 2007-04-30 22:33:39 +02:00
+++ 1.2/extra/cyassl/ctaocrypt/test/test.c 2008-02-13 03:50:23 +01:00
@@ -15,6 +15,13 @@
#include "des3.h"
#include "aes.h"
#include "hmac.h"
+#include "dh.h"
+#include "dsa.h"
+
+#ifdef _MSC_VER
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable: 4996)
+#endif
#ifdef OPENSSL_EXTRA
#include "../../include/openssl/evp.h"
@@ -23,13 +30,7 @@
#include "../../include/openssl/des.h"
#endif
-/*
-#include "dh.h"
-#include "dsa.h"
-*/
-#define NO_DH /* remove for now */
-#define NO_DSA /* remove for now */
typedef struct testVector {
@@ -58,7 +59,7 @@ int PemToDer(const char* inName, const c
void err_sys(const char* msg, int es)
{
- printf("%s", msg);
+ printf("%s error = %d\n", msg, es);
exit(es);
}
@@ -228,7 +229,7 @@ int md5_test()
InitMd5(&md5);
for (i = 0; i < times; ++i) {
- Md5Update(&md5, (byte*)test_md5[i].input, test_md5[i].inLen);
+ Md5Update(&md5, (byte*)test_md5[i].input, (word32)test_md5[i].inLen);
Md5Final(&md5, hash);
if (memcmp(hash, test_md5[i].output, MD5_DIGEST_SIZE) != 0)
@@ -283,7 +284,7 @@ int sha_test()
InitSha(&sha);
for (i = 0; i < times; ++i) {
- ShaUpdate(&sha, (byte*)test_sha[i].input, test_sha[i].inLen);
+ ShaUpdate(&sha, (byte*)test_sha[i].input, (word32)test_sha[i].inLen);
ShaFinal(&sha, hash);
if (memcmp(hash, test_sha[i].output, SHA_DIGEST_SIZE) != 0)
@@ -324,7 +325,7 @@ int sha256_test()
InitSha256(&sha);
for (i = 0; i < times; ++i) {
- Sha256Update(&sha, (byte*)test_sha[i].input, test_sha[i].inLen);
+ Sha256Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen);
Sha256Final(&sha, hash);
if (memcmp(hash, test_sha[i].output, SHA256_DIGEST_SIZE) != 0)
@@ -380,8 +381,9 @@ int hmac_test()
test_hmac[2] = c;
for (i = 0; i < times; ++i) {
- HmacSetKey(&hmac, MD5, (byte*)keys[i], strlen(keys[i]));
- HmacUpdate(&hmac, (byte*)test_hmac[i].input, test_hmac[i].inLen);
+ HmacSetKey(&hmac, MD5, (byte*)keys[i], (word32)strlen(keys[i]));
+ HmacUpdate(&hmac, (byte*)test_hmac[i].input,
+ (word32)test_hmac[i].inLen);
HmacFinal(&hmac, hash);
if (memcmp(hash, test_hmac[i].output, MD5_DIGEST_SIZE) != 0)
@@ -440,12 +442,12 @@ int arc4_test()
Arc4 enc;
Arc4 dec;
- Arc4SetKey(&enc, (byte*)keys[i], strlen(keys[i]));
- Arc4SetKey(&dec, (byte*)keys[i], strlen(keys[i]));
+ Arc4SetKey(&enc, (byte*)keys[i], (word32)strlen(keys[i]));
+ Arc4SetKey(&dec, (byte*)keys[i], (word32)strlen(keys[i]));
Arc4Process(&enc, cipher, (byte*)test_arc4[i].input,
- test_arc4[i].outLen);
- Arc4Process(&dec, plain, cipher, test_arc4[i].outLen);
+ (word32)test_arc4[i].outLen);
+ Arc4Process(&dec, plain, cipher, (word32)test_arc4[i].outLen);
if (memcmp(plain, test_arc4[i].input, test_arc4[i].outLen))
return -20 - i;
@@ -632,7 +634,7 @@ int rsa_test()
word32 idx = 0;
int ret;
byte in[] = "Everyone gets Friday off.";
- word32 inLen = strlen((char*)in);
+ word32 inLen = (word32)strlen((char*)in);
byte out[64];
byte plain[64];
DecodedCert cert;
@@ -645,7 +647,7 @@ int rsa_test()
bytes = fread(tmp, 1, 1024, file);
InitRsaKey(&key);
- ret = RsaPrivateKeyDecode(tmp, &idx, &key, bytes);
+ ret = RsaPrivateKeyDecode(tmp, &idx, &key, (word32)bytes);
if (ret != 0) return -41;
ret = InitRng(&rng);
@@ -671,7 +673,7 @@ int rsa_test()
InitDecodedCert(&cert, (byte*)&tmp2);
- ret = ParseCert(&cert, bytes2, CERT_TYPE, NO_VERIFY, 0);
+ ret = ParseCert(&cert, (word32)bytes2, CERT_TYPE, NO_VERIFY, 0);
if (ret != 0) return -48;
FreeDecodedCert(&cert);
@@ -695,7 +697,7 @@ int rsa_test()
int dh_test()
{
int ret;
- size_t bytes;
+ word32 bytes;
word32 idx = 0, privSz, pubSz, privSz2, pubSz2, agreeSz, agreeSz2;
byte tmp[1024];
byte priv[128];
@@ -712,30 +714,35 @@ int dh_test()
if (!file)
return -50;
- bytes = fread(tmp, 1, 1024, file);
+ bytes = (word32) fread(tmp, 1, 1024, file);
InitDhKey(&key);
InitDhKey(&key2);
ret = DhKeyDecode(tmp, &idx, &key, bytes);
- if (ret != 0) return -51;
+ if (ret != 0)
+ return -51;
idx = 0;
ret = DhKeyDecode(tmp, &idx, &key2, bytes);
- if (ret != 0) return -52;
+ if (ret != 0)
+ return -52;
ret = InitRng(&rng);
- if (ret != 0) return -53;
+ if (ret != 0)
+ return -53;
ret = DhGenerateKeyPair(&key, &rng, priv, &privSz, pub, &pubSz);
ret = DhGenerateKeyPair(&key2, &rng, priv2, &privSz2, pub2, &pubSz2);
- if (ret != 0) return -54;
+ if (ret != 0)
+ return -54;
ret = DhAgree(&key, agree, &agreeSz, priv, privSz, pub2, pubSz2);
ret = DhAgree(&key, agree2, &agreeSz2, priv2, privSz2, pub, pubSz);
- if (ret != 0) return -55;
+ if (ret != 0)
+ return -55;
- if (memcmp(agree, agree2, sizeof(agree)))
- return - 56;
+ if (memcmp(agree, agree2, agreeSz))
+ return -56;
FreeDhKey(&key);
FreeDhKey(&key2);
@@ -758,7 +765,7 @@ int dh_test()
int dsa_test()
{
int ret, answer;
- size_t bytes;
+ word32 bytes;
word32 idx = 0;
byte tmp[1024];
DsaKey key;
@@ -771,7 +778,7 @@ int dsa_test()
if (!file)
return -60;
- bytes = fread(tmp, 1, sizeof(tmp), file);
+ bytes = (word32) fread(tmp, 1, sizeof(tmp), file);
InitSha(&sha);
ShaUpdate(&sha, tmp, bytes);
--- 1.1/extra/cyassl/examples/client/client.c 2006-12-07 22:51:51 +01:00
+++ 1.2/extra/cyassl/examples/client/client.c 2008-02-14 02:45:15 +01:00
@@ -50,6 +50,7 @@ void client_test(void* args)
char** argv = ((func_args*)args)->argv;
((func_args*)args)->return_code = -1; /* error state */
+
#ifndef NO_TLS
method = TLSv1_client_method();
#else
@@ -65,8 +66,18 @@ void client_test(void* args)
/* this is just to allow easy testing of other servers */
tcp_connect(&sockfd, argv[1], (short)atoi(argv[2]));
}
- else if (argc == 1)
+ else if (argc == 1) {
+ /* for client cert authentication if server requests */
+ if (SSL_CTX_use_certificate_file(ctx, cliCert, SSL_FILETYPE_PEM)
+ != SSL_SUCCESS)
+ err_sys("can't load client cert file");
+
+ if (SSL_CTX_use_PrivateKey_file(ctx, cliKey, SSL_FILETYPE_PEM)
+ != SSL_SUCCESS)
+ err_sys("can't load client key file");
+
tcp_connect(&sockfd, yasslIP, yasslPort);
+ }
else
err_sys("usage: ./client server securePort");
@@ -80,6 +91,7 @@ void client_test(void* args)
if (SSL_connect(ssl) != SSL_SUCCESS)
err_sys("SSL_connect failed");
#endif
+ showPeer(ssl);
if (argc == 3) {
printf("SSL connect ok, sending GET...\n");
--- 1.1/extra/cyassl/examples/echoclient/echoclient.c 2006-11-23 00:33:56 +01:00
+++ 1.2/extra/cyassl/examples/echoclient/echoclient.c 2007-10-10 00:30:57 +02:00
@@ -59,7 +59,7 @@ void echoclient_test(void* args)
while (fgets(send, sizeof(send), fin)) {
- int sendSz = strlen(send) + 1;
+ int sendSz = (int)strlen(send) + 1;
if (SSL_write(ssl, send, sendSz) != sendSz)
err_sys("SSL_write failed");
--- 1.1/extra/cyassl/examples/echoserver/echoserver.c 2006-11-23 00:33:56 +01:00
+++ 1.2/extra/cyassl/examples/echoserver/echoserver.c 2007-10-10 00:30:57 +02:00
@@ -66,7 +66,7 @@ THREAD_RETURN CYASSL_API echoserver_test
char command[1024];
int echoSz = 0;
- struct sockaddr_in client;
+ SOCKADDR_IN_T client;
socklen_t client_len = sizeof(client);
int clientfd = accept(sockfd, (struct sockaddr*)&client,
(ACCEPT_THIRD_T)&client_len);
--- 1.1/extra/cyassl/examples/server/server.c 2006-12-07 22:51:51 +01:00
+++ 1.2/extra/cyassl/examples/server/server.c 2008-02-14 02:45:15 +01:00
@@ -46,9 +46,15 @@ THREAD_RETURN CYASSL_API server_test(voi
#endif
ctx = SSL_CTX_new(method);
+ SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
+
if (SSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS)
err_sys("can't load ca file");
+ /* for client auth */
+ if (SSL_CTX_load_verify_locations(ctx, cliCert, 0) != SSL_SUCCESS)
+ err_sys("can't load ca file");
+
if (SSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)
!= SSL_SUCCESS)
err_sys("can't load server cert file");
@@ -70,6 +76,7 @@ THREAD_RETURN CYASSL_API server_test(voi
if (SSL_accept(ssl) != SSL_SUCCESS)
err_sys("SSL_accept failed");
#endif
+ showPeer(ssl);
idx = SSL_read(ssl, input, sizeof(input));
if (idx > 0) {
--- 1.1/extra/cyassl/examples/test.h 2006-10-28 01:32:46 +02:00
+++ 1.2/extra/cyassl/examples/test.h 2008-02-14 02:45:15 +01:00
@@ -12,6 +12,10 @@
#ifdef _WIN32
#include <winsock2.h>
#include <process.h>
+ #ifdef TEST_IPV6 // don't require newer SDK for IPV4
+ #include <ws2tcpip.h>
+ #include <wspiapi.h>
+ #endif
#define SOCKET_T int
#else
#include <string.h>
@@ -27,9 +31,17 @@
#ifdef NON_BLOCKING
#include <fcntl.h>
#endif
+ #ifdef TEST_IPV6
+ #include <netdb.h>
+ #endif
#define SOCKET_T unsigned int
#endif /* _WIN32 */
+#ifdef _MSC_VER
+ // disable conversion warning
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable:4244 4996)
+#endif
#if defined(__MACH__) || defined(_WIN32)
typedef int socklen_t;
@@ -55,7 +67,7 @@
#ifndef _POSIX_THREADS
typedef unsigned int THREAD_RETURN;
- typedef unsigned long THREAD_TYPE;
+ typedef HANDLE THREAD_TYPE;
#define CYASSL_API __stdcall
#else
typedef void* THREAD_RETURN;
@@ -64,14 +76,27 @@
#endif
+#ifdef TEST_IPV6
+ typedef struct sockaddr_in6 SOCKADDR_IN_T;
+ #define AF_INET_V AF_INET6
+#else
+ typedef struct sockaddr_in SOCKADDR_IN_T;
+ #define AF_INET_V AF_INET
+#endif
+
+
#ifndef NO_MAIN_DRIVER
- static const char* caCert = "../../certs/ca-cert.pem";
- static const char* svrCert = "../../certs/server-cert.pem";
- static const char* svrKey = "../../certs/server-key.pem";
+ const char* caCert = "../../certs/ca-cert.pem";
+ const char* svrCert = "../../certs/server-cert.pem";
+ const char* svrKey = "../../certs/server-key.pem";
+ const char* cliCert = "../../certs/client-cert.pem";
+ const char* cliKey = "../../certs/client-key.pem";
#else
static const char* caCert = "../certs/ca-cert.pem";
static const char* svrCert = "../certs/server-cert.pem";
static const char* svrKey = "../certs/server-key.pem";
+ static const char* cliCert = "../certs/client-cert.pem";
+ static const char* cliKey = "../certs/client-key.pem";
#endif
@@ -113,9 +138,27 @@ static INLINE void err_sys(const char* m
}
-static INLINE void tcp_socket(SOCKET_T* sockfd, struct sockaddr_in* addr,
+static INLINE void showPeer(SSL* ssl)
+{
+ X509* peer = SSL_get_peer_certificate(ssl);
+ if (peer) {
+ char* issuer = X509_NAME_oneline(X509_get_issuer_name(peer), 0, 0);
+ char* subject = X509_NAME_oneline(X509_get_subject_name(peer), 0, 0);
+
+ printf("peer's cert info:\n issuer : %s\n subject: %s\n", issuer,
+ subject);
+ free(subject);
+ free(issuer);
+ }
+ else
+ printf("peer has no cert!\n");
+}
+
+
+static INLINE void tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr,
const char* peer, word16 port)
{
+#ifndef TEST_IPV6
const char* host = peer;
/* peer could be in human readable form */
@@ -132,18 +175,28 @@ static INLINE void tcp_socket(SOCKET_T*
else
err_sys("no entry for host");
}
- *sockfd = socket(AF_INET, SOCK_STREAM, 0);
- memset(addr, 0, sizeof(struct sockaddr_in));
- addr->sin_family = AF_INET;
+#endif
+
+ *sockfd = socket(AF_INET_V, SOCK_STREAM, 0);
+ memset(addr, 0, sizeof(SOCKADDR_IN_T));
+#ifndef TEST_IPV6
+ addr->sin_family = AF_INET_V;
addr->sin_port = htons(port);
addr->sin_addr.s_addr = inet_addr(host);
+#else
+ addr->sin6_family = AF_INET_V;
+ addr->sin6_port = htons(port);
+ addr->sin6_addr = in6addr_loopback;
+#endif
+
+
}
static INLINE void tcp_connect(SOCKET_T* sockfd, const char* ip, word16 port)
{
- struct sockaddr_in addr;
+ SOCKADDR_IN_T addr;
tcp_socket(sockfd, &addr, ip, port);
if (connect(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
@@ -153,7 +206,7 @@ static INLINE void tcp_connect(SOCKET_T*
static INLINE void tcp_listen(SOCKET_T* sockfd)
{
- struct sockaddr_in addr;
+ SOCKADDR_IN_T addr;
tcp_socket(sockfd, &addr, yasslIP, yasslPort);
if (bind(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
@@ -165,7 +218,7 @@ static INLINE void tcp_listen(SOCKET_T*
static INLINE void tcp_accept(SOCKET_T* sockfd, int* clientfd, func_args* args)
{
- struct sockaddr_in client;
+ SOCKADDR_IN_T client;
socklen_t client_len = sizeof(client);
tcp_listen(sockfd);
--- 1.1/extra/cyassl/include/cyassl_error.h 2007-04-30 22:33:39 +02:00
+++ 1.2/extra/cyassl/include/cyassl_error.h 2008-02-13 03:50:23 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -56,7 +56,10 @@ enum CyaSSL_ErrorCodes {
NOT_READY_ERROR = -224, /* handshake layer not ready */
PMS_VERSION_ERROR = -225, /* pre m secret version error */
VERSION_ERROR = -226, /* record layer version error */
- WANT_WRITE = -227 /* want write, call again */
+ WANT_WRITE = -227, /* want write, call again */
+ BUFFER_ERROR = -228, /* malformed buffer input */
+ VERIFY_CERT_ERROR = -229, /* verify cert error */
+ VERIFY_SIGN_ERROR = -230 /* verify sign error */
/* add strings to SetErrorString !!!!! */
};
--- 1.1/extra/cyassl/include/cyassl_int.h 2007-04-30 22:33:39 +02:00
+++ 1.2/extra/cyassl/include/cyassl_int.h 2008-02-14 02:45:15 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -33,7 +33,14 @@
#include <windows.h>
#else
#include <unistd.h>
+ #ifndef SINGLE_THREADED
#include <pthread.h>
+ #endif
+#endif
+
+#ifdef _MSC_VER
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable: 4996)
#endif
#ifdef __cplusplus
@@ -66,7 +73,12 @@ typedef byte word24[3];
#if !defined(NO_AES) && !defined(NO_TLS)
#define BUILD_TLS_RSA_WITH_AES_128_CBC_SHA
- #define BUILD_TLS_RSA_WITH_AES_256_CBC_SHA
+ #define BUILD_TLS_RSA_WITH_AES_128_CBC_SHA
+#endif
+
+#if !defined(NO_DH) && !defined(NO_AES) && !defined(NO_TLS) && defined(OPENSSL_EXTRA)
+ #define BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+ #define BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
#endif
@@ -97,6 +109,8 @@ typedef byte word24[3];
/* actual cipher values, 2nd byte */
enum {
+ TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x39,
+ TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x33,
TLS_RSA_WITH_AES_256_CBC_SHA = 0x35,
TLS_RSA_WITH_AES_128_CBC_SHA = 0x2F,
SSL_RSA_WITH_RC4_128_SHA = 0x05,
@@ -116,6 +130,7 @@ enum Misc {
FINISHED_SZ = MD5_DIGEST_SIZE + SHA_DIGEST_SIZE,
MAX_RECORD_SIZE = 16384, /* 2^14, max size by standard */
MAX_MSG_EXTRA = 68, /* max added to msg, mac + pad */
+ MAX_DH_SZ = 266, /* 1024 p, pub, g + 2 byte size for each */
PAD_MD5 = 48, /* pad length for finished */
PAD_SHA = 40, /* pad length for finished */
@@ -125,6 +140,7 @@ enum Misc {
BYTE3_LEN = 3, /* up to 24 bit byte lengths */
ALERT_SIZE = 2, /* level + description */
REQUEST_HEADER = 2, /* always use 2 bytes */
+ VERIFY_HEADER = 2, /* always use 2 bytes */
MAX_SUITE_SZ = 64, /* only 32 suites for now! */
RAN_LEN = 32, /* random length */
@@ -137,14 +153,17 @@ enum Misc {
HANDSHAKE_HEADER_SZ = 4, /* type + length(3) */
RECORD_HEADER_SZ = 5, /* type + version + len(2) */
CERT_HEADER_SZ = 3, /* always 3 bytes */
+ REQ_HEADER_SZ = 2, /* cert request header sz */
FINISHED_LABEL_SZ = 15, /* TLS finished label size */
TLS_FINISHED_SZ = 12, /* TLS has a shorter size */
MASTER_LABEL_SZ = 13, /* TLS master secret label sz */
KEY_LABEL_SZ = 13, /* TLS key block expansion sz */
- MAX_PRF_HALF = 48, /* Maximum half secret len */
+ MAX_PRF_HALF = 128, /* Maximum half secret len */
MAX_PRF_LABSEED = 80, /* Maximum label + seed len */
MAX_PRF_DIG = 148, /* Maximum digest len */
+ MAX_REQUEST_SZ = 256, /* Maximum cert req len (no auth yet */
+ SESSION_FLUSH_COUNT = 256, /* Flush session cache unless user turns off */
RC4_KEY_SIZE = 16, /* always 128bit */
DES3_KEY_SIZE = 24, /* 3 des ede */
@@ -154,6 +173,7 @@ enum Misc {
AES_128_KEY_SIZE = 16, /* for 128 bit */
MAX_HELLO_SZ = 128, /* max client or server hello */
+ MAX_CERT_VERIFY_SZ = 1024, /* max */
CLIENT_HELLO_FIRST = 35, /* Protocol + RAN_LEN + sizeof(id_len) */
MAX_SUITE_NAME = 48, /* maximum length of cipher suite string */
DEFAULT_TIMEOUT = 500, /* default resumption timeout in seconds */
@@ -186,6 +206,9 @@ enum states {
typedef struct SSL_CTX SSL_CTX;
typedef struct SSL_SESSION SSL_SESSION;
typedef struct SSL SSL;
+ typedef struct X509 X509;
+ #undef X509_NAME
+ typedef struct X509_NAME X509_NAME;
#endif /* SSL_TYPES_DEFINED */
@@ -228,7 +251,7 @@ typedef struct Suites {
} Suites;
-void InitSuites(Suites*, ProtocolVersion);
+void InitSuites(Suites*, ProtocolVersion, byte);
int SetCipherList(SSL_CTX* ctx, const char* list);
@@ -243,6 +266,9 @@ struct SSL_CTX {
byte verifyNone;
byte failNoCert;
byte sessionCacheOff;
+ byte sessionCacheFlushOff;
+ byte sendVerify; /* for client side */
+ byte haveDH; /* server DH parms set by user */
};
@@ -256,6 +282,7 @@ typedef struct CipherSpecs {
byte cipher_type; /* block or stream */
byte mac_algorithm;
byte kea; /* key exchange algo */
+ byte sig_algo;
byte hash_size;
byte pad_size;
word16 key_size;
@@ -296,6 +323,26 @@ enum KeyExchangeAlgorithm {
};
+/* Supported Authentication Schemes */
+enum SignatureAlgorithm {
+ anonymous_sa_algo = 0,
+ rsa_sa_algo,
+ dsa_sa_algo
+};
+
+
+/* Valid client certificate request types from page 27 */
+enum ClientCertificateType {
+ rsa_sign = 1,
+ dss_sign = 2,
+ rsa_fixed_dh = 3,
+ dss_fixed_dh = 4,
+ rsa_ephemeral_dh = 5,
+ dss_ephemeral_dh = 6,
+ fortezza_kea_cert = 20
+};
+
+
enum CipherType { stream, block };
@@ -359,8 +406,10 @@ enum ConnectState {
CONNECT_BEGIN = 0,
CLIENT_HELLO_SENT,
FIRST_REPLY_DONE,
+ FIRST_REPLY_FIRST,
FIRST_REPLY_SECOND,
FIRST_REPLY_THIRD,
+ FIRST_REPLY_FOURTH,
FINISHED_DONE,
SECOND_REPLY_DONE
};
@@ -385,6 +434,10 @@ typedef struct Buffers {
buffer bufferedData; /* decrypted data */
buffer bufferedInput; /* raw partial input */
buffer domainName; /* for client check */
+ buffer serverDH_P;
+ buffer serverDH_G;
+ buffer serverDH_Pub;
+ buffer serverDH_Priv;
} Buffers;
@@ -399,6 +452,7 @@ typedef struct WriteBuffer {
typedef struct Options {
byte sessionCacheOff;
+ byte sessionCacheFlushOff;
byte cipherSuite;
byte serverState;
byte clientState;
@@ -407,6 +461,7 @@ typedef struct Options {
byte verifyPeer;
byte verifyNone;
byte failNoCert;
+ byte sendVerify;
byte resuming;
byte tls; /* using TLS ? */
byte tls1_1; /* using TLSv1.1 ? */
@@ -415,6 +470,7 @@ typedef struct Options {
byte isClosed; /* if we consider conn closed */
byte connectState; /* nonblocking resume */
byte acceptState; /* nonblocking resume */
+ byte haveDH; /* server DH parms set by user */
} Options;
@@ -422,13 +478,29 @@ typedef struct Arrays {
byte clientRandom[RAN_LEN];
byte serverRandom[RAN_LEN];
byte sessionID[ID_LEN];
- byte preMasterSecret[SECRET_LEN];
+ byte preMasterSecret[ENCRYPT_LEN];
byte masterSecret[SECRET_LEN];
+ word32 preMasterSz; /* differs for DH, actual size */
} Arrays;
+#undef X509_NAME
+
+struct X509_NAME {
+ char name[ASN_NAME_MAX];
+ int sz;
+};
+
+
+struct X509 {
+ X509_NAME issuer;
+ X509_NAME subject;
+};
+
+
/* OpenSSL ssl type */
struct SSL {
+ SSL_CTX* ctx;
int error;
ProtocolVersion version; /* negotiated version */
ProtocolVersion chVersion; /* client hello version */
@@ -442,12 +514,14 @@ struct SSL {
Md5 hashMd5; /* md5 hash of handshake msgs */
Sha hashSha; /* sha hash of handshake msgs */
Hashes verifyHashes;
+ Hashes certHashes; /* for cert verify */
Signer* caList; /* SSL_CTX owns */
Buffers buffers;
WriteBuffer writeBuffer;
Options options;
Arrays arrays;
SSL_SESSION session;
+ X509 peerCert; /* X509 peer cert */
hmacfp hmac;
};
@@ -535,6 +609,7 @@ static const byte tls_server[FINISHED_LA
int SendChangeCipher(SSL*);
int SendData(SSL*, const void*, int);
int SendCertificate(SSL*);
+int SendCertificateRequest(SSL*);
int SendBuffered(SSL*);
int ReceiveData(SSL*, byte*, int);
int SendFinished(SSL*);
@@ -552,6 +627,7 @@ int StoreKeys(SSL* ssl, const byte* key
#ifndef NO_CYASSL_CLIENT
int SendClientHello(SSL*);
int SendClientKeyExchange(SSL*);
+ int SendCertificateVerify(SSL*);
#endif /* NO_CYASSL_CLIENT */
#ifndef NO_CYASSL_SERVER
--- 1.1/extra/cyassl/include/openssl/des.h 2007-05-04 16:28:39 +02:00
+++ 1.2/extra/cyassl/include/openssl/des.h 2007-05-04 16:28:39 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/include/openssl/evp.h 2007-05-04 16:28:39 +02:00
+++ 1.2/extra/cyassl/include/openssl/evp.h 2007-05-04 16:28:39 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.1/extra/cyassl/include/openssl/hmac.h 2007-05-04 16:28:39 +02:00
+++ 1.2/extra/cyassl/include/openssl/hmac.h 2007-05-04 16:28:39 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/cyassl/include/openssl/ssl.h 2007-05-08 18:20:24 +02:00
+++ 1.4/extra/cyassl/include/openssl/ssl.h 2008-02-14 02:45:15 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -45,6 +45,7 @@ typedef struct SSL_METHOD SSL_METHOD;
typedef struct SSL_CTX SSL_CTX;
typedef struct X509 X509;
+typedef struct X509_NAME X509_NAME;
/* redeclare guard */
@@ -81,6 +82,7 @@ int SSL_get_error(SSL*, int);
int SSL_set_session(SSL *ssl, SSL_SESSION *session);
SSL_SESSION* SSL_get_session(SSL* ssl);
+void SSL_flush_sessions(SSL_CTX *ctx, long tm);
typedef int (*VerifyCallback)(int, X509_STORE_CTX*);
@@ -187,6 +189,11 @@ long SSL_CTX_sess_get_cache_size(SSL_CTX
int SSL_CTX_set_default_verify_paths(SSL_CTX*);
int SSL_CTX_set_session_id_context(SSL_CTX*, const unsigned char*,
unsigned int);
+
+X509* SSL_get_peer_certificate(SSL* ssl);
+X509_NAME* X509_get_issuer_name(X509* cert);
+X509_NAME* X509_get_subject_name(X509* cert);
+char* X509_NAME_oneline(X509_NAME*, char*, int);
/* extra ends */
--- 1.1/extra/cyassl/src/cyassl_int.c 2007-04-30 22:33:39 +02:00
+++ 1.2/extra/cyassl/src/cyassl_int.c 2008-02-14 02:45:15 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -43,6 +43,9 @@
#include <sys/filio.h>
#endif
+#define TRUE 1
+#define FALSE 0
+
#ifdef _WIN32
const int SOCKET_EINVAL = WSAEINVAL;
@@ -71,6 +74,7 @@
#ifndef NO_CYASSL_SERVER
static int DoClientHello(SSL* ssl, const byte* input, word32*, word32,
word32);
+ static int DoCertificateVerify(SSL* ssl, const byte*, word32*, word32);
static int ProcessOldClientHello(SSL*, const byte*, word32*, word32);
static int DoClientKeyExchange(SSL* ssl, const byte* input, word32*);
#endif
@@ -79,6 +83,8 @@
static void Hmac(SSL* ssl, byte* digest, const byte* buffer, word32 sz,
int content, int verify);
+static void BuildCertHashes(SSL* ssl, Hashes* hashes);
+
void BuildTlsFinished(SSL* ssl, Hashes* hashes, const byte* sender);
int DeriveTlsKeys(SSL* ssl);
@@ -109,14 +115,17 @@ void InitSSL_Ctx(SSL_CTX* ctx, SSL_METHO
ctx->method = method;
ctx->certificate.buffer = 0;
ctx->privateKey.buffer = 0;
+ ctx->haveDH = 0;
ctx->caList = 0;
- InitSuites(&ctx->suites, method->version);
-
+ InitSuites(&ctx->suites, method->version, TRUE); /* remove DH later if
+ server didn't set */
ctx->verifyPeer = 0;
ctx->verifyNone = 0;
ctx->failNoCert = 0;
ctx->sessionCacheOff = 0; /* initially on */
+ ctx->sessionCacheFlushOff = 0; /* initially on */
+ ctx->sendVerify = 0;
}
@@ -132,14 +141,29 @@ void FreeSSL_Ctx(SSL_CTX* ctx)
}
-void InitSuites(Suites* suites, ProtocolVersion pv)
+void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH)
{
word32 idx = 0;
int tls = pv.major == 3 && pv.minor >= 1;
+
(void)tls; /* shut up compiler */
suites->setSuites = 0; /* user hasn't set yet */
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+ if (tls && haveDH) {
+ suites->suites[idx++] = 0;
+ suites->suites[idx++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
+ }
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+ if (tls && haveDH) {
+ suites->suites[idx++] = 0;
+ suites->suites[idx++] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA;
+ }
+#endif
+
#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA
if (tls) {
suites->suites[idx++] = 0;
@@ -175,6 +199,7 @@ void InitSuites(Suites* suites, Protocol
int InitSSL(SSL* ssl, SSL_CTX* ctx)
{
+ ssl->ctx = ctx; /* only for passing to calls, options could change */
ssl->version = ctx->method->version;
ssl->suites = ctx->suites;
ssl->socket = INVALID_SOCKET;
@@ -186,6 +211,10 @@ int InitSSL(SSL* ssl, SSL_CTX* ctx)
ssl->buffers.bufferedData.buffer = 0;
ssl->buffers.bufferedInput.buffer = 0;
ssl->buffers.domainName.buffer = 0;
+ ssl->buffers.serverDH_P.buffer = 0;
+ ssl->buffers.serverDH_G.buffer = 0;
+ ssl->buffers.serverDH_Pub.buffer = 0;
+ ssl->buffers.serverDH_Priv.buffer = 0;
ssl->writeBuffer.send.buffer = 0;
InitRng(&ssl->rng);
@@ -197,6 +226,7 @@ int InitSSL(SSL* ssl, SSL_CTX* ctx)
ssl->options.isNonBlocking = 0; /* clear win32 non-blocking flag */
ssl->options.connReset = 0;
ssl->options.isClosed = 0;
+ ssl->options.haveDH = ctx->haveDH;
ssl->options.serverState = NULL_STATE;
ssl->options.clientState = NULL_STATE;
@@ -205,10 +235,12 @@ int InitSSL(SSL* ssl, SSL_CTX* ctx)
ssl->keys.encryptionOn = 0; /* initially off */
ssl->options.sessionCacheOff = ctx->sessionCacheOff;
+ ssl->options.sessionCacheFlushOff = ctx->sessionCacheFlushOff;
ssl->options.verifyPeer = ctx->verifyPeer;
ssl->options.verifyNone = ctx->verifyNone;
ssl->options.failNoCert = ctx->failNoCert;
+ ssl->options.sendVerify = ctx->sendVerify;
ssl->options.resuming = 0;
ssl->hmac = Hmac; /* default to SSLv3 */
@@ -220,12 +252,23 @@ int InitSSL(SSL* ssl, SSL_CTX* ctx)
ssl->buffers.key = ctx->privateKey;
ssl->caList = ctx->caList;
+ ssl->peerCert.issuer.sz = 0;
+ ssl->peerCert.subject.sz = 0;
+
+ /* make sure server has DH parms */
+ if (ssl->options.side == SERVER_END && !ssl->options.haveDH)
+ InitSuites(&ssl->suites, ssl->version, FALSE);
+
return 0;
}
void FreeSSL(SSL* ssl)
{
+ free(ssl->buffers.serverDH_Priv.buffer);
+ free(ssl->buffers.serverDH_Pub.buffer);
+ free(ssl->buffers.serverDH_G.buffer);
+ free(ssl->buffers.serverDH_P.buffer);
free(ssl->buffers.domainName.buffer);
free(ssl->buffers.bufferedInput.buffer);
free(ssl->buffers.bufferedData.buffer);
@@ -527,7 +570,7 @@ int SendWrapper(SSL* ssl, const byte* ou
memcpy(ssl->writeBuffer.send.buffer, output, sz);
/* adjust for partial send, since made new buffer */
- offset = ssl->writeBuffer.offset - output;
+ offset = (int)(ssl->writeBuffer.offset - output);
ssl->writeBuffer.offset = ssl->writeBuffer.send.buffer + offset;
}
else
@@ -693,6 +736,13 @@ static int DoCertificate(SSL* ssl, const
if (firstTime && ret == 0) { /* first one has peer's key */
firstTime = 0;
+
+ /* set X509 format */
+ ssl->peerCert.issuer.sz = (int)strlen(dCert.issuer) + 1;
+ strncpy(ssl->peerCert.issuer.name, dCert.issuer, ASN_NAME_MAX);
+ ssl->peerCert.subject.sz = (int)strlen(dCert.subject) + 1;
+ strncpy(ssl->peerCert.subject.name, dCert.subject, ASN_NAME_MAX);
+
if ( (ssl->buffers.peerKey.buffer =
(byte*)malloc(dCert.pubKeySize))) {
memcpy(ssl->buffers.peerKey.buffer, dCert.publicKey,
@@ -701,7 +751,7 @@ static int DoCertificate(SSL* ssl, const
if (!ssl->options.verifyNone && ssl->buffers.domainName.buffer)
if (strncmp((char*)ssl->buffers.domainName.buffer,
- dCert.subject,
+ dCert.subjectCN,
ssl->buffers.domainName.length - 1))
ret = DOMAIN_NAME_MISMATCH;
}
@@ -844,6 +894,12 @@ static int DoHandShakeMsg(SSL* ssl, cons
CYASSL_MSG("processing client key exchange");
ret = DoClientKeyExchange(ssl, input, inOutIdx);
break;
+
+ case certificate_verify:
+ CYASSL_MSG("processing certificate verify");
+ ret = DoCertificateVerify(ssl, input, inOutIdx, totalSz);
+ break;
+
#endif
default:
@@ -1265,6 +1321,73 @@ static void Hmac(SSL* ssl, byte* digest,
}
+static void BuildMD5_CertVerify(SSL* ssl, byte* digest)
+{
+ byte md5_result[MD5_DIGEST_SIZE];
+ byte md5_inner[SECRET_LEN + PAD_MD5];
+ byte md5_outer[SECRET_LEN + PAD_MD5 + MD5_DIGEST_SIZE];
+
+ /* make md5 inner */
+ memcpy(md5_inner, ssl->arrays.masterSecret, SECRET_LEN);
+ memcpy(&md5_inner[SECRET_LEN], PAD1, PAD_MD5);
+
+ Md5Update(&ssl->hashMd5, md5_inner, sizeof(md5_inner));
+ Md5Final(&ssl->hashMd5, md5_result);
+
+ /* make md5 outer */
+ memcpy(md5_outer, ssl->arrays.masterSecret, SECRET_LEN);
+ memcpy(&md5_outer[SECRET_LEN], PAD2, PAD_MD5);
+ memcpy(&md5_outer[SECRET_LEN + PAD_MD5], md5_result, MD5_DIGEST_SIZE);
+
+ Md5Update(&ssl->hashMd5, md5_outer, sizeof(md5_outer));
+ Md5Final(&ssl->hashMd5, digest);
+}
+
+
+static void BuildSHA_CertVerify(SSL* ssl, byte* digest)
+{
+ byte sha_result[SHA_DIGEST_SIZE];
+ byte sha_inner[SECRET_LEN + PAD_SHA];
+ byte sha_outer[SECRET_LEN + PAD_SHA + SHA_DIGEST_SIZE];
+
+ /* make sha inner */
+ memcpy(sha_inner, ssl->arrays.masterSecret, SECRET_LEN);
+ memcpy(&sha_inner[SECRET_LEN], PAD1, PAD_SHA);
+
+ ShaUpdate(&ssl->hashSha, sha_inner, sizeof(sha_inner));
+ ShaFinal(&ssl->hashSha, sha_result);
+
+ /* make sha outer */
+ memcpy(sha_outer, ssl->arrays.masterSecret, SECRET_LEN);
+ memcpy(&sha_outer[SECRET_LEN], PAD2, PAD_SHA);
+ memcpy(&sha_outer[SECRET_LEN + PAD_SHA], sha_result, SHA_DIGEST_SIZE);
+
+ ShaUpdate(&ssl->hashSha, sha_outer, sizeof(sha_outer));
+ ShaFinal(&ssl->hashSha, digest);
+}
+
+
+static void BuildCertHashes(SSL* ssl, Hashes* hashes)
+{
+ /* store current states, building requires get_digest which resets state */
+ Md5 md5 = ssl->hashMd5;
+ Sha sha = ssl->hashSha;
+
+ if (ssl->options.tls) {
+ Md5Final(&ssl->hashMd5, hashes->md5);
+ ShaFinal(&ssl->hashSha, hashes->sha);
+ }
+ else {
+ BuildMD5_CertVerify(ssl, hashes->md5);
+ BuildSHA_CertVerify(ssl, hashes->sha);
+ }
+
+ /* restore */
+ ssl->hashMd5 = md5;
+ ssl->hashSha = sha;
+}
+
+
/* Build SSL Message, encrypted */
static int BuildMessage(SSL* ssl, byte* output, const byte* input, int inSz,
int type)
@@ -1432,6 +1555,49 @@ int SendCertificate(SSL* ssl)
}
+int SendCertificateRequest(SSL* ssl)
+{
+ byte output[MAX_REQUEST_SZ];
+ int sendSz;
+ word32 i = 0;
+
+ RecordLayerHeader rl;
+ HandShakeHeader hs;
+
+ int typeTotal = 1; /* only rsa for now */
+ int reqSz = ENUM_LEN + typeTotal + REQ_HEADER_SZ; /* add auth later */
+
+ sendSz = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ + reqSz;
+
+ /* record layer header */
+ rl.type = handshake;
+ rl.version = ssl->version;
+ rl.size = sendSz - RECORD_HEADER_SZ;
+ c16toa((word16)rl.size, rl.length);
+
+ /* make handshake header */
+ hs.type = certificate_request;
+ c32to24(reqSz, hs.length);
+
+ /* write to output */
+ memcpy(output, &rl, RECORD_HEADER_SZ);
+ i += RECORD_HEADER_SZ;
+
+ memcpy(output + i, &hs, HANDSHAKE_HEADER_SZ);
+ i += HANDSHAKE_HEADER_SZ;
+
+ output[i++] = typeTotal; /* # of types */
+ output[i++] = rsa_sign;
+
+ c16toa(0, &output[i]); /* auth's */
+ i += REQ_HEADER_SZ;
+
+ HashOutput(ssl, output, sendSz, 0);
+
+ return SendWrapper(ssl, output, sendSz, COPY);
+}
+
+
int SendData(SSL* ssl, const void* buffer, int sz)
{
int sent = 0, /* plainText size */
@@ -1712,6 +1878,18 @@ void SetErrorString(int error, char* buf
strncpy(buffer, "non-blocking socket write buffer full", max);
break;
+ case BUFFER_ERROR :
+ strncpy(buffer, "malformed buffer input error", max);
+ break;
+
+ case VERIFY_CERT_ERROR :
+ strncpy(buffer, "verify problem on certificate", max);
+ break;
+
+ case VERIFY_SIGN_ERROR :
+ strncpy(buffer, "verify problem based on signature", max);
+ break;
+
default :
strncpy(buffer, "unknown error number", max);
}
@@ -1744,6 +1922,14 @@ const char* const cipher_names[] =
"AES256-SHA",
#endif
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+ "DHE-RSA-AES128-SHA",
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+ "DHE-RSA-AES256-SHA",
+#endif
+
};
@@ -1772,6 +1958,14 @@ int cipher_name_idx[] =
TLS_RSA_WITH_AES_256_CBC_SHA,
#endif
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+ TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+ TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
+#endif
+
};
@@ -1793,7 +1987,7 @@ int SetCipherList(SSL_CTX* ctx, const ch
return 0;
for(;;) {
- int len;
+ size_t len;
prev = haystack;
haystack = strstr(haystack, needle);
@@ -1976,6 +2170,11 @@ int SetCipherList(SSL_CTX* ctx, const ch
len -= dnSz + REQUEST_HEADER;
}
+ /* don't send client cert or cert verify if user hasn't provided
+ cert of private key */
+ if (ssl->buffers.certificate.buffer && ssl->buffers.key.buffer)
+ ssl->options.sendVerify = 1;
+
return 0;
}
@@ -1983,9 +2182,117 @@ int SetCipherList(SSL_CTX* ctx, const ch
static int DoServerKeyExchange(SSL* ssl, const byte* input, word32*
inOutIdx)
{
+ #ifdef OPENSSL_EXTRA
+ word16 length, verifySz, messageTotal = 6; /* pSz + gSz + pubSz */
+ byte tmp[2];
+ byte messageVerify[MAX_DH_SZ];
+ byte signature[ENCRYPT_LEN];
+ byte hash[FINISHED_SZ];
+ Md5 md5;
+ Sha sha;
+
+ /* p */
+ tmp[0] = input[(*inOutIdx)++];
+ tmp[1] = input[(*inOutIdx)++];
+ ato16(tmp, &length);
+ messageTotal += length;
+
+ ssl->buffers.serverDH_P.buffer = (byte*) malloc(length);
+ if (ssl->buffers.serverDH_P.buffer)
+ ssl->buffers.serverDH_P.length = length;
+ else
+ return MEMORY_ERROR;
+ memcpy(ssl->buffers.serverDH_P.buffer, &input[*inOutIdx], length);
+ *inOutIdx += length;
+
+ /* g */
+ tmp[0] = input[(*inOutIdx)++];
+ tmp[1] = input[(*inOutIdx)++];
+ ato16(tmp, &length);
+ messageTotal += length;
+
+ ssl->buffers.serverDH_G.buffer = (byte*) malloc(length);
+ if (ssl->buffers.serverDH_G.buffer)
+ ssl->buffers.serverDH_G.length = length;
+ else
+ return MEMORY_ERROR;
+ memcpy(ssl->buffers.serverDH_G.buffer, &input[*inOutIdx], length);
+ *inOutIdx += length;
+
+ /* pub */
+ tmp[0] = input[(*inOutIdx)++];
+ tmp[1] = input[(*inOutIdx)++];
+ ato16(tmp, &length);
+ messageTotal += length;
+
+ ssl->buffers.serverDH_Pub.buffer = (byte*) malloc(length);
+ if (ssl->buffers.serverDH_Pub.buffer)
+ ssl->buffers.serverDH_Pub.length = length;
+ else
+ return MEMORY_ERROR;
+ memcpy(ssl->buffers.serverDH_Pub.buffer, &input[*inOutIdx], length);
+ *inOutIdx += length;
+
+ /* save message for hash verify */
+ if (messageTotal > sizeof(messageVerify))
+ return BUFFER_ERROR;
+ memcpy(messageVerify, &input[*inOutIdx - messageTotal], messageTotal);
+ verifySz = messageTotal;
+
+ /* signature */
+ tmp[0] = input[(*inOutIdx)++];
+ tmp[1] = input[(*inOutIdx)++];
+ ato16(tmp, &length);
+
+ memcpy(signature, &input[*inOutIdx], length);
+ *inOutIdx += length;
+
+ /* verify signature */
+
+ /* md5 */
+ InitMd5(&md5);
+ Md5Update(&md5, ssl->arrays.clientRandom, RAN_LEN);
+ Md5Update(&md5, ssl->arrays.serverRandom, RAN_LEN);
+ Md5Update(&md5, messageVerify, verifySz);
+ Md5Final(&md5, hash);
+
+ /* sha */
+ InitSha(&sha);
+ ShaUpdate(&sha, ssl->arrays.clientRandom, RAN_LEN);
+ ShaUpdate(&sha, ssl->arrays.serverRandom, RAN_LEN);
+ ShaUpdate(&sha, messageVerify, verifySz);
+ ShaFinal(&sha, &hash[MD5_DIGEST_SIZE]);
+
+ /* rsa for now */
+ {
+ RsaKey key;
+ int ret;
+ word32 idx = 0;
+ byte tmp[ENCRYPT_LEN];
+
+ InitRsaKey(&key);
+ if (ssl->buffers.peerKey.buffer)
+ ret = RsaPublicKeyDecode(ssl->buffers.peerKey.buffer, &idx,
+ &key, ssl->buffers.peerKey.length);
+ else
+ return NO_PEER_KEY;
+
+ if (ret == 0) {
+ ret = RsaSSL_Verify(signature, length, tmp, sizeof(tmp), &key);
+
+ if (ret != sizeof(hash) || memcmp(tmp, hash, sizeof(hash)))
+ return VERIFY_SIGN_ERROR;
+ }
+ else
+ return ret;
+ }
+ ssl->options.serverState = SERVER_KEYEXCHANGE_COMPLETE;
- return -1; /* not supported yet TODO: */
+ return 0;
+ #else
+ return -1; /* not supported by build */
+ #endif
}
@@ -1993,18 +2300,20 @@ int SetCipherList(SSL_CTX* ctx, const ch
{
byte encSecret[ENCRYPT_LEN];
word32 encSz;
- RsaKey key;
word32 idx = 0;
int ret = 0;
- /* RSA for now */
- RNG_GenerateBlock(&ssl->rng, ssl->arrays.preMasterSecret, SECRET_LEN);
+ if (ssl->specs.kea == rsa_kea) {
+ RsaKey key;
+ RNG_GenerateBlock(&ssl->rng, ssl->arrays.preMasterSecret,
+ SECRET_LEN);
ssl->arrays.preMasterSecret[0] = ssl->chVersion.major;
ssl->arrays.preMasterSecret[1] = ssl->chVersion.minor;
+ ssl->arrays.preMasterSz = SECRET_LEN;
InitRsaKey(&key);
if (ssl->buffers.peerKey.buffer)
- ret = RsaPublicKeyDecode(ssl->buffers.peerKey.buffer, &idx, &key,
+ ret = RsaPublicKeyDecode(ssl->buffers.peerKey.buffer, &idx,&key,
ssl->buffers.peerKey.length);
else
return NO_PEER_KEY;
@@ -2012,17 +2321,49 @@ int SetCipherList(SSL_CTX* ctx, const ch
if (ret == 0) {
ret = RsaPublicEncrypt(ssl->arrays.preMasterSecret, SECRET_LEN,
encSecret, sizeof(encSecret), &key, &ssl->rng);
- /* success */
if (ret > 0) {
- byte output[sizeof(encSecret) + MAX_MSG_EXTRA];
+ encSz = ret;
+ ret = 0; /* set success to 0 */
+ }
+ }
+ FreeRsaKey(&key);
+ } else { /* diffie-hellman */
+ #ifdef OPENSSL_EXTRA
+ buffer serverP = ssl->buffers.serverDH_P;
+ buffer serverG = ssl->buffers.serverDH_G;
+ buffer serverPub = ssl->buffers.serverDH_Pub;
+ byte priv[ENCRYPT_LEN];
+ word32 privSz;
+ DhKey key;
+
+ InitDhKey(&key);
+ ret = DhSetKey(&key, serverP.buffer, serverP.length,
+ serverG.buffer, serverG.length);
+ if (ret == 0)
+ /* for DH, encSecret is Yc, agree is pre-master */
+ ret = DhGenerateKeyPair(&key, &ssl->rng, priv, &privSz,
+ encSecret, &encSz);
+ if (ret == 0)
+ ret = DhAgree(&key, ssl->arrays.preMasterSecret,
+ &ssl->arrays.preMasterSz, priv, privSz,
+ serverPub.buffer, serverPub.length);
+ FreeDhKey(&key);
+ #else
+ return -1; /* not supported by build */
+ #endif
+ }
+
+ if (ret == 0) {
+ byte output[ENCRYPT_LEN + MAX_MSG_EXTRA];
byte alen[BYTE3_LEN];
int sendSz;
RecordLayerHeader rl;
HandShakeHeader hs;
- word32 tlsSz = ssl->options.tls ? 2 : 0;
+ word32 tlsSz = 0;
+
+ if (ssl->options.tls || ssl->specs.kea == diffie_hellman_kea)
+ tlsSz = 2;
- encSz = ret;
- ret = 0;
idx = 0;
/* handshake header */
@@ -2054,7 +2395,6 @@ int SetCipherList(SSL_CTX* ctx, const ch
ret = SendWrapper(ssl, output, sendSz, COPY);
}
- }
if (ret == 0 || ret == WANT_WRITE) {
int tmpRet = MakeMasterSecret(ssl);
@@ -2062,8 +2402,61 @@ int SetCipherList(SSL_CTX* ctx, const ch
ret = tmpRet; /* save WANT_WRITE unless more serious */
ssl->options.clientState = CLIENT_KEYEXCHANGE_COMPLETE;
}
+
+ return ret;
+ }
+
+ int SendCertificateVerify(SSL* ssl)
+ {
+ RecordLayerHeader rl;
+ HandShakeHeader hs;
+ int sendSz = 0, length, ret;
+ word32 idx = 0;
+ byte output[MAX_CERT_VERIFY_SZ];
+ RsaKey key;
+
+ BuildCertHashes(ssl, &ssl->certHashes);
+
+ /* TODO: when add DSS support check here */
+ InitRsaKey(&key);
+ ret = RsaPrivateKeyDecode(ssl->buffers.key.buffer, &idx, &key,
+ ssl->buffers.key.length);
+ if (ret == 0) {
+ byte verify[ENCRYPT_LEN + VERIFY_HEADER];
+
+ length = RsaEncryptSize(&key);
+ c16toa((word16)length, verify); /* prepend verify header */
+
+ ret = RsaSSL_Sign(ssl->certHashes.md5, sizeof(Hashes), verify +
+ VERIFY_HEADER, ENCRYPT_LEN, &key, &ssl->rng);
+
+ if (ret > 0) {
+ ret = 0; /* reset */
+ hs.type = certificate_verify;
+ c32to24(length + VERIFY_HEADER, hs.length);
+
+ rl.type = handshake;
+ rl.version = ssl->version;
+ c16toa((word16)length + VERIFY_HEADER + HANDSHAKE_HEADER_SZ,
+ rl.length);
+ idx = 0;
+ memcpy(output, &rl, RECORD_HEADER_SZ);
+ idx += RECORD_HEADER_SZ;
+ memcpy(output + idx, &hs, HANDSHAKE_HEADER_SZ);
+ idx += HANDSHAKE_HEADER_SZ;
+ memcpy(output + idx, verify, length + VERIFY_HEADER);
+ idx += length + VERIFY_HEADER;
+
+ sendSz = idx;
+ HashOutput(ssl, output, sendSz, 0);
+ }
+ }
+
FreeRsaKey(&key);
+ if (ret == 0)
+ return SendWrapper(ssl, output, sendSz, COPY);
+ else
return ret;
}
@@ -2200,7 +2593,7 @@ int SetCipherList(SSL_CTX* ctx, const ch
ssl->options.tls = 0;
ssl->options.tls1_1 = 0;
ssl->version.minor = 0;
- InitSuites(&ssl->suites, ssl->version);
+ InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH);
}
/* suite size */
@@ -2296,7 +2689,7 @@ int SetCipherList(SSL_CTX* ctx, const ch
ssl->options.tls = 0;
ssl->options.tls1_1 = 0;
ssl->version.minor = 0;
- InitSuites(&ssl->suites, ssl->version);
+ InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH);
}
memcpy(ssl->arrays.clientRandom, input + i, RAN_LEN);
i += RAN_LEN;
@@ -2357,6 +2750,49 @@ int SetCipherList(SSL_CTX* ctx, const ch
}
+ static int DoCertificateVerify(SSL* ssl, const byte* input, word32* inOutsz,
+ word32 totalSz)
+ {
+ word16 sz = 0;
+ word32 i = *inOutsz, idx = 0;
+ int ret;
+ RsaKey key;
+ byte tmp[VERIFY_HEADER];
+ byte sig[ENCRYPT_LEN];
+
+ if ( (i + VERIFY_HEADER) > totalSz)
+ return INCOMPLETE_DATA;
+
+ tmp[0] = input[i++];
+ tmp[1] = input[i++];
+
+ ato16(tmp, &sz);
+
+ if ( (i + sz) > totalSz)
+ return INCOMPLETE_DATA;
+
+ if (sz > sizeof(sig))
+ return BUFFER_ERROR;
+
+ memcpy(sig, &input[i], sz);
+ *inOutsz = i + sz;
+
+ /* TODO: when add DSS support check here */
+ InitRsaKey(&key);
+ ret = RsaPublicKeyDecode(ssl->buffers.peerKey.buffer, &idx, &key,
+ ssl->buffers.peerKey.length);
+ if (ret == 0) {
+ byte plain[ENCRYPT_LEN];
+
+ ret = VERIFY_CERT_ERROR; /* start in error state */
+ RsaSSL_Verify(sig, sz, plain, sizeof(plain), &key);
+ if (memcmp(plain,ssl->certHashes.md5,sizeof(ssl->certHashes)) == 0)
+ ret = 0;
+ }
+ return ret;
+ }
+
+
int SendServerHelloDone(SSL* ssl)
{
RecordLayerHeader rl;
@@ -2413,6 +2849,7 @@ int SetCipherList(SSL_CTX* ctx, const ch
if (ret == 0) {
length = RsaEncryptSize(&key);
+ ssl->arrays.preMasterSz = SECRET_LEN;
tmp = (byte*) malloc(length);
if (!tmp) return MEMORY_ERROR;
@@ -2439,8 +2876,11 @@ int SetCipherList(SSL_CTX* ctx, const ch
FreeRsaKey(&key);
free(tmp);
- if (ret == 0)
+ if (ret == 0) {
ssl->options.clientState = CLIENT_KEYEXCHANGE_COMPLETE;
+ if (ssl->options.verifyPeer)
+ BuildCertHashes(ssl, &ssl->certHashes);
+ }
return ret;
}
--- 1.1/extra/cyassl/src/keys.c 2006-11-02 03:22:31 +01:00
+++ 1.2/extra/cyassl/src/keys.c 2008-02-13 03:50:23 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -112,6 +112,38 @@ int SetCipherSpecs(SSL* ssl)
break;
#endif
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+ case TLS_DHE_RSA_WITH_AES_128_CBC_SHA :
+ ssl->specs.bulk_cipher_algorithm = aes;
+ ssl->specs.cipher_type = block;
+ ssl->specs.mac_algorithm = sha_mac;
+ ssl->specs.kea = diffie_hellman_kea;
+ ssl->specs.sig_algo = rsa_sa_algo;
+ ssl->specs.hash_size = SHA_DIGEST_SIZE;
+ ssl->specs.pad_size = PAD_SHA;
+ ssl->specs.key_size = AES_128_KEY_SIZE;
+ ssl->specs.block_size = AES_BLOCK_SIZE;
+ ssl->specs.iv_size = AES_IV_SIZE;
+
+ break;
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+ case TLS_DHE_RSA_WITH_AES_256_CBC_SHA :
+ ssl->specs.bulk_cipher_algorithm = aes;
+ ssl->specs.cipher_type = block;
+ ssl->specs.mac_algorithm = sha_mac;
+ ssl->specs.kea = diffie_hellman_kea;
+ ssl->specs.sig_algo = rsa_sa_algo;
+ ssl->specs.hash_size = SHA_DIGEST_SIZE;
+ ssl->specs.pad_size = PAD_SHA;
+ ssl->specs.key_size = AES_256_KEY_SIZE;
+ ssl->specs.block_size = AES_BLOCK_SIZE;
+ ssl->specs.iv_size = AES_IV_SIZE;
+
+ break;
+#endif
+
default:
return UNSUPPORTED_SUITE;
}
@@ -308,14 +340,14 @@ int DeriveKeys(SSL* ssl)
void CleanPreMaster(SSL* ssl)
{
- int i;
+ int i, sz = ssl->arrays.preMasterSz;
- for (i = 0; i < SECRET_LEN; i++)
+ for (i = 0; i < sz; i++)
ssl->arrays.preMasterSecret[i] = 0;
- RNG_GenerateBlock(&ssl->rng, ssl->arrays.preMasterSecret, SECRET_LEN);
+ RNG_GenerateBlock(&ssl->rng, ssl->arrays.preMasterSecret, sz);
- for (i = 0; i < SECRET_LEN; i++)
+ for (i = 0; i < sz; i++)
ssl->arrays.preMasterSecret[i] = 0;
}
@@ -325,10 +357,11 @@ void CleanPreMaster(SSL* ssl)
int MakeMasterSecret(SSL* ssl)
{
byte shaOutput[SHA_DIGEST_SIZE];
- byte md5Input[SECRET_LEN + SHA_DIGEST_SIZE];
- byte shaInput[PREFIX + SECRET_LEN + 2 * RAN_LEN];
+ byte md5Input[ENCRYPT_LEN + SHA_DIGEST_SIZE];
+ byte shaInput[PREFIX + ENCRYPT_LEN + 2 * RAN_LEN];
int i;
word32 idx;
+ word32 pmsSz = ssl->arrays.preMasterSz;
Md5 md5;
Sha sha;
@@ -340,7 +373,7 @@ int MakeMasterSecret(SSL* ssl)
InitMd5(&md5);
InitSha(&sha);
- memcpy(md5Input, ssl->arrays.preMasterSecret, SECRET_LEN);
+ memcpy(md5Input, ssl->arrays.preMasterSecret, pmsSz);
for (i = 0; i < MASTER_ROUNDS; ++i) {
byte prefix[PREFIX];
@@ -352,8 +385,8 @@ int MakeMasterSecret(SSL* ssl)
memcpy(shaInput, prefix, i + 1);
idx += i + 1;
- memcpy(shaInput + idx, ssl->arrays.preMasterSecret, SECRET_LEN);
- idx += SECRET_LEN;
+ memcpy(shaInput + idx, ssl->arrays.preMasterSecret, pmsSz);
+ idx += pmsSz;
memcpy(shaInput + idx, ssl->arrays.clientRandom, RAN_LEN);
idx += RAN_LEN;
memcpy(shaInput + idx, ssl->arrays.serverRandom, RAN_LEN);
@@ -361,7 +394,7 @@ int MakeMasterSecret(SSL* ssl)
ShaUpdate(&sha, shaInput, idx);
ShaFinal(&sha, shaOutput);
- idx = SECRET_LEN; /* preSz */
+ idx = pmsSz; /* preSz */
memcpy(md5Input + idx, shaOutput, SHA_DIGEST_SIZE);
idx += SHA_DIGEST_SIZE;
Md5Update(&md5, md5Input, idx);
--- 1.5/extra/cyassl/src/ssl.c 2007-05-08 23:02:11 +02:00
+++ 1.6/extra/cyassl/src/ssl.c 2008-02-14 02:45:15 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -244,6 +244,9 @@ long SSL_CTX_set_session_cache_mode(SSL_
if (mode == SSL_SESS_CACHE_OFF)
ctx->sessionCacheOff = 1;
+ if (mode == SSL_SESS_CACHE_NO_AUTO_CLEAR)
+ ctx->sessionCacheFlushOff = 1;
+
return SSL_SUCCESS;
}
@@ -312,20 +315,28 @@ int SSL_CTX_set_cipher_list(SSL_CTX* ctx
CYASSL_MSG("connect state: FIRST_REPLY_DONE");
case FIRST_REPLY_DONE :
- if (!ssl->options.resuming) {
- if ( (ssl->error = SendClientKeyExchange(ssl)) != 0) {
+ if (ssl->options.sendVerify)
+ if ( (ssl->error = SendCertificate(ssl)) != 0) {
CYASSL_ERROR(ssl->error);
return SSL_FATAL_ERROR;
}
+
+ ssl->options.connectState = FIRST_REPLY_FIRST;
+ CYASSL_MSG("connect state: FIRST_REPLY_FIRST");
+
+ case FIRST_REPLY_FIRST :
+ if (!ssl->options.resuming)
+ if ( (ssl->error = SendClientKeyExchange(ssl)) != 0) {
+ CYASSL_ERROR(ssl->error);
+ return SSL_FATAL_ERROR;
}
- else {
+
ssl->options.connectState = FIRST_REPLY_SECOND;
CYASSL_MSG("connect state: FIRST_REPLY_SECOND");
- }
case FIRST_REPLY_SECOND :
-
- if ( (ssl->error = SendChangeCipher(ssl)) != 0) {
+ if (ssl->options.sendVerify)
+ if ( (ssl->error = SendCertificateVerify(ssl)) != 0) {
CYASSL_ERROR(ssl->error);
return SSL_FATAL_ERROR;
}
@@ -333,7 +344,14 @@ int SSL_CTX_set_cipher_list(SSL_CTX* ctx
CYASSL_MSG("connect state: FIRST_REPLY_THIRD");
case FIRST_REPLY_THIRD :
+ if ( (ssl->error = SendChangeCipher(ssl)) != 0) {
+ CYASSL_ERROR(ssl->error);
+ return SSL_FATAL_ERROR;
+ }
+ ssl->options.connectState = FIRST_REPLY_FOURTH;
+ CYASSL_MSG("connect state: FIRST_REPLY_FOURTH");
+ case FIRST_REPLY_FOURTH :
if ( (ssl->error = SendFinished(ssl)) != 0) {
CYASSL_ERROR(ssl->error);
return SSL_FATAL_ERROR;
@@ -411,6 +429,12 @@ int SSL_CTX_set_cipher_list(SSL_CTX* ctx
return SSL_FATAL_ERROR;
}
+ if (ssl->options.verifyPeer)
+ if ( (ssl->error = SendCertificateRequest(ssl)) != 0) {
+ CYASSL_ERROR(ssl->error);
+ return SSL_FATAL_ERROR;
+ }
+
if ( (ssl->error = SendServerHelloDone(ssl)) != 0) {
CYASSL_ERROR(ssl->error);
return SSL_FATAL_ERROR;
@@ -487,11 +511,11 @@ static int AddCA(SSL_CTX* ctx, buffer de
else {
signer->publicKey = cert.publicKey;
signer->pubKeySize = cert.pubKeySize;
- signer->name = cert.subject;
+ signer->name = cert.subjectCN;
memcpy(signer->hash, cert.subjectHash, SHA_DIGEST_SIZE);
cert.publicKey = 0; /* don't free here */
- cert.subject = 0;
+ cert.subjectCN = 0;
signer->next = ctx->caList;
ctx->caList = signer; /* takes ownership */
@@ -605,7 +629,7 @@ static int ProcessFile(SSL_CTX* ctx, con
der.buffer = (byte*) malloc(sz);
if (!der.buffer) return MEMORY_ERROR;
der.length = sz;
- sz = fread(der.buffer, sz, 1, input);
+ sz = (word32)fread(der.buffer, sz, 1, input);
if (sz != 1) {
fclose(input);
free(der.buffer);
@@ -661,6 +685,31 @@ void FreeCyaSSL(void)
}
+void SSL_flush_sessions(SSL_CTX *ctx, long tm)
+{
+ SSL_SESSION* next;
+ SSL_SESSION* tmpSessions = 0; /* new flushed list */
+ word32 current = LowResTimer();
+
+ LockMutex(&mutex);
+
+ next = sessions;
+ while( (sessions = next) ) {
+ next = sessions->next;
+
+ if (current < (sessions->bornOn + sessions->timeout)) {
+ sessions->next = tmpSessions;
+ tmpSessions = sessions;
+ }
+ else
+ free(sessions);
+ }
+ sessions = tmpSessions;
+
+ UnLockMutex(&mutex);
+}
+
+
SSL_SESSION* GetSession(SSL* ssl)
{
SSL_SESSION* current, *ret = 0;
@@ -704,6 +753,7 @@ int SetSession(SSL* ssl, SSL_SESSION* se
void AddSession(SSL* ssl)
{
+ static int sessCount = 0;
SSL_SESSION* sess;
if (ssl->options.sessionCacheOff)
@@ -723,6 +773,13 @@ void AddSession(SSL* ssl)
sessions = sess;
UnLockMutex(&mutex);
+
+ sessCount++; /* don't worry about sync, rough estimate */
+ if (sessCount > SESSION_FLUSH_COUNT) {
+ if (!ssl->options.sessionCacheFlushOff)
+ SSL_flush_sessions(ssl->ctx, 0);
+ sessCount = 0;
+ }
}
}
@@ -734,7 +791,7 @@ int CyaSSL_check_domain_name(SSL* ssl, c
if (ssl->buffers.domainName.buffer)
free(ssl->buffers.domainName.buffer);
- ssl->buffers.domainName.length = strlen(dn) + 1;
+ ssl->buffers.domainName.length = (word32)strlen(dn) + 1;
ssl->buffers.domainName.buffer =
(byte*) malloc(ssl->buffers.domainName.length);
@@ -850,9 +907,9 @@ int CyaSSL_check_domain_name(SSL* ssl, c
int EVP_DigestUpdate(EVP_MD_CTX* ctx, const void* data, size_t sz)
{
if (ctx->macType == MD5)
- MD5_Update((MD5_CTX*)&ctx->hash, data, sz);
+ MD5_Update((MD5_CTX*)&ctx->hash, data, (unsigned long)sz);
else if (ctx->macType == SHA)
- SHA_Update((SHA_CTX*)&ctx->hash, data, sz);
+ SHA_Update((SHA_CTX*)&ctx->hash, data, (unsigned long)sz);
else
return -1;
@@ -1094,6 +1151,45 @@ int CyaSSL_check_domain_name(SSL* ssl, c
return 0;
}
+
+ X509* SSL_get_peer_certificate(SSL* ssl)
+ {
+ return &ssl->peerCert;
+ }
+
+
+ X509_NAME* X509_get_issuer_name(X509* cert)
+ {
+ return &cert->issuer;
+ }
+
+
+ X509_NAME* X509_get_subject_name(X509* cert)
+ {
+ return &cert->subject;
+ }
+
+ /* copy name into buffer, at most sz bytes, if buffer is null will
+ malloc buffer, call responsible for freeing */
+ char* X509_NAME_oneline(X509_NAME* name, char* buffer, int sz)
+ {
+ int copySz = min(sz, name->sz);
+ if (!name->sz) return buffer;
+
+ if (!buffer) {
+ buffer = (char*)malloc(name->sz);
+ if (!buffer) return buffer;
+ copySz = name->sz;
+ }
+
+ if (copySz == 0)
+ return buffer;
+
+ memcpy(buffer, name->name, copySz - 1);
+ buffer[copySz - 1] = 0;
+
+ return buffer;
+ }
#endif /* OPENSSL_EXTRA */
--- 1.1/extra/cyassl/src/tls.c 2006-12-07 22:51:51 +01:00
+++ 1.2/extra/cyassl/src/tls.c 2008-02-13 03:50:23 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -189,7 +189,7 @@ int MakeTlsMasterSecret(SSL* ssl)
memcpy(&seed[RAN_LEN], ssl->arrays.serverRandom, RAN_LEN);
PRF(ssl->arrays.masterSecret, SECRET_LEN,
- ssl->arrays.preMasterSecret, SECRET_LEN,
+ ssl->arrays.preMasterSecret, ssl->arrays.preMasterSz,
master_label, MASTER_LABEL_SZ,
seed, SEED_LEN);
--- 1.1/extra/cyassl/testsuite/testsuite.c 2006-10-25 23:17:21 +02:00
+++ 1.2/extra/cyassl/testsuite/testsuite.c 2007-10-10 00:30:57 +02:00
@@ -124,7 +124,7 @@ void wait_tcp_ready(func_args* args)
void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
{
#ifndef _POSIX_THREADS
- *thread = _beginthreadex(0, 0, fun, args, 0, 0);
+ *thread = (HANDLE)_beginthreadex(0, 0, fun, args, 0, 0);
#else
pthread_create(thread, 0, fun, args);
#endif
@@ -134,9 +134,9 @@ void start_thread(THREAD_FUNC fun, func_
void join_thread(THREAD_TYPE thread)
{
#ifndef _POSIX_THREADS
- int res = WaitForSingleObject((HANDLE)thread, INFINITE);
+ int res = WaitForSingleObject(thread, INFINITE);
assert(res == WAIT_OBJECT_0);
- res = CloseHandle((HANDLE)thread);
+ res = CloseHandle(thread);
assert(res);
#else
pthread_join(thread, 0);
@@ -176,7 +176,7 @@ void file_test(char* file, byte* check)
printf("Can't open %s\n", file);
return;
}
- while( ( i = fread(buf, 1, sizeof(buf), f )) > 0 )
+ while( ( i = (int)fread(buf, 1, sizeof(buf), f )) > 0 )
Md5Update(&md5, buf, i);
Md5Final(&md5, md5sum);
--- New file ---
+++ extra/cyassl/ctaocrypt/benchmark/benchmark.sln 07/10/10 00:30:57

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark.vcproj", "{615AEC46-5595-4DEA-9490-DBD5DE0F8772}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Debug|Win32.ActiveCfg = Debug|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Debug|Win32.Build.0 = Debug|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Release|Win32.ActiveCfg = Release|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/ctaocrypt/benchmark/benchmark.vcproj 07/10/10 00:30:57
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="benchmark"
ProjectGUID="{615AEC46-5595-4DEA-9490-DBD5DE0F8772}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\benchmark.c"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/cyassl/ctaocrypt/ctaocrypt.sln 07/10/10 00:30:56

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ctaocrypt", "ctaocrypt.vcproj", "{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcproj", "{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}"
ProjectSection(ProjectDependencies) = postProject
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62} = {BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark\benchmark.vcproj", "{615AEC46-5595-4DEA-9490-DBD5DE0F8772}"
ProjectSection(ProjectDependencies) = postProject
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62} = {BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}.Debug|Win32.ActiveCfg = Debug|Win32
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}.Debug|Win32.Build.0 = Debug|Win32
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}.Release|Win32.ActiveCfg = Release|Win32
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}.Release|Win32.Build.0 = Release|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Debug|Win32.ActiveCfg = Debug|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Debug|Win32.Build.0 = Debug|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Release|Win32.ActiveCfg = Release|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Release|Win32.Build.0 = Release|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Debug|Win32.ActiveCfg = Debug|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Debug|Win32.Build.0 = Debug|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Release|Win32.ActiveCfg = Release|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/ctaocrypt/test/test.sln 07/10/10 00:30:57

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test.vcproj", "{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Debug|Win32.ActiveCfg = Debug|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Debug|Win32.Build.0 = Debug|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Release|Win32.ActiveCfg = Release|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/ctaocrypt/test/test.vcproj 07/10/10 00:30:57
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="test"
ProjectGUID="{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\test.c"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/cyassl/cyassl.sln 07/10/10 00:30:56

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cyassl", "cyassl.vcproj", "{1D7E05A7-C120-40C4-81AB-33E3B819CFE8}"
ProjectSection(ProjectDependencies) = postProject
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62} = {BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ctaocrypt", "ctaocrypt\ctaocrypt.vcproj", "{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "ctaocrypt\benchmark\benchmark.vcproj", "{615AEC46-5595-4DEA-9490-DBD5DE0F8772}"
ProjectSection(ProjectDependencies) = postProject
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62} = {BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "ctaocrypt\test\test.vcproj", "{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}"
ProjectSection(ProjectDependencies) = postProject
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62} = {BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite\testsuite.vcproj", "{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}"
ProjectSection(ProjectDependencies) = postProject
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8} = {1D7E05A7-C120-40C4-81AB-33E3B819CFE8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "examples\client\client.vcproj", "{F117DD21-2672-4001-9FF8-8DBEBBFCA380}"
ProjectSection(ProjectDependencies) = postProject
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8} = {1D7E05A7-C120-40C4-81AB-33E3B819CFE8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "examples\server\server.vcproj", "{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}"
ProjectSection(ProjectDependencies) = postProject
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8} = {1D7E05A7-C120-40C4-81AB-33E3B819CFE8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "examples\echoclient\echoclient.vcproj", "{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}"
ProjectSection(ProjectDependencies) = postProject
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8} = {1D7E05A7-C120-40C4-81AB-33E3B819CFE8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "examples\echoserver\echoserver.vcproj", "{4F3F3EF1-BB95-466A-87B2-A91C059D0197}"
ProjectSection(ProjectDependencies) = postProject
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8} = {1D7E05A7-C120-40C4-81AB-33E3B819CFE8}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8}.Debug|Win32.ActiveCfg = Debug|Win32
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8}.Debug|Win32.Build.0 = Debug|Win32
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8}.Release|Win32.ActiveCfg = Release|Win32
{1D7E05A7-C120-40C4-81AB-33E3B819CFE8}.Release|Win32.Build.0 = Release|Win32
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}.Debug|Win32.ActiveCfg = Debug|Win32
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}.Debug|Win32.Build.0 = Debug|Win32
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}.Release|Win32.ActiveCfg = Release|Win32
{BF0EA0C1-3F4C-4767-B79E-7B2A391F7D62}.Release|Win32.Build.0 = Release|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Debug|Win32.ActiveCfg = Debug|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Debug|Win32.Build.0 = Debug|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Release|Win32.ActiveCfg = Release|Win32
{615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Release|Win32.Build.0 = Release|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Debug|Win32.ActiveCfg = Debug|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Debug|Win32.Build.0 = Debug|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Release|Win32.ActiveCfg = Release|Win32
{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Release|Win32.Build.0 = Release|Win32
{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Debug|Win32.ActiveCfg = Debug|Win32
{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Debug|Win32.Build.0 = Debug|Win32
{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Release|Win32.ActiveCfg = Release|Win32
{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Release|Win32.Build.0 = Release|Win32
{F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Debug|Win32.ActiveCfg = Debug|Win32
{F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Debug|Win32.Build.0 = Debug|Win32
{F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Release|Win32.ActiveCfg = Release|Win32
{F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Release|Win32.Build.0 = Release|Win32
{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Debug|Win32.ActiveCfg = Debug|Win32
{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Debug|Win32.Build.0 = Debug|Win32
{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Release|Win32.ActiveCfg = Release|Win32
{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Release|Win32.Build.0 = Release|Win32
{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Debug|Win32.ActiveCfg = Debug|Win32
{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Debug|Win32.Build.0 = Debug|Win32
{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Release|Win32.ActiveCfg = Release|Win32
{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Release|Win32.Build.0 = Release|Win32
{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Debug|Win32.ActiveCfg = Debug|Win32
{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Debug|Win32.Build.0 = Debug|Win32
{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Release|Win32.ActiveCfg = Release|Win32
{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/examples/client/client.sln 07/10/10 00:30:57

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client.vcproj", "{F117DD21-2672-4001-9FF8-8DBEBBFCA380}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Debug|Win32.ActiveCfg = Debug|Win32
{F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Debug|Win32.Build.0 = Debug|Win32
{F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Release|Win32.ActiveCfg = Release|Win32
{F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/examples/client/client.vcproj 07/10/10 00:30:57
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="client"
ProjectGUID="{F117DD21-2672-4001-9FF8-8DBEBBFCA380}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../include;../;../../ctaocrypt/include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include;../;../../ctaocrypt/include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\client.c"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/cyassl/examples/echoclient/echoclient.sln 07/10/10 00:30:57

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "echoclient.vcproj", "{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Debug|Win32.ActiveCfg = Debug|Win32
{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Debug|Win32.Build.0 = Debug|Win32
{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Release|Win32.ActiveCfg = Release|Win32
{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/examples/echoclient/echoclient.vcproj 07/10/10 00:30:57
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="echoclient"
ProjectGUID="{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../include;../;../../ctaocrypt/include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include;../;../../ctaocrypt/include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\echoclient.c"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/cyassl/examples/echoserver/echoserver.sln 07/10/10 00:30:57

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "echoserver.vcproj", "{4F3F3EF1-BB95-466A-87B2-A91C059D0197}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Debug|Win32.ActiveCfg = Debug|Win32
{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Debug|Win32.Build.0 = Debug|Win32
{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Release|Win32.ActiveCfg = Release|Win32
{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/examples/echoserver/echoserver.vcproj 07/10/10 00:30:57
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="echoserver"
ProjectGUID="{4F3F3EF1-BB95-466A-87B2-A91C059D0197}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../include;../;../../ctaocrypt/include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include;../;../../ctaocrypt/include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\echoserver.c"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/cyassl/examples/server/server.sln 07/10/10 00:30:57

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "server.vcproj", "{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Debug|Win32.ActiveCfg = Debug|Win32
{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Debug|Win32.Build.0 = Debug|Win32
{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Release|Win32.ActiveCfg = Release|Win32
{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/examples/server/server.vcproj 07/10/10 00:30:57
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="server"
ProjectGUID="{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../include;../;../../ctaocrypt/include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include;../;../../ctaocrypt/include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\server.c"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/cyassl/include/openssl/engine.h 07/10/30 00:25:24
/* engine.h for libcurl */
#undef HAVE_OPENSSL_ENGINE_H
--- New file ---
+++ extra/cyassl/include/openssl/md4.h 07/10/30 00:25:24
/* md4.h for libcurl */
--- New file ---
+++ extra/cyassl/include/openssl/ocsp.h 07/10/30 00:25:24
/* ocsp.h for libcurl */
--- New file ---
+++ extra/cyassl/testsuite/testsuite.sln 07/10/10 00:30:57

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite.vcproj", "{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Debug|Win32.ActiveCfg = Debug|Win32
{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Debug|Win32.Build.0 = Debug|Win32
{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Release|Win32.ActiveCfg = Release|Win32
{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/cyassl/testsuite/testsuite.vcproj 07/10/10 00:30:57
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="testsuite"
ProjectGUID="{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../include;../ctaocrypt/include"
PreprocessorDefinitions="NO_MAIN_DRIVER"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../include;../ctaocrypt/include"
PreprocessorDefinitions="NO_MAIN_DRIVER"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\examples\test.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\examples\client\client.c"
>
</File>
<File
RelativePath="..\examples\echoclient\echoclient.c"
>
</File>
<File
RelativePath="..\examples\echoserver\echoserver.c"
>
</File>
<File
RelativePath="..\examples\server\server.c"
>
</File>
<File
RelativePath="..\ctaocrypt\test\test.c"
>
</File>
<File
RelativePath=".\testsuite.c"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/yassl/examples/client/client.sln 07/10/05 01:29:26

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client.vcproj", "{BBA6DED9-5CC7-475F-BB5B-597DF6510986}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BBA6DED9-5CC7-475F-BB5B-597DF6510986}.Debug|Win32.ActiveCfg = Debug|Win32
{BBA6DED9-5CC7-475F-BB5B-597DF6510986}.Debug|Win32.Build.0 = Debug|Win32
{BBA6DED9-5CC7-475F-BB5B-597DF6510986}.Release|Win32.ActiveCfg = Release|Win32
{BBA6DED9-5CC7-475F-BB5B-597DF6510986}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/yassl/examples/client/client.vcproj 07/10/05 01:29:26
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="client"
ProjectGUID="{BBA6DED9-5CC7-475F-BB5B-597DF6510986}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\include;..\..\taocrypt\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\include;..\..\taocrypt\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\client.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/yassl/examples/echoclient/echoclient.sln 07/10/05 01:29:26

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "echoclient.vcproj", "{1492CC87-392E-44E8-8EDE-C07391A971EF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1492CC87-392E-44E8-8EDE-C07391A971EF}.Debug|Win32.ActiveCfg = Debug|Win32
{1492CC87-392E-44E8-8EDE-C07391A971EF}.Debug|Win32.Build.0 = Debug|Win32
{1492CC87-392E-44E8-8EDE-C07391A971EF}.Release|Win32.ActiveCfg = Release|Win32
{1492CC87-392E-44E8-8EDE-C07391A971EF}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/yassl/examples/echoclient/echoclient.vcproj 07/10/05 01:29:26
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="echoclient"
ProjectGUID="{1492CC87-392E-44E8-8EDE-C07391A971EF}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\include;..\..\taocrypt\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\include;..\..\taocrypt\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\echoclient.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/yassl/examples/echoserver/echoserver.sln 07/10/05 01:29:26

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "echoserver.vcproj", "{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}.Debug|Win32.ActiveCfg = Debug|Win32
{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}.Debug|Win32.Build.0 = Debug|Win32
{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}.Release|Win32.ActiveCfg = Release|Win32
{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/yassl/examples/echoserver/echoserver.vcproj 07/10/05 01:29:26
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="echoserver"
ProjectGUID="{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\include;..\..\taocrypt\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\include;..\..\taocrypt\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\echoserver.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/yassl/examples/server/server.sln 07/10/05 01:29:26

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "server.vcproj", "{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}.Debug|Win32.ActiveCfg = Debug|Win32
{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}.Debug|Win32.Build.0 = Debug|Win32
{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}.Release|Win32.ActiveCfg = Release|Win32
{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/yassl/examples/server/server.vcproj 07/10/05 01:29:26
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="server"
ProjectGUID="{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\include;..\..\taocrypt\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\include;..\..\taocrypt\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\server.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/yassl/include/openssl/des_old.h 07/08/21 00:31:31
/* des_old.h for openvn */
--- New file ---
+++ extra/yassl/include/openssl/evp.h 07/08/21 00:31:31
/* evp.h for openSSL */
#ifndef SSLEAY_NUMBER_DEFINED
#define SSLEAY_NUMBER_DEFINED
/* for OpenVPN */
#define SSLEAY_VERSION_NUMBER 0x0090700f
#endif /* SSLEAY_NUMBER_DEFINED */
--- New file ---
+++ extra/yassl/include/openssl/hmac.h 07/08/21 00:31:31
/* hmac.h for openvpn */
--- New file ---
+++ extra/yassl/include/openssl/objects.h 07/08/21 00:31:31
/* objects.h for openvpn */
--- New file ---
+++ extra/yassl/include/openssl/sha.h 07/08/21 00:31:31
/* sha.h for openvpn */
--- New file ---
+++ extra/yassl/taocrypt/benchmark/benchmark.sln 07/10/05 01:29:27

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark.vcproj", "{A56D2AE7-183E-4B04-A814-FD62ACBE0588}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Debug|Win32.ActiveCfg = Debug|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Debug|Win32.Build.0 = Debug|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Release|Win32.ActiveCfg = Release|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/yassl/taocrypt/benchmark/benchmark.vcproj 07/10/05 01:29:27
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="benchmark"
ProjectGUID="{A56D2AE7-183E-4B04-A814-FD62ACBE0588}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\include;..\mySTL"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\include;..\mySTL"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\benchmark.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/yassl/taocrypt/taocrypt.sln 07/10/05 01:29:27

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "taocrypt", "taocrypt.vcproj", "{EEE1B039-5105-4576-9CF6-8DA69985B7F9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcproj", "{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}"
ProjectSection(ProjectDependencies) = postProject
{EEE1B039-5105-4576-9CF6-8DA69985B7F9} = {EEE1B039-5105-4576-9CF6-8DA69985B7F9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark\benchmark.vcproj", "{A56D2AE7-183E-4B04-A814-FD62ACBE0588}"
ProjectSection(ProjectDependencies) = postProject
{EEE1B039-5105-4576-9CF6-8DA69985B7F9} = {EEE1B039-5105-4576-9CF6-8DA69985B7F9}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EEE1B039-5105-4576-9CF6-8DA69985B7F9}.Debug|Win32.ActiveCfg = Debug|Win32
{EEE1B039-5105-4576-9CF6-8DA69985B7F9}.Debug|Win32.Build.0 = Debug|Win32
{EEE1B039-5105-4576-9CF6-8DA69985B7F9}.Release|Win32.ActiveCfg = Release|Win32
{EEE1B039-5105-4576-9CF6-8DA69985B7F9}.Release|Win32.Build.0 = Release|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Debug|Win32.ActiveCfg = Debug|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Debug|Win32.Build.0 = Debug|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Release|Win32.ActiveCfg = Release|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Release|Win32.Build.0 = Release|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Debug|Win32.ActiveCfg = Debug|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Debug|Win32.Build.0 = Debug|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Release|Win32.ActiveCfg = Release|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/yassl/taocrypt/test/test.sln 07/10/05 01:29:27

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test.vcproj", "{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Debug|Win32.ActiveCfg = Debug|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Debug|Win32.Build.0 = Debug|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Release|Win32.ActiveCfg = Release|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/yassl/taocrypt/test/test.vcproj 07/10/05 01:29:27
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="test"
ProjectGUID="{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\mySTL;..\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\mySTL;..\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\test.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/yassl/testsuite/testsuite.sln 07/10/05 01:29:28

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite.vcproj", "{6424F190-E9FF-41E8-A27F-3A2673548041}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6424F190-E9FF-41E8-A27F-3A2673548041}.Debug|Win32.ActiveCfg = Debug|Win32
{6424F190-E9FF-41E8-A27F-3A2673548041}.Debug|Win32.Build.0 = Debug|Win32
{6424F190-E9FF-41E8-A27F-3A2673548041}.Release|Win32.ActiveCfg = Release|Win32
{6424F190-E9FF-41E8-A27F-3A2673548041}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- New file ---
+++ extra/yassl/testsuite/testsuite.vcproj 07/10/05 01:29:28
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="testsuite"
ProjectGUID="{6424F190-E9FF-41E8-A27F-3A2673548041}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\include;..\taocrypt\include;..\taocrypt\mySTL"
PreprocessorDefinitions="NO_MAIN_DRIVER"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\include;..\taocrypt\include;..\taocrypt\mySTL"
PreprocessorDefinitions="NO_MAIN_DRIVER"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\test.hpp"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\examples\client\client.cpp"
>
</File>
<File
RelativePath="..\examples\echoclient\echoclient.cpp"
>
</File>
<File
RelativePath="..\examples\echoserver\echoserver.cpp"
>
</File>
<File
RelativePath="..\examples\server\server.cpp"
>
</File>
<File
RelativePath="..\taocrypt\test\test.cpp"
>
</File>
<File
RelativePath=".\testsuite.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
--- New file ---
+++ extra/yassl/yassl.sln 07/10/05 01:29:26

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yassl", "yassl.vcproj", "{E8A6383F-B3D9-497B-A6D8-A8C324356968}"
ProjectSection(ProjectDependencies) = postProject
{EEE1B039-5105-4576-9CF6-8DA69985B7F9} = {EEE1B039-5105-4576-9CF6-8DA69985B7F9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "taocrypt", "taocrypt\taocrypt.vcproj", "{EEE1B039-5105-4576-9CF6-8DA69985B7F9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "taocrypt\test\test.vcproj", "{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}"
ProjectSection(ProjectDependencies) = postProject
{EEE1B039-5105-4576-9CF6-8DA69985B7F9} = {EEE1B039-5105-4576-9CF6-8DA69985B7F9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "taocrypt\benchmark\benchmark.vcproj", "{A56D2AE7-183E-4B04-A814-FD62ACBE0588}"
ProjectSection(ProjectDependencies) = postProject
{EEE1B039-5105-4576-9CF6-8DA69985B7F9} = {EEE1B039-5105-4576-9CF6-8DA69985B7F9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "examples\client\client.vcproj", "{BBA6DED9-5CC7-475F-BB5B-597DF6510986}"
ProjectSection(ProjectDependencies) = postProject
{E8A6383F-B3D9-497B-A6D8-A8C324356968} = {E8A6383F-B3D9-497B-A6D8-A8C324356968}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "examples\server\server.vcproj", "{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}"
ProjectSection(ProjectDependencies) = postProject
{E8A6383F-B3D9-497B-A6D8-A8C324356968} = {E8A6383F-B3D9-497B-A6D8-A8C324356968}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "examples\echoclient\echoclient.vcproj", "{1492CC87-392E-44E8-8EDE-C07391A971EF}"
ProjectSection(ProjectDependencies) = postProject
{E8A6383F-B3D9-497B-A6D8-A8C324356968} = {E8A6383F-B3D9-497B-A6D8-A8C324356968}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "examples\echoserver\echoserver.vcproj", "{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}"
ProjectSection(ProjectDependencies) = postProject
{E8A6383F-B3D9-497B-A6D8-A8C324356968} = {E8A6383F-B3D9-497B-A6D8-A8C324356968}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite\testsuite.vcproj", "{6424F190-E9FF-41E8-A27F-3A2673548041}"
ProjectSection(ProjectDependencies) = postProject
{E8A6383F-B3D9-497B-A6D8-A8C324356968} = {E8A6383F-B3D9-497B-A6D8-A8C324356968}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E8A6383F-B3D9-497B-A6D8-A8C324356968}.Debug|Win32.ActiveCfg = Debug|Win32
{E8A6383F-B3D9-497B-A6D8-A8C324356968}.Debug|Win32.Build.0 = Debug|Win32
{E8A6383F-B3D9-497B-A6D8-A8C324356968}.Release|Win32.ActiveCfg = Release|Win32
{E8A6383F-B3D9-497B-A6D8-A8C324356968}.Release|Win32.Build.0 = Release|Win32
{EEE1B039-5105-4576-9CF6-8DA69985B7F9}.Debug|Win32.ActiveCfg = Debug|Win32
{EEE1B039-5105-4576-9CF6-8DA69985B7F9}.Debug|Win32.Build.0 = Debug|Win32
{EEE1B039-5105-4576-9CF6-8DA69985B7F9}.Release|Win32.ActiveCfg = Release|Win32
{EEE1B039-5105-4576-9CF6-8DA69985B7F9}.Release|Win32.Build.0 = Release|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Debug|Win32.ActiveCfg = Debug|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Debug|Win32.Build.0 = Debug|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Release|Win32.ActiveCfg = Release|Win32
{E723AAC6-7B3B-4F45-A33E-275E9DAE132A}.Release|Win32.Build.0 = Release|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Debug|Win32.ActiveCfg = Debug|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Debug|Win32.Build.0 = Debug|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Release|Win32.ActiveCfg = Release|Win32
{A56D2AE7-183E-4B04-A814-FD62ACBE0588}.Release|Win32.Build.0 = Release|Win32
{BBA6DED9-5CC7-475F-BB5B-597DF6510986}.Debug|Win32.ActiveCfg = Debug|Win32
{BBA6DED9-5CC7-475F-BB5B-597DF6510986}.Debug|Win32.Build.0 = Debug|Win32
{BBA6DED9-5CC7-475F-BB5B-597DF6510986}.Release|Win32.ActiveCfg = Release|Win32
{BBA6DED9-5CC7-475F-BB5B-597DF6510986}.Release|Win32.Build.0 = Release|Win32
{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}.Debug|Win32.ActiveCfg = Debug|Win32
{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}.Debug|Win32.Build.0 = Debug|Win32
{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}.Release|Win32.ActiveCfg = Release|Win32
{84437FAF-3D3E-4E69-AE50-2BC6A2A50265}.Release|Win32.Build.0 = Release|Win32
{1492CC87-392E-44E8-8EDE-C07391A971EF}.Debug|Win32.ActiveCfg = Debug|Win32
{1492CC87-392E-44E8-8EDE-C07391A971EF}.Debug|Win32.Build.0 = Debug|Win32
{1492CC87-392E-44E8-8EDE-C07391A971EF}.Release|Win32.ActiveCfg = Release|Win32
{1492CC87-392E-44E8-8EDE-C07391A971EF}.Release|Win32.Build.0 = Release|Win32
{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}.Debug|Win32.ActiveCfg = Debug|Win32
{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}.Debug|Win32.Build.0 = Debug|Win32
{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}.Release|Win32.ActiveCfg = Release|Win32
{89056781-C3B2-449B-9E1C-CCA4B6FED5EC}.Release|Win32.Build.0 = Release|Win32
{6424F190-E9FF-41E8-A27F-3A2673548041}.Debug|Win32.ActiveCfg = Debug|Win32
{6424F190-E9FF-41E8-A27F-3A2673548041}.Debug|Win32.Build.0 = Debug|Win32
{6424F190-E9FF-41E8-A27F-3A2673548041}.Release|Win32.ActiveCfg = Release|Win32
{6424F190-E9FF-41E8-A27F-3A2673548041}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
--- 1.5/extra/yassl/examples/client/client.cpp 2006-10-19 01:36:53 +02:00
+++ 1.6/extra/yassl/examples/client/client.cpp 2007-10-03 22:36:45 +02:00
@@ -18,8 +18,8 @@ void ClientError(SSL_CTX* ctx, SSL* ssl,
void NonBlockingSSL_Connect(SSL* ssl, SSL_CTX* ctx, SOCKET_T& sockfd)
{
int ret = SSL_connect(ssl);
- while (ret =! SSL_SUCCESS && SSL_get_error(ssl, 0) ==
- SSL_ERROR_WANT_READ) {
+ while (ret =! SSL_SUCCESS && (SSL_get_error(ssl, 0) ==
+ SSL_ERROR_WANT_READ)) {
printf("... client would block\n");
#ifdef _WIN32
Sleep(1000);
--- 1.4/extra/yassl/examples/echoclient/echoclient.cpp 2006-10-17 02:33:14 +02:00
+++ 1.5/extra/yassl/examples/echoclient/echoclient.cpp 2007-10-05 01:29:26 +02:00
@@ -59,7 +59,7 @@ void echoclient_test(void* args)
while (fgets(send, sizeof(send), fin)) {
- int sendSz = strlen(send) + 1;
+ int sendSz = (int)strlen(send) + 1;
if (SSL_write(ssl, send, sendSz) != sendSz)
EchoClientError(ctx, ssl, sockfd, "SSL_write failed");
--- 1.6/extra/yassl/examples/echoserver/echoserver.cpp 2006-10-19 01:36:53 +02:00
+++ 1.7/extra/yassl/examples/echoserver/echoserver.cpp 2007-10-03 22:36:45 +02:00
@@ -75,7 +75,7 @@ THREAD_RETURN YASSL_API echoserver_test(
#endif
while (!shutdown) {
- sockaddr_in client;
+ SOCKADDR_IN_T client;
socklen_t client_len = sizeof(client);
SOCKET_T clientfd = accept(sockfd, (sockaddr*)&client,
(ACCEPT_THIRD_T)&client_len);
--- 1.5/extra/yassl/examples/server/server.cpp 2006-11-02 19:10:43 +01:00
+++ 1.6/extra/yassl/examples/server/server.cpp 2007-10-03 22:36:45 +02:00
@@ -17,8 +17,8 @@ void ServerError(SSL_CTX* ctx, SSL* ssl,
void NonBlockingSSL_Accept(SSL* ssl, SSL_CTX* ctx, SOCKET_T& clientfd)
{
int ret = SSL_accept(ssl);
- while (ret != SSL_SUCCESS && SSL_get_error(ssl, 0) ==
- SSL_ERROR_WANT_READ) {
+ while (ret != SSL_SUCCESS && (SSL_get_error(ssl, 0) ==
+ SSL_ERROR_WANT_READ)) {
printf("... server would block\n");
#ifdef _WIN32
Sleep(1000);
--- 1.2/extra/yassl/include/yassl.hpp 2006-03-29 01:56:41 +02:00
+++ 1.3/extra/yassl/include/yassl.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/src/yassl.cpp 2006-08-29 22:06:44 +02:00
+++ 1.5/extra/yassl/src/yassl.cpp 2007-03-15 03:15:10 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/taocrypt/benchmark/benchmark.cpp 2006-04-11 22:34:30 +02:00
+++ 1.5/extra/yassl/taocrypt/benchmark/benchmark.cpp 2007-10-05 01:29:27 +02:00
@@ -272,7 +272,7 @@ void bench_rsa()
byte message[] = "Everyone gets Friday off.";
byte cipher[128]; // for 1024 bit
byte plain[128]; // for 1024 bit
- const int len = strlen((char*)message);
+ const int len = (word32)strlen((char*)message);
int i;
double start = current_time();
--- 1.5/extra/yassl/taocrypt/include/blowfish.hpp 2007-01-25 19:34:38 +01:00
+++ 1.6/extra/yassl/taocrypt/include/blowfish.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/taocrypt/include/kernelc.hpp 2006-07-12 21:15:03 +02:00
+++ 1.4/extra/yassl/taocrypt/include/kernelc.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/taocrypt/include/md4.hpp 2006-07-12 21:15:03 +02:00
+++ 1.4/extra/yassl/taocrypt/include/md4.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/taocrypt/include/pwdbased.hpp 2006-08-16 01:36:33 +02:00
+++ 1.5/extra/yassl/taocrypt/include/pwdbased.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.5/extra/yassl/taocrypt/include/twofish.hpp 2006-10-05 05:18:12 +02:00
+++ 1.6/extra/yassl/taocrypt/include/twofish.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/taocrypt/src/bftables.cpp 2006-07-12 21:15:03 +02:00
+++ 1.4/extra/yassl/taocrypt/src/bftables.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.5/extra/yassl/taocrypt/src/blowfish.cpp 2006-10-05 05:18:12 +02:00
+++ 1.6/extra/yassl/taocrypt/src/blowfish.cpp 2007-10-03 00:30:00 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -164,16 +164,21 @@ void Blowfish::crypt_block(const word32
word32 left = in[0];
word32 right = in[1];
+ const word32 *const s = sbox_;
const word32* p = pbox_;
- word32 tmp;
left ^= p[0];
- BF_ROUNDS
-
-#if ROUNDS == 20
- BF_EXTRA_ROUNDS
-#endif
+ // roll back up and use s and p index instead of just p
+ for (unsigned i = 0; i < ROUNDS / 2; i++) {
+ right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])
+ ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])
+ ^ p[2*i+1];
+
+ left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])
+ ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])
+ ^ p[2*i+2];
+ }
right ^= p[ROUNDS + 1];
@@ -187,17 +192,23 @@ typedef BlockGetAndPut<word32, BigEndian
void Blowfish::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out)
const
{
- word32 tmp, left, right;
+ word32 left, right;
+ const word32 *const s = sbox_;
const word32* p = pbox_;
gpBlock::Get(in)(left)(right);
left ^= p[0];
- BF_ROUNDS
-
-#if ROUNDS == 20
- BF_EXTRA_ROUNDS
-#endif
+ // roll back up and use s and p index instead of just p
+ for (unsigned i = 0; i < ROUNDS / 2; i++) {
+ right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])
+ ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])
+ ^ p[2*i+1];
+
+ left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])
+ ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])
+ ^ p[2*i+2];
+ }
right ^= p[ROUNDS + 1];
--- 1.5/extra/yassl/taocrypt/src/md4.cpp 2006-10-05 05:18:12 +02:00
+++ 1.6/extra/yassl/taocrypt/src/md4.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/taocrypt/src/tftables.cpp 2006-07-12 21:15:04 +02:00
+++ 1.4/extra/yassl/taocrypt/src/tftables.cpp 2007-03-15 03:15:17 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/taocrypt/src/twofish.cpp 2006-10-05 05:18:12 +02:00
+++ 1.5/extra/yassl/taocrypt/src/twofish.cpp 2007-03-15 03:15:17 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.8/extra/yassl/taocrypt/test/test.cpp 2007-03-23 16:09:15 +01:00
+++ 1.9/extra/yassl/taocrypt/test/test.cpp 2007-10-16 03:25:34 +02:00
@@ -87,11 +87,12 @@ using TaoCrypt::GetPKCS_Cert;
struct testVector {
byte* input_;
byte* output_;
- size_t inLen_;
- size_t outLen_;
+ word32 inLen_;
+ word32 outLen_;
testVector(const char* in, const char* out) : input_((byte*)in),
- output_((byte*)out), inLen_(strlen(in)), outLen_(strlen(out)) {}
+ output_((byte*)out), inLen_((word32)strlen(in)),
+ outLen_((word32)strlen(out)) {}
};
int sha_test();
@@ -122,7 +123,7 @@ TaoCrypt::RandomNumberGenerator rng;
void err_sys(const char* msg, int es)
{
- printf("%s", msg);
+ printf("%s\n", msg);
exit(es);
}
@@ -302,7 +303,7 @@ void taocrypt_test(void* args)
void file_test(const char* file, byte* check)
{
FILE* f;
- int i(0);
+ int i = 0;
MD5 md5;
byte buf[1024];
byte md5sum[MD5::DIGEST_SIZE];
@@ -311,7 +312,7 @@ void file_test(const char* file, byte* c
printf("Can't open %s\n", file);
return;
}
- while( ( i = fread(buf, 1, sizeof(buf), f )) > 0 )
+ while( ( i = (int)fread(buf, 1, sizeof(buf), f )) > 0 )
md5.Update(buf, i);
md5.Final(md5sum);
@@ -700,7 +701,7 @@ int hmac_test()
int times( sizeof(test_hmacMD5) / sizeof(testVector) );
for (int i = 0; i < times; ++i) {
- hmacMD5.SetKey((byte*)keys[i], strlen(keys[i]));
+ hmacMD5.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
hmacMD5.Update(test_hmacMD5[i].input_, test_hmacMD5[i].inLen_);
hmacMD5.Final(hash);
@@ -743,8 +744,8 @@ int arc4_test()
ARC4::Encryption enc;
ARC4::Decryption dec;
- enc.SetKey((byte*)keys[i], strlen(keys[i]));
- dec.SetKey((byte*)keys[i], strlen(keys[i]));
+ enc.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
+ dec.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
enc.Process(cipher, test_arc4[i].input_, test_arc4[i].outLen_);
dec.Process(plain, cipher, test_arc4[i].outLen_);
@@ -1022,7 +1023,7 @@ int rsa_test()
RSAES_Encryptor enc(priv);
byte message[] = "Everyone gets Friday off.";
- const int len(strlen((char*)message));
+ const word32 len = (word32)strlen((char*)message);
byte cipher[64];
enc.Encrypt(message, len, cipher, rng);
@@ -1050,6 +1051,8 @@ int rsa_test()
}
}
CertDecoder cd(source2, true, 0, false, CertDecoder::CA);
+ if (cd.GetError().What())
+ err_sys("cert error", -80);
Source source3(cd.GetPublicKey().GetKey(), cd.GetPublicKey().size());
RSA_PublicKey pub(source3);
--- 1.11/extra/yassl/testsuite/test.hpp 2007-01-22 12:34:33 +01:00
+++ 1.12/extra/yassl/testsuite/test.hpp 2007-10-05 01:48:09 +02:00
@@ -14,6 +14,10 @@
#ifdef _WIN32
#include <winsock2.h>
#include <process.h>
+ #ifdef TEST_IPV6 // don't require newer SDK for IPV4
+ #include <ws2tcpip.h>
+ #include <wspiapi.h>
+ #endif
#define SOCKET_T unsigned int
#else
#include <string.h>
@@ -24,6 +28,9 @@
#include <sys/time.h>
#include <sys/types.h>
#include <sys/socket.h>
+ #ifdef TEST_IPV6
+ #include <netdb.h>
+ #endif
#include <pthread.h>
#ifdef NON_BLOCKING
#include <fcntl.h>
@@ -32,6 +39,13 @@
#endif /* _WIN32 */
+#ifdef _MSC_VER
+ // disable conversion warning
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable:4244 4996)
+#endif
+
+
#if !defined(_SOCKLEN_T) && \
(defined(_WIN32) || defined(__NETWARE__) || defined(__APPLE__))
typedef int socklen_t;
@@ -50,6 +64,15 @@
#endif
+#ifdef TEST_IPV6
+ typedef sockaddr_in6 SOCKADDR_IN_T;
+ #define AF_INET_V AF_INET6
+#else
+ typedef sockaddr_in SOCKADDR_IN_T;
+ #define AF_INET_V AF_INET
+#endif
+
+
// Check if _POSIX_THREADS should be forced
#if !defined(_POSIX_THREADS) && (defined(__NETWARE__) || defined(__hpux))
// HPUX does not define _POSIX_THREADS as it's not _fully_ implemented
@@ -60,7 +83,7 @@
#ifndef _POSIX_THREADS
typedef unsigned int THREAD_RETURN;
- typedef unsigned long THREAD_TYPE;
+ typedef HANDLE THREAD_TYPE;
#define YASSL_API __stdcall
#else
typedef void* THREAD_RETURN;
@@ -282,14 +305,35 @@ inline void tcp_set_nonblocking(SOCKET_T
}
-inline void tcp_socket(SOCKET_T& sockfd, sockaddr_in& addr)
+inline void tcp_socket(SOCKET_T& sockfd, SOCKADDR_IN_T& addr)
{
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
+ sockfd = socket(AF_INET_V, SOCK_STREAM, 0);
memset(&addr, 0, sizeof(addr));
- addr.sin_family = AF_INET;
+#ifdef TEST_IPV6
+ addr.sin6_family = AF_INET_V;
+ addr.sin6_port = htons(yasslPort);
+ addr.sin6_addr = in6addr_loopback;
+
+ /* // for external testing later
+ addrinfo hints;
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = AF_INET_V;
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_flags = AI_PASSIVE;
+
+ getaddrinfo(yasslIP6, yasslPortStr, &hints, info);
+ // then use info connect(sockfd, info->ai_addr, info->ai_addrlen)
+
+ if (*info == 0)
+ err_sys("getaddrinfo failed");
+ */ // end external testing later
+#else
+ addr.sin_family = AF_INET_V;
addr.sin_port = htons(yasslPort);
addr.sin_addr.s_addr = inet_addr(yasslIP);
+#endif
+
}
@@ -306,7 +350,7 @@ inline void tcp_close(SOCKET_T& sockfd)
inline void tcp_connect(SOCKET_T& sockfd)
{
- sockaddr_in addr;
+ SOCKADDR_IN_T addr;
tcp_socket(sockfd, addr);
if (connect(sockfd, (const sockaddr*)&addr, sizeof(addr)) != 0) {
@@ -318,7 +362,7 @@ inline void tcp_connect(SOCKET_T& sockfd
inline void tcp_listen(SOCKET_T& sockfd)
{
- sockaddr_in addr;
+ SOCKADDR_IN_T addr;
tcp_socket(sockfd, addr);
if (bind(sockfd, (const sockaddr*)&addr, sizeof(addr)) != 0) {
@@ -337,7 +381,7 @@ inline void tcp_accept(SOCKET_T& sockfd,
{
tcp_listen(sockfd);
- sockaddr_in client;
+ SOCKADDR_IN_T client;
socklen_t client_len = sizeof(client);
#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER)
--- 1.9/extra/yassl/testsuite/testsuite.cpp 2007-03-23 16:09:15 +01:00
+++ 1.10/extra/yassl/testsuite/testsuite.cpp 2007-10-05 01:29:28 +02:00
@@ -101,7 +101,7 @@ int main(int argc, char** argv)
void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
{
#ifndef _POSIX_THREADS
- *thread = _beginthreadex(0, 0, fun, args, 0, 0);
+ *thread = (HANDLE)_beginthreadex(0, 0, fun, args, 0, 0);
#else
pthread_create(thread, 0, fun, args);
#endif
@@ -111,9 +111,9 @@ void start_thread(THREAD_FUNC fun, func_
void join_thread(THREAD_TYPE thread)
{
#ifndef _POSIX_THREADS
- int res = WaitForSingleObject(reinterpret_cast<HANDLE>(thread), INFINITE);
+ int res = WaitForSingleObject(thread, INFINITE);
assert(res == WAIT_OBJECT_0);
- res = CloseHandle(reinterpret_cast<HANDLE>(thread));
+ res = CloseHandle(thread);
assert(res);
#else
pthread_join(thread, 0);
@@ -140,7 +140,7 @@ int test_openSSL_des()
{
/* test des encrypt/decrypt */
char data[] = "this is my data ";
- int dataSz = strlen(data);
+ int dataSz = (int)strlen(data);
DES_key_schedule key[3];
byte iv[8];
EVP_BytesToKey(EVP_des_ede3_cbc(), EVP_md5(), NULL, (byte*)data, dataSz, 1,
--- 1.5/extra/yassl/taocrypt/taocrypt.vcproj 2007-03-19 16:17:48 +01:00
+++ 1.6/extra/yassl/taocrypt/taocrypt.vcproj 2007-10-05 01:29:27 +02:00
@@ -1,265 +1,384 @@
-<?xml version="1.0" encoding="Windows-1252"?>
+<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="7.10"
+ Version="8.00"
Name="taocrypt"
- SccProjectName=""
- SccLocalPath="">
+ ProjectGUID="{EEE1B039-5105-4576-9CF6-8DA69985B7F9}"
+ Keyword="Win32Proj"
+ >
<Platforms>
<Platform
- Name="Win32"/>
+ Name="Win32"
+ />
</Platforms>
+ <ToolFiles>
+ </ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory=".\debug_obj"
- IntermediateDirectory=".\debug_obj"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- OptimizeForProcessor="2"
- AdditionalIncludeDirectories="include,mySTL"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
- ExceptionHandling="FALSE"
+ AdditionalIncludeDirectories="mySTL;include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;"
+ MinimalRebuild="true"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\debug_obj/taocrypt.pch"
- AssemblerListingLocation=".\debug_obj/"
- ObjectFile=".\debug_obj/"
- ProgramDataBaseFileName=".\debug_obj/"
- BrowseInformation="1"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
WarningLevel="3"
- SuppressStartupBanner="TRUE"
+ Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
+ />
<Tool
- Name="VCLibrarianTool"
- OutputFile=".\debug_obj\taocrypt.lib"
- SuppressStartupBanner="TRUE"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
+ Name="VCResourceCompilerTool"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCLibrarianTool"
+ />
<Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCManagedWrapperGeneratorTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory=".\release_obj"
- IntermediateDirectory=".\release_obj"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
+ >
<Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- OptimizeForProcessor="2"
- AdditionalIncludeDirectories="include,mySTL"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
- StringPooling="TRUE"
- ExceptionHandling="FALSE"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\release_obj/taocrypt.pch"
- AssemblerListingLocation=".\release_obj/"
- ObjectFile=".\release_obj/"
- ProgramDataBaseFileName=".\release_obj/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ Name="VCPreBuildEventTool"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCCustomBuildTool"
+ />
<Tool
- Name="VCLibrarianTool"
- OutputFile=".\release_obj\taocrypt.lib"
- SuppressStartupBanner="TRUE"/>
+ Name="VCXMLDataGeneratorTool"
+ />
<Tool
- Name="VCMIDLTool"/>
+ Name="VCWebServiceProxyGeneratorTool"
+ />
<Tool
- Name="VCPostBuildEventTool"/>
+ Name="VCMIDLTool"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="mySTL;include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"/>
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCManagedWrapperGeneratorTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\include\aes.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\algebra.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\arc4.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\asn.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\block.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\blowfish.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\coding.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\des.hpp"
+ >
+ </File>
<File
- RelativePath="src\aes.cpp">
+ RelativePath=".\include\dh.hpp"
+ >
</File>
<File
- RelativePath="src\aestables.cpp">
+ RelativePath=".\include\dsa.hpp"
+ >
</File>
<File
- RelativePath="src\algebra.cpp">
+ RelativePath=".\include\error.hpp"
+ >
</File>
<File
- RelativePath="src\arc4.cpp">
+ RelativePath=".\include\file.hpp"
+ >
</File>
<File
- RelativePath="src\asn.cpp">
+ RelativePath=".\include\hash.hpp"
+ >
</File>
<File
- RelativePath="src\coding.cpp">
+ RelativePath=".\include\hmac.hpp"
+ >
</File>
<File
- RelativePath="src\des.cpp">
+ RelativePath=".\include\integer.hpp"
+ >
</File>
<File
- RelativePath="src\dh.cpp">
+ RelativePath=".\include\kernelc.hpp"
+ >
</File>
<File
- RelativePath="src\dsa.cpp">
+ RelativePath=".\include\md2.hpp"
+ >
</File>
<File
- RelativePath="src\file.cpp">
+ RelativePath=".\include\md4.hpp"
+ >
</File>
<File
- RelativePath="src\hash.cpp">
+ RelativePath=".\include\md5.hpp"
+ >
</File>
<File
- RelativePath="src\integer.cpp">
+ RelativePath=".\include\misc.hpp"
+ >
</File>
<File
- RelativePath="src\md2.cpp">
+ RelativePath=".\include\modarith.hpp"
+ >
</File>
<File
- RelativePath="src\md4.cpp">
+ RelativePath=".\include\modes.hpp"
+ >
</File>
<File
- RelativePath="src\md5.cpp">
+ RelativePath=".\include\pwdbased.hpp"
+ >
</File>
<File
- RelativePath="src\misc.cpp">
+ RelativePath=".\include\random.hpp"
+ >
</File>
<File
- RelativePath="src\random.cpp">
+ RelativePath=".\include\ripemd.hpp"
+ >
</File>
<File
- RelativePath="src\ripemd.cpp">
+ RelativePath=".\include\rsa.hpp"
+ >
</File>
<File
- RelativePath="src\rsa.cpp">
+ RelativePath=".\include\runtime.hpp"
+ >
</File>
<File
- RelativePath="src\sha.cpp">
+ RelativePath=".\include\sha.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\twofish.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\type_traits.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\types.hpp"
+ >
</File>
</Filter>
<Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\src\aes.cpp"
+ >
+ </File>
<File
- RelativePath="include\aes.hpp">
+ RelativePath=".\src\aestables.cpp"
+ >
</File>
<File
- RelativePath="include\algebra.hpp">
+ RelativePath=".\src\algebra.cpp"
+ >
</File>
<File
- RelativePath="include\arc4.hpp">
+ RelativePath=".\src\arc4.cpp"
+ >
</File>
<File
- RelativePath="include\asn.hpp">
+ RelativePath=".\src\asn.cpp"
+ >
</File>
<File
- RelativePath="include\block.hpp">
+ RelativePath=".\src\bftables.cpp"
+ >
</File>
<File
- RelativePath="include\coding.hpp">
+ RelativePath=".\src\blowfish.cpp"
+ >
</File>
<File
- RelativePath="include\des.hpp">
+ RelativePath=".\src\coding.cpp"
+ >
</File>
<File
- RelativePath="include\dh.hpp">
+ RelativePath=".\src\crypto.cpp"
+ >
</File>
<File
- RelativePath="include\dsa.hpp">
+ RelativePath=".\src\des.cpp"
+ >
</File>
<File
- RelativePath="include\error.hpp">
+ RelativePath=".\src\dh.cpp"
+ >
</File>
<File
- RelativePath="include\file.hpp">
+ RelativePath=".\src\dsa.cpp"
+ >
</File>
<File
- RelativePath="include\hash.hpp">
+ RelativePath=".\src\file.cpp"
+ >
</File>
<File
- RelativePath="include\hmac.hpp">
+ RelativePath=".\src\hash.cpp"
+ >
</File>
<File
- RelativePath="include\integer.hpp">
+ RelativePath=".\src\integer.cpp"
+ >
</File>
<File
- RelativePath="include\md2.hpp">
+ RelativePath=".\src\md2.cpp"
+ >
</File>
<File
- RelativePath="include\md4.hpp">
+ RelativePath=".\src\md4.cpp"
+ >
</File>
<File
- RelativePath="include\md5.hpp">
+ RelativePath=".\src\md5.cpp"
+ >
</File>
<File
- RelativePath="include\misc.hpp">
+ RelativePath=".\src\misc.cpp"
+ >
</File>
<File
- RelativePath="include\modarith.hpp">
+ RelativePath=".\src\random.cpp"
+ >
</File>
<File
- RelativePath="include\modes.hpp">
+ RelativePath=".\src\ripemd.cpp"
+ >
</File>
<File
- RelativePath="include\random.hpp">
+ RelativePath=".\src\rsa.cpp"
+ >
</File>
<File
- RelativePath="include\ripemd.hpp">
+ RelativePath=".\src\sha.cpp"
+ >
</File>
<File
- RelativePath="include\rsa.hpp">
+ RelativePath=".\src\tftables.cpp"
+ >
</File>
<File
- RelativePath="include\sha.hpp">
+ RelativePath=".\src\twofish.cpp"
+ >
</File>
</Filter>
</Files>
--- 1.5/extra/yassl/yassl.vcproj 2007-03-19 16:17:48 +01:00
+++ 1.6/extra/yassl/yassl.vcproj 2007-10-05 01:29:26 +02:00
@@ -1,208 +1,264 @@
-<?xml version="1.0" encoding="Windows-1252"?>
+<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="7.10"
+ Version="8.00"
Name="yassl"
- SccProjectName=""
- SccLocalPath="">
+ ProjectGUID="{E8A6383F-B3D9-497B-A6D8-A8C324356968}"
+ Keyword="Win32Proj"
+ >
<Platforms>
<Platform
- Name="Win32"/>
+ Name="Win32"
+ />
</Platforms>
+ <ToolFiles>
+ </ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory=".\debug_obj"
- IntermediateDirectory=".\debug_obj"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- OptimizeForProcessor="2"
- AdditionalIncludeDirectories="include,taocrypt\include,taocrypt\mySTL"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;YASSL_PREFIX"
- ExceptionHandling="FALSE"
+ AdditionalIncludeDirectories="include;taocrypt\mySTL;taocrypt\include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
+ MinimalRebuild="true"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\debug_obj/yassl.pch"
- AssemblerListingLocation=".\debug_obj/"
- ObjectFile=".\debug_obj/"
- ProgramDataBaseFileName=".\debug_obj/"
- BrowseInformation="1"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
WarningLevel="3"
- SuppressStartupBanner="TRUE"
+ Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile=".\debug_obj\yassl.lib"
- SuppressStartupBanner="TRUE"/>
+ />
<Tool
- Name="VCMIDLTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
- Name="VCPostBuildEventTool"/>
+ Name="VCResourceCompilerTool"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCLibrarianTool"
+ />
<Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCManagedWrapperGeneratorTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory=".\release_obj"
- IntermediateDirectory=".\release_obj"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
+ >
<Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- OptimizeForProcessor="2"
- AdditionalIncludeDirectories="include,taocrypt\include,taocrypt\mySTL"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB;YASSL_PREFIX"
- StringPooling="TRUE"
- ExceptionHandling="FALSE"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\release_obj/yassl.pch"
- AssemblerListingLocation=".\release_obj/"
- ObjectFile=".\release_obj/"
- ProgramDataBaseFileName=".\release_obj/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ Name="VCPreBuildEventTool"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCCustomBuildTool"
+ />
<Tool
- Name="VCLibrarianTool"
- OutputFile=".\release_obj\yassl.lib"
- SuppressStartupBanner="TRUE"/>
+ Name="VCXMLDataGeneratorTool"
+ />
<Tool
- Name="VCMIDLTool"/>
+ Name="VCWebServiceProxyGeneratorTool"
+ />
<Tool
- Name="VCPostBuildEventTool"/>
+ Name="VCMIDLTool"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="include;taocrypt\mySTL;taocrypt\include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB;"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"/>
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCManagedWrapperGeneratorTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
<File
- RelativePath="src\buffer.cpp">
+ RelativePath=".\include\buffer.hpp"
+ >
</File>
<File
- RelativePath="src\cert_wrapper.cpp">
+ RelativePath=".\include\cert_wrapper.hpp"
+ >
</File>
<File
- RelativePath="src\crypto_wrapper.cpp">
+ RelativePath=".\include\crypto_wrapper.hpp"
+ >
</File>
<File
- RelativePath="src\handshake.cpp">
+ RelativePath=".\include\factory.hpp"
+ >
</File>
<File
- RelativePath="src\lock.cpp">
+ RelativePath=".\include\handshake.hpp"
+ >
</File>
<File
- RelativePath="src\log.cpp">
+ RelativePath=".\include\lock.hpp"
+ >
</File>
<File
- RelativePath="src\socket_wrapper.cpp">
+ RelativePath=".\include\log.hpp"
+ >
</File>
<File
- RelativePath="src\ssl.cpp">
+ RelativePath=".\include\socket_wrapper.hpp"
+ >
</File>
<File
- RelativePath="src\timer.cpp">
+ RelativePath=".\include\timer.hpp"
+ >
</File>
<File
- RelativePath="src\yassl_error.cpp">
+ RelativePath=".\include\yassl.hpp"
+ >
</File>
<File
- RelativePath="src\yassl_imp.cpp">
+ RelativePath=".\include\yassl_error.hpp"
+ >
</File>
<File
- RelativePath="src\yassl_int.cpp">
+ RelativePath=".\include\yassl_imp.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\include\yassl_int.hpp"
+ >
</File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
<File
- RelativePath="include\buffer.hpp">
+ RelativePath=".\include\yassl_types.hpp"
+ >
</File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
<File
- RelativePath="include\cert_wrapper.hpp">
+ RelativePath=".\src\buffer.cpp"
+ >
</File>
<File
- RelativePath="include\crypto_wrapper.hpp">
+ RelativePath=".\src\cert_wrapper.cpp"
+ >
</File>
<File
- RelativePath="include\factory.hpp">
+ RelativePath=".\src\crypto_wrapper.cpp"
+ >
</File>
<File
- RelativePath="include\handshake.hpp">
+ RelativePath=".\src\handshake.cpp"
+ >
</File>
<File
- RelativePath="include\lock.hpp">
+ RelativePath=".\src\lock.cpp"
+ >
</File>
<File
- RelativePath="include\log.hpp">
+ RelativePath=".\src\log.cpp"
+ >
</File>
<File
- RelativePath="include\socket_wrapper.hpp">
+ RelativePath=".\src\socket_wrapper.cpp"
+ >
</File>
<File
- RelativePath="include\timer.hpp">
+ RelativePath=".\src\ssl.cpp"
+ >
</File>
<File
- RelativePath="include\yassl_error.hpp">
+ RelativePath=".\src\timer.cpp"
+ >
</File>
<File
- RelativePath="include\yassl_imp.hpp">
+ RelativePath=".\src\yassl_error.cpp"
+ >
</File>
<File
- RelativePath="include\yassl_int.hpp">
+ RelativePath=".\src\yassl_imp.cpp"
+ >
</File>
<File
- RelativePath="include\yassl_types.hpp">
+ RelativePath=".\src\yassl_int.cpp"
+ >
</File>
</Filter>
</Files>
--- 1.9/extra/yassl/include/buffer.hpp 2007-03-15 03:15:07 +01:00
+++ 1.10/extra/yassl/include/buffer.hpp 2007-03-15 03:15:07 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.5/extra/yassl/include/cert_wrapper.hpp 2006-08-16 01:36:33 +02:00
+++ 1.6/extra/yassl/include/cert_wrapper.hpp 2007-03-15 03:15:07 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.8/extra/yassl/include/crypto_wrapper.hpp 2007-03-15 03:15:08 +01:00
+++ 1.9/extra/yassl/include/crypto_wrapper.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.7/extra/yassl/include/factory.hpp 2006-10-05 05:18:12 +02:00
+++ 1.8/extra/yassl/include/factory.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/include/handshake.hpp 2006-07-12 21:15:02 +02:00
+++ 1.4/extra/yassl/include/handshake.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/include/lock.hpp 2006-07-12 21:15:02 +02:00
+++ 1.5/extra/yassl/include/lock.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/include/log.hpp 2006-07-12 21:15:02 +02:00
+++ 1.5/extra/yassl/include/log.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/include/openssl/crypto.h 2006-05-31 22:14:47 +02:00
+++ 1.4/extra/yassl/include/openssl/crypto.h 2007-08-21 00:31:31 +02:00
@@ -9,6 +9,7 @@
const char* SSLeay_version(int type);
+#define SSLEAY_NUMBER_DEFINED
#define SSLEAY_VERSION 0x0900L
#define SSLEAY_VERSION_NUMBER SSLEAY_VERSION
--- 1.23/extra/yassl/include/openssl/ssl.h 2007-03-28 15:04:27 +02:00
+++ 1.24/extra/yassl/include/openssl/ssl.h 2008-01-31 20:35:03 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@
#include "rsa.h"
-#define YASSL_VERSION "1.6.5"
+#define YASSL_VERSION "1.8.6"
#if defined(__cplusplus)
@@ -201,6 +201,7 @@ typedef int YASSL_SOCKET_T;
SSL_CTX* SSL_CTX_new(SSL_METHOD*);
SSL* SSL_new(SSL_CTX*);
int SSL_set_fd (SSL*, YASSL_SOCKET_T);
+YASSL_SOCKET_T SSL_get_fd(const SSL*);
int SSL_connect(SSL*);
int SSL_write(SSL*, const void*, int);
int SSL_read(SSL*, void*, int);
@@ -226,6 +227,7 @@ void SSL_load_error_strings(void);
int SSL_set_session(SSL *ssl, SSL_SESSION *session);
SSL_SESSION* SSL_get_session(SSL* ssl);
+void SSL_flush_sessions(SSL_CTX *ctx, long tm);
long SSL_SESSION_set_timeout(SSL_SESSION*, long);
long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode);
X509* SSL_get_peer_certificate(SSL*);
@@ -277,6 +279,8 @@ int SSL_session_reused(SSL*);
int SSL_set_rfd(SSL*, int);
int SSL_set_wfd(SSL*, int);
void SSL_set_shutdown(SSL*, int);
+void SSL_set_quiet_shutdown(SSL *ssl,int mode);
+int SSL_get_quiet_shutdown(SSL *ssl);
int SSL_want_read(SSL*);
int SSL_want_write(SSL*);
--- 1.12/extra/yassl/include/socket_wrapper.hpp 2007-03-15 03:15:08 +01:00
+++ 1.13/extra/yassl/include/socket_wrapper.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/include/timer.hpp 2006-07-12 21:15:02 +02:00
+++ 1.4/extra/yassl/include/timer.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.8/extra/yassl/include/yassl_error.hpp 2006-10-19 01:36:53 +02:00
+++ 1.9/extra/yassl/include/yassl_error.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.10/extra/yassl/include/yassl_imp.hpp 2007-03-15 03:15:08 +01:00
+++ 1.11/extra/yassl/include/yassl_imp.hpp 2007-03-15 03:15:08 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.18/extra/yassl/include/yassl_int.hpp 2007-03-15 03:15:08 +01:00
+++ 1.19/extra/yassl/include/yassl_int.hpp 2007-12-24 00:18:00 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -268,12 +268,14 @@ class Sessions {
STL::list<SSL_SESSION*> list_;
RandomPool random_; // for session cleaning
Mutex mutex_; // no-op for single threaded
+ int count_; // flush counter
- Sessions() {} // only GetSessions can create
+ Sessions() : count_(0) {} // only GetSessions can create
public:
SSL_SESSION* lookup(const opaque*, SSL_SESSION* copy = 0);
void add(const SSL&);
void remove(const opaque*);
+ void Flush();
~Sessions();
@@ -425,6 +427,7 @@ private:
pem_password_cb passwordCb_;
void* userData_;
bool sessionCacheOff_;
+ bool sessionCacheFlushOff_;
Stats stats_;
Mutex mutex_; // for Stats
public:
@@ -440,6 +443,7 @@ public:
pem_password_cb GetPasswordCb() const;
void* GetUserData() const;
bool GetSessionCacheOff() const;
+ bool GetSessionCacheFlushOff() const;
void setVerifyPeer();
void setVerifyNone();
@@ -449,6 +453,7 @@ public:
void SetPasswordCb(pem_password_cb cb);
void SetUserData(void*);
void SetSessionCacheOff();
+ void SetSessionCacheFlushOff();
void IncrementStats(StatsField);
void AddCA(x509* ca);
@@ -584,6 +589,7 @@ class SSL {
Socket socket_; // socket wrapper
Buffers buffers_; // buffered handshakes and data
Log log_; // logger
+ bool quietShutdown_;
// optimization variables
bool has_data_; // buffered data ready?
@@ -610,6 +616,7 @@ public:
Buffers& useBuffers();
bool HasData() const;
+ bool GetQuietShutdown() const;
// sets
void set_pending(Cipher suite);
@@ -621,6 +628,7 @@ public:
void SetError(YasslError);
int SetCompression();
void UnSetCompression();
+ void SetQuietShutdown(bool mode);
// helpers
bool isTLS() const;
--- 1.16/extra/yassl/include/yassl_types.hpp 2006-10-19 01:36:53 +02:00
+++ 1.17/extra/yassl/include/yassl_types.hpp 2007-12-24 00:18:01 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -29,6 +29,13 @@
#include "type_traits.hpp"
+#ifdef _MSC_VER
+ // disable conversion warning
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable:4244 4996)
+#endif
+
+
namespace yaSSL {
#define YASSL_LIB
@@ -205,6 +212,7 @@ const int SEED_LEN = RAN_LEN *
const int DEFAULT_TIMEOUT = 500; // Default Session timeout in seconds
const int MAX_RECORD_SIZE = 16384; // 2^14, max size by standard
const int COMPRESS_EXTRA = 1024; // extra compression possible addition
+const int SESSION_FLUSH_COUNT = 256; // when to flush session cache
typedef uint8 Cipher; // first byte is always 0x00 for SSLv3 & TLS
--- 1.8/extra/yassl/src/buffer.cpp 2006-07-12 21:15:02 +02:00
+++ 1.9/extra/yassl/src/buffer.cpp 2007-03-15 03:15:09 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.10/extra/yassl/src/cert_wrapper.cpp 2006-08-29 22:06:44 +02:00
+++ 1.11/extra/yassl/src/cert_wrapper.cpp 2007-10-05 01:29:27 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -236,7 +236,7 @@ uint CertManager::get_privateKeyLength()
int CertManager::Validate()
{
CertList::reverse_iterator last = peerList_.rbegin();
- int count = peerList_.size();
+ size_t count = peerList_.size();
while ( count > 1 ) {
TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length());
@@ -269,10 +269,10 @@ int CertManager::Validate()
else
peerKeyType_ = dsa_sa_algo;
- int iSz = strlen(cert.GetIssuer()) + 1;
- int sSz = strlen(cert.GetCommonName()) + 1;
- int bSz = strlen(cert.GetBeforeDate()) + 1;
- int aSz = strlen(cert.GetAfterDate()) + 1;
+ size_t iSz = strlen(cert.GetIssuer()) + 1;
+ size_t sSz = strlen(cert.GetCommonName()) + 1;
+ int bSz = (int)strlen(cert.GetBeforeDate()) + 1;
+ int aSz = (int)strlen(cert.GetAfterDate()) + 1;
peerX509_ = NEW_YS X509(cert.GetIssuer(), iSz, cert.GetCommonName(),
sSz, cert.GetBeforeDate(), bSz,
cert.GetAfterDate(), aSz);
--- 1.12/extra/yassl/src/crypto_wrapper.cpp 2007-03-15 03:15:09 +01:00
+++ 1.13/extra/yassl/src/crypto_wrapper.cpp 2007-03-15 03:15:09 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.15/extra/yassl/src/handshake.cpp 2007-01-25 19:34:38 +01:00
+++ 1.16/extra/yassl/src/handshake.cpp 2008-01-12 00:17:24 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -528,6 +528,12 @@ void ProcessOldClientHello(input_buffer&
uint16 randomLen;
ato16(len, randomLen);
+ if (ch.suite_len_ > MAX_SUITE_SZ || sessionLen > ID_LEN ||
+ randomLen > RAN_LEN) {
+ ssl.SetError(bad_input);
+ return;
+ }
+
int j = 0;
for (uint16 i = 0; i < ch.suite_len_; i += 3) {
byte first = input[AUTO];
@@ -719,6 +725,10 @@ int DoProcessReply(SSL& ssl)
// add new data
uint read = ssl.useSocket().receive(buffer.get_buffer() + buffSz, ready);
+ if (read == static_cast<uint>(-1)) {
+ ssl.SetError(receive_error);
+ return 0;
+ }
buffer.add_size(read);
uint offset = 0;
const MessageFactory& mf = ssl.getFactory().getMessage();
--- 1.6/extra/yassl/src/lock.cpp 2006-07-12 21:15:02 +02:00
+++ 1.7/extra/yassl/src/lock.cpp 2007-03-15 03:15:09 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.7/extra/yassl/src/log.cpp 2006-07-12 21:15:02 +02:00
+++ 1.8/extra/yassl/src/log.cpp 2007-03-15 03:15:09 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.15/extra/yassl/src/socket_wrapper.cpp 2007-01-25 19:39:15 +01:00
+++ 1.16/extra/yassl/src/socket_wrapper.cpp 2007-08-28 10:03:04 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -114,8 +114,6 @@ uint Socket::send(const byte* buf, unsig
const byte* pos = buf;
const byte* end = pos + sz;
- assert(socket_ != INVALID_SOCKET);
-
while (pos != end) {
int sent = ::send(socket_, reinterpret_cast<const char *>(pos),
static_cast<int>(end - pos), flags);
@@ -132,7 +130,6 @@ uint Socket::send(const byte* buf, unsig
uint Socket::receive(byte* buf, unsigned int sz, int flags)
{
- assert(socket_ != INVALID_SOCKET);
wouldBlock_ = false;
int recvd = ::recv(socket_, reinterpret_cast<char *>(buf), sz, flags);
@@ -163,7 +160,6 @@ bool Socket::wait()
void Socket::shutDown(int how)
{
- assert(socket_ != INVALID_SOCKET);
shutdown(socket_, how);
}
--- 1.30/extra/yassl/src/ssl.cpp 2007-03-28 18:28:29 +02:00
+++ 1.31/extra/yassl/src/ssl.cpp 2007-12-24 00:18:01 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -239,6 +239,12 @@ int SSL_set_fd(SSL* ssl, YASSL_SOCKET_T
}
+YASSL_SOCKET_T SSL_get_fd(const SSL* ssl)
+{
+ return ssl->getSocket().get_fd();
+}
+
+
int SSL_connect(SSL* ssl)
{
if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ))
@@ -411,8 +417,10 @@ int SSL_clear(SSL* ssl)
int SSL_shutdown(SSL* ssl)
{
+ if (!ssl->GetQuietShutdown()) {
Alert alert(warning, close_notify);
sendAlert(*ssl, alert);
+ }
ssl->useLog().ShowTCP(ssl->getSocket().get_fd(), true);
GetErrors().Remove();
@@ -421,12 +429,27 @@ int SSL_shutdown(SSL* ssl)
}
+void SSL_set_quiet_shutdown(SSL *ssl,int mode)
+{
+ ssl->SetQuietShutdown(mode != 0);
+}
+
+
+int SSL_get_quiet_shutdown(SSL *ssl)
+{
+ return ssl->GetQuietShutdown();
+}
+
+
/* on by default but allow user to turn off */
long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode)
{
if (mode == SSL_SESS_CACHE_OFF)
ctx->SetSessionCacheOff();
+ if (mode == SSL_SESS_CACHE_NO_AUTO_CLEAR)
+ ctx->SetSessionCacheFlushOff();
+
return SSL_SUCCESS;
}
@@ -473,6 +496,15 @@ long SSL_get_default_timeout(SSL* /*ssl*
}
+void SSL_flush_sessions(SSL_CTX *ctx, long /* tm */)
+{
+ if (ctx->GetSessionCacheOff())
+ return;
+
+ GetSessions().Flush();
+}
+
+
const char* SSL_get_cipher_name(SSL* ssl)
{
return SSL_get_cipher(ssl);
@@ -584,7 +616,7 @@ char* X509_NAME_oneline(X509_NAME* name,
{
if (!name->GetName()) return buffer;
- int len = strlen(name->GetName()) + 1;
+ int len = (int)strlen(name->GetName()) + 1;
int copySz = min(len, sz);
if (!buffer) {
--- 1.14/extra/yassl/src/template_instnt.cpp 2006-09-27 14:27:49 +02:00
+++ 1.15/extra/yassl/src/template_instnt.cpp 2008-01-12 00:17:24 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -101,6 +101,7 @@ template void ysArrayDelete<unsigned cha
template void ysArrayDelete<char>(char*);
template int min<int>(int, int);
+template uint16 min<uint16>(uint16, uint16);
template unsigned int min<unsigned int>(unsigned int, unsigned int);
template unsigned long min<unsigned long>(unsigned long, unsigned long);
}
--- 1.9/extra/yassl/src/timer.cpp 2006-07-12 21:15:02 +02:00
+++ 1.10/extra/yassl/src/timer.cpp 2007-03-15 03:15:10 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.11/extra/yassl/src/yassl_error.cpp 2007-01-17 19:14:50 +01:00
+++ 1.12/extra/yassl/src/yassl_error.cpp 2007-10-05 01:29:27 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -25,6 +25,11 @@
#include "error.hpp" // TaoCrypt error numbers
#include "openssl/ssl.h" // SSL_ERROR_WANT_READ
#include <string.h> // strncpy
+
+#ifdef _MSC_VER
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable: 4996)
+#endif
namespace yaSSL {
--- 1.13/extra/yassl/src/yassl_imp.cpp 2006-11-09 21:20:56 +01:00
+++ 1.14/extra/yassl/src/yassl_imp.cpp 2008-01-12 00:17:24 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -532,7 +532,7 @@ void Parameters::SetCipherNames()
for (int j = 0; j < suites; j++) {
int index = suites_[j*2 + 1]; // every other suite is suite id
- int len = strlen(cipher_names[index]) + 1;
+ size_t len = strlen(cipher_names[index]) + 1;
strncpy(cipher_list_[pos++], cipher_names[index], len);
}
cipher_list_[pos][0] = 0;
@@ -621,6 +621,10 @@ void HandShakeHeader::Process(input_buff
}
uint len = c24to32(length_);
+ if (len > input.get_remaining()) {
+ ssl.SetError(bad_input);
+ return;
+ }
hashHandShake(ssl, input, len);
hs->set_length(len);
@@ -1391,10 +1395,15 @@ input_buffer& operator>>(input_buffer& i
// Suites
byte tmp[2];
+ uint16 len;
tmp[0] = input[AUTO];
tmp[1] = input[AUTO];
- ato16(tmp, hello.suite_len_);
+ ato16(tmp, len);
+
+ hello.suite_len_ = min(len, static_cast<uint16>(MAX_SUITE_SZ));
input.read(hello.cipher_suites_, hello.suite_len_);
+ if (len > hello.suite_len_) // ignore extra suites
+ input.set_current(input.get_current() + len - hello.suite_len_);
// Compression
hello.comp_len_ = input[AUTO];
--- 1.24/extra/yassl/src/yassl_int.cpp 2007-01-25 19:34:38 +01:00
+++ 1.25/extra/yassl/src/yassl_int.cpp 2007-12-24 00:18:01 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -291,7 +291,7 @@ const ClientKeyFactory& sslFactory::getC
SSL::SSL(SSL_CTX* ctx)
: secure_(ctx->getMethod()->getVersion(), crypto_.use_random(),
ctx->getMethod()->getSide(), ctx->GetCiphers(), ctx,
- ctx->GetDH_Parms().set_), has_data_(false)
+ ctx->GetDH_Parms().set_), quietShutdown_(false), has_data_(false)
{
if (int err = crypto_.get_random().GetError()) {
SetError(YasslError(err));
@@ -774,6 +774,13 @@ void SSL::SetError(YasslError ye)
}
+// set the quiet shutdown mode (close_nofiy not sent or received on shutdown)
+void SSL::SetQuietShutdown(bool mode)
+{
+ quietShutdown_ = mode;
+}
+
+
Buffers& SSL::useBuffers()
{
return buffers_;
@@ -1027,12 +1034,12 @@ void SSL::fillData(Data& data)
{
if (GetError()) return;
uint dataSz = data.get_length(); // input, data size to fill
- uint elements = buffers_.getData().size();
+ size_t elements = buffers_.getData().size();
data.set_length(0); // output, actual data filled
dataSz = min(dataSz, bufferedData());
- for (uint i = 0; i < elements; i++) {
+ for (size_t i = 0; i < elements; i++) {
input_buffer* front = buffers_.getData().front();
uint frontSz = front->get_remaining();
uint readSz = min(dataSz - data.get_length(), frontSz);
@@ -1057,7 +1064,7 @@ void SSL::PeekData(Data& data)
{
if (GetError()) return;
uint dataSz = data.get_length(); // input, data size to fill
- uint elements = buffers_.getData().size();
+ size_t elements = buffers_.getData().size();
data.set_length(0); // output, actual data filled
dataSz = min(dataSz, bufferedData());
@@ -1091,9 +1098,9 @@ void SSL::flushBuffer()
buffers_.getHandShake().end(),
SumBuffer()).total_;
output_buffer out(sz);
- uint elements = buffers_.getHandShake().size();
+ size_t elements = buffers_.getHandShake().size();
- for (uint i = 0; i < elements; i++) {
+ for (size_t i = 0; i < elements; i++) {
output_buffer* front = buffers_.getHandShake().front();
out.write(front->get_buffer(), front->get_size());
@@ -1330,6 +1337,12 @@ YasslError SSL::GetError() const
}
+bool SSL::GetQuietShutdown() const
+{
+ return quietShutdown_;
+}
+
+
bool SSL::GetMultiProtocol() const
{
return secure_.GetContext()->getMethod()->multipleProtocol();
@@ -1553,12 +1566,18 @@ Errors& GetErrors()
typedef Mutex::Lock Lock;
+
void Sessions::add(const SSL& ssl)
{
if (ssl.getSecurity().get_connection().sessionID_Set_) {
Lock guard(mutex_);
list_.push_back(NEW_YS SSL_SESSION(ssl, random_));
+ count_++;
}
+
+ if (count_ > SESSION_FLUSH_COUNT)
+ if (!ssl.getSecurity().GetContext()->GetSessionCacheFlushOff())
+ Flush();
}
@@ -1647,6 +1666,25 @@ void Sessions::remove(const opaque* id)
}
+// flush expired sessions from cache
+void Sessions::Flush()
+{
+ Lock guard(mutex_);
+ sess_iterator next = list_.begin();
+ uint current = lowResTimer();
+
+ while (next != list_.end()) {
+ sess_iterator si = next;
+ ++next;
+ if ( ((*si)->GetBornOn() + (*si)->GetTimeOut()) < current) {
+ del_ptr_zero()(*si);
+ list_.erase(si);
+ }
+ }
+ count_ = 0; // reset flush counter
+}
+
+
// remove a self thread error
void Errors::Remove()
{
@@ -1751,7 +1789,7 @@ bool SSL_METHOD::multipleProtocol() cons
SSL_CTX::SSL_CTX(SSL_METHOD* meth)
: method_(meth), certificate_(0), privateKey_(0), passwordCb_(0),
- userData_(0), sessionCacheOff_(false)
+ userData_(0), sessionCacheOff_(false), sessionCacheFlushOff_(false)
{}
@@ -1838,6 +1876,12 @@ bool SSL_CTX::GetSessionCacheOff() const
}
+bool SSL_CTX::GetSessionCacheFlushOff() const
+{
+ return sessionCacheFlushOff_;
+}
+
+
void SSL_CTX::SetUserData(void* data)
{
userData_ = data;
@@ -1850,6 +1894,12 @@ void SSL_CTX::SetSessionCacheOff()
}
+void SSL_CTX::SetSessionCacheFlushOff()
+{
+ sessionCacheFlushOff_ = true;
+}
+
+
void SSL_CTX::setVerifyPeer()
{
method_->setVerifyPeer();
@@ -1893,7 +1943,7 @@ bool SSL_CTX::SetCipherList(const char*
int idx = 0;
for(;;) {
- int len;
+ size_t len;
prev = haystack;
haystack = strstr(haystack, needle);
@@ -2341,10 +2391,10 @@ ASN1_STRING* X509_NAME::GetEntry(int i)
memcpy(entry_.data, &name_[i], sz_ - i);
if (entry_.data[sz_ -i - 1]) {
entry_.data[sz_ - i] = 0;
- entry_.length = sz_ - i;
+ entry_.length = int(sz_) - i;
}
else
- entry_.length = sz_ - i - 1;
+ entry_.length = int(sz_) - i - 1;
entry_.type = 0;
return &entry_;
--- 1.6/extra/yassl/taocrypt/include/aes.hpp 2006-10-05 05:18:12 +02:00
+++ 1.7/extra/yassl/taocrypt/include/aes.hpp 2007-03-15 03:15:10 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.9/extra/yassl/taocrypt/include/algebra.hpp 2007-03-15 03:15:10 +01:00
+++ 1.10/extra/yassl/taocrypt/include/algebra.hpp 2007-03-15 03:15:10 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.5/extra/yassl/taocrypt/include/arc4.hpp 2006-10-05 05:18:12 +02:00
+++ 1.6/extra/yassl/taocrypt/include/arc4.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.13/extra/yassl/taocrypt/include/asn.hpp 2007-01-10 19:27:15 +01:00
+++ 1.14/extra/yassl/taocrypt/include/asn.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.11/extra/yassl/taocrypt/include/block.hpp 2006-10-05 05:18:12 +02:00
+++ 1.12/extra/yassl/taocrypt/include/block.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/taocrypt/include/coding.hpp 2006-07-12 21:15:02 +02:00
+++ 1.4/extra/yassl/taocrypt/include/coding.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.8/extra/yassl/taocrypt/include/des.hpp 2007-03-15 03:15:11 +01:00
+++ 1.9/extra/yassl/taocrypt/include/des.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/taocrypt/include/dh.hpp 2006-07-12 21:15:03 +02:00
+++ 1.5/extra/yassl/taocrypt/include/dh.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/taocrypt/include/dsa.hpp 2006-07-12 21:15:03 +02:00
+++ 1.4/extra/yassl/taocrypt/include/dsa.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.7/extra/yassl/taocrypt/include/error.hpp 2007-01-17 19:14:50 +01:00
+++ 1.8/extra/yassl/taocrypt/include/error.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.6/extra/yassl/taocrypt/include/file.hpp 2007-01-17 19:14:50 +01:00
+++ 1.7/extra/yassl/taocrypt/include/file.hpp 2007-03-15 03:15:11 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.9/extra/yassl/taocrypt/include/hash.hpp 2007-03-20 22:43:58 +01:00
+++ 1.10/extra/yassl/taocrypt/include/hash.hpp 2007-03-20 22:43:58 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.9/extra/yassl/taocrypt/include/hmac.hpp 2007-03-15 03:15:12 +01:00
+++ 1.10/extra/yassl/taocrypt/include/hmac.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.13/extra/yassl/taocrypt/include/integer.hpp 2006-10-05 05:18:12 +02:00
+++ 1.14/extra/yassl/taocrypt/include/integer.hpp 2007-10-05 01:29:27 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -109,13 +109,6 @@ namespace TaoCrypt {
typedef WordBlock AlignedWordBlock;
#endif
-
-// general MIN
-template<typename T> inline
-const T& min(const T& a, const T& b)
-{
- return a < b ? a : b;
-}
// general MAX
--- 1.3/extra/yassl/taocrypt/include/md2.hpp 2006-07-12 21:15:03 +02:00
+++ 1.4/extra/yassl/taocrypt/include/md2.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.5/extra/yassl/taocrypt/include/md5.hpp 2006-10-05 23:32:32 +02:00
+++ 1.6/extra/yassl/taocrypt/include/md5.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.18/extra/yassl/taocrypt/include/misc.hpp 2007-03-20 22:43:58 +01:00
+++ 1.19/extra/yassl/taocrypt/include/misc.hpp 2007-10-05 01:29:27 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -441,7 +441,9 @@ template<> inline word32 rotrFixed(word3
#undef min
#endif
-inline word32 min(word32 a, word32 b)
+
+template <class T>
+inline const T& min(const T& a, const T& b)
{
return a < b ? a : b;
}
@@ -583,7 +585,8 @@ inline void GetUserKey(ByteOrder order,
#ifdef _MSC_VER
// disable conversion warning
- #pragma warning(disable:4244)
+ // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+ #pragma warning(disable:4244 4996)
#endif
--- 1.6/extra/yassl/taocrypt/include/modarith.hpp 2007-03-15 03:15:12 +01:00
+++ 1.7/extra/yassl/taocrypt/include/modarith.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.11/extra/yassl/taocrypt/include/modes.hpp 2007-03-15 03:15:12 +01:00
+++ 1.12/extra/yassl/taocrypt/include/modes.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.4/extra/yassl/taocrypt/include/random.hpp 2006-07-12 21:15:03 +02:00
+++ 1.5/extra/yassl/taocrypt/include/random.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.5/extra/yassl/taocrypt/include/ripemd.hpp 2006-10-05 23:32:32 +02:00
+++ 1.6/extra/yassl/taocrypt/include/ripemd.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.7/extra/yassl/taocrypt/include/rsa.hpp 2007-03-15 03:15:12 +01:00
+++ 1.8/extra/yassl/taocrypt/include/rsa.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.17/extra/yassl/taocrypt/include/runtime.hpp 2006-07-12 21:15:03 +02:00
+++ 1.18/extra/yassl/taocrypt/include/runtime.hpp 2007-10-03 22:36:45 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -37,7 +37,7 @@
namespace __Crun {
static void pure_error(void)
{
- assert("Pure virtual method called." == "Aborted");
+ assert(0); // "Pure virtual method called, Aborted", GCC 4.2 str cmp fix
}
} // namespace __Crun
--- 1.6/extra/yassl/taocrypt/include/sha.hpp 2007-03-20 22:43:58 +01:00
+++ 1.7/extra/yassl/taocrypt/include/sha.hpp 2007-03-20 22:43:58 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.6/extra/yassl/taocrypt/include/type_traits.hpp 2007-03-15 03:15:12 +01:00
+++ 1.7/extra/yassl/taocrypt/include/type_traits.hpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.12/extra/yassl/taocrypt/include/types.hpp 2007-03-20 22:43:58 +01:00
+++ 1.13/extra/yassl/taocrypt/include/types.hpp 2007-03-20 22:43:58 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.8/extra/yassl/taocrypt/src/aes.cpp 2007-03-15 03:15:12 +01:00
+++ 1.9/extra/yassl/taocrypt/src/aes.cpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.6/extra/yassl/taocrypt/src/aestables.cpp 2006-07-12 21:15:03 +02:00
+++ 1.7/extra/yassl/taocrypt/src/aestables.cpp 2007-03-15 03:15:12 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.15/extra/yassl/taocrypt/src/algebra.cpp 2007-03-15 03:15:12 +01:00
+++ 1.16/extra/yassl/taocrypt/src/algebra.cpp 2007-10-05 01:29:27 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -288,7 +288,7 @@ void AbstractGroup::SimultaneousMultiply
r = buckets[i][buckets[i].size()-1];
if (buckets[i].size() > 1)
{
- for (int j = buckets[i].size()-2; j >= 1; j--)
+ for (size_t j = buckets[i].size()-2; j >= 1; j--)
{
Accumulate(buckets[i][j], buckets[i][j+1]);
Accumulate(r, buckets[i][j]);
--- 1.7/extra/yassl/taocrypt/src/arc4.cpp 2006-10-05 23:32:32 +02:00
+++ 1.8/extra/yassl/taocrypt/src/arc4.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.15/extra/yassl/taocrypt/src/asn.cpp 2007-03-15 03:15:16 +01:00
+++ 1.16/extra/yassl/taocrypt/src/asn.cpp 2007-12-24 00:28:42 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -213,7 +213,7 @@ void PublicKey::AddToEnd(const byte* dat
Signer::Signer(const byte* k, word32 kSz, const char* n, const byte* h)
: key_(k, kSz)
{
- int sz = strlen(n);
+ size_t sz = strlen(n);
memcpy(name_, n, sz);
name_[sz] = 0;
@@ -584,20 +584,18 @@ word32 CertDecoder::GetAlgoId()
while(length--)
oid += source_.next(); // just sum it up for now
- if (oid != SHAwDSA && oid != DSAk) {
- b = source_.next(); // should have NULL tag and 0
-
- if (b != TAG_NULL) {
- source_.SetError(TAG_NULL_E);
- return 0;
- }
-
+ // could have NULL tag and 0 terminator, but may not
+ b = source_.next();
+ if (b == TAG_NULL) {
b = source_.next();
if (b != 0) {
source_.SetError(EXPECT_0_E);
return 0;
}
}
+ else
+ // go back, didn't have it
+ b = source_.prev();
return oid;
}
--- 1.8/extra/yassl/taocrypt/src/coding.cpp 2007-05-03 19:31:49 +02:00
+++ 1.9/extra/yassl/taocrypt/src/coding.cpp 2007-05-03 19:31:49 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.6/extra/yassl/taocrypt/src/des.cpp 2006-10-05 05:18:12 +02:00
+++ 1.7/extra/yassl/taocrypt/src/des.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.9/extra/yassl/taocrypt/src/dh.cpp 2006-08-16 01:36:33 +02:00
+++ 1.10/extra/yassl/taocrypt/src/dh.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.7/extra/yassl/taocrypt/src/dsa.cpp 2006-07-12 21:15:03 +02:00
+++ 1.8/extra/yassl/taocrypt/src/dsa.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.5/extra/yassl/taocrypt/src/file.cpp 2006-07-12 21:15:03 +02:00
+++ 1.6/extra/yassl/taocrypt/src/file.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.6/extra/yassl/taocrypt/src/hash.cpp 2007-03-20 22:43:58 +01:00
+++ 1.7/extra/yassl/taocrypt/src/hash.cpp 2007-03-20 22:43:58 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.31/extra/yassl/taocrypt/src/integer.cpp 2007-03-23 16:30:14 +01:00
+++ 1.32/extra/yassl/taocrypt/src/integer.cpp 2007-03-23 16:30:14 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.3/extra/yassl/taocrypt/src/md2.cpp 2006-07-12 21:15:03 +02:00
+++ 1.4/extra/yassl/taocrypt/src/md2.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.7/extra/yassl/taocrypt/src/md5.cpp 2006-10-05 23:32:32 +02:00
+++ 1.8/extra/yassl/taocrypt/src/md5.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.21/extra/yassl/taocrypt/src/misc.cpp 2007-04-11 19:34:46 +02:00
+++ 1.22/extra/yassl/taocrypt/src/misc.cpp 2007-04-11 19:34:46 +02:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.12/extra/yassl/taocrypt/src/random.cpp 2006-11-02 19:10:43 +01:00
+++ 1.13/extra/yassl/taocrypt/src/random.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.7/extra/yassl/taocrypt/src/ripemd.cpp 2006-10-05 23:32:32 +02:00
+++ 1.8/extra/yassl/taocrypt/src/ripemd.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.9/extra/yassl/taocrypt/src/rsa.cpp 2006-07-12 21:15:04 +02:00
+++ 1.10/extra/yassl/taocrypt/src/rsa.cpp 2007-03-15 03:15:16 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.8/extra/yassl/taocrypt/src/sha.cpp 2007-03-20 22:43:58 +01:00
+++ 1.9/extra/yassl/taocrypt/src/sha.cpp 2007-03-20 22:43:58 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1.13/extra/yassl/taocrypt/src/template_instnt.cpp 2006-08-16 01:36:33 +02:00
+++ 1.14/extra/yassl/taocrypt/src/template_instnt.cpp 2007-03-15 03:15:17 +01:00
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 MySQL AB
+ Copyright (C) 2000-2008 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
| Thread |
|---|
| • bk commit into 5.0 tree (msvensson:1.2462) | msvensson | 14 Feb |