CYKUSHXSDevice v1.0

December 30, 2020 Comments off

Just to let everyone know that v1.0 of CYKUSHXDDevice has been released. This new open source C++ class provides a simple RAII wrapper for programming to the YEPKIT YKUSH XS Switchable USB Hub using the HID API on Windows. This device allows you to programmatically switch a USB device on or off remotely using software.

Categories: Web Site Updates

CPJNSMTPConnection v3.43

December 27, 2020 Comments off

Just to let everyone know that v3.43 of CPJNSMTPConnection has been released. Updates for this version include:

  • Fixed a bug in CPJNMD5Hash::Format where the size of the string was not being set correctly.
  • Reimplemented CPJNMD5Hash::Format using CryptBinaryToString.
  • Reimplemented CPJNMD5 class using CryptoAPI: Next Generation (CNG) instead of the older MS CryptoAPI
  • Renamed CPJNMD5Hash class to CPJNHashResult.
  • Renamed CPJNMD5 class to CPJNHash.
  • Reworked the CPJNHash to support any hash algorithm supported by CNG.
  • Renamed PJNMD5.h module to PJNHash.h.
  • Fixed up usage of ATL Unicode <-> ASCII conversion classes.
Categories: Web Site Updates

HTTPServerWrappers and CPPCThreadPool v1.04

December 27, 2020 Comments off

Just to let everyone know that v1.04 of HTTPServerWrappers and CPPCThreadPool has been released. Updates for this version include:

  • Added a new CServer::ParseDateHeader method to aid decoding HTTP If-Modified-Since headers.
  • Updated the sample HTTP server to support handling If-Modified-Since headers for the sample file request. These are known as Conditional get requests in the HTTP RFC.
Categories: Web Site Updates

CPJNSMTPConnection v3.42

December 24, 2020 Comments off

Just to let everyone know that v3.42 of CPJNSMTPConnection has been released. Updates for this version include:

  • Changed the logic in CPJNSMTPAddress::GetRegularFormat to insert spaces between the friendly part of the email address and the actual email address. This addresses an issue where SpamAssassin applied a "bad" score to emails generated by this code. Thanks to Mathieu Schroeter for reporting this issue.
Categories: Web Site Updates

HTTPServerWrappers and CPPCThreadPool v1.03

December 23, 2020 Comments off

Just to let everyone know that v1.03 of HTTPServerWrappers and CPPCThreadPool has been released. Updates for this version include:

  • Updated the sample app’s cookie authentication example to use SHA256 hashing instead of MD5. In addition the password hashing now uses 16 bytes of salt to increase the cryptographic robustness.
  • Added support for new HttpDelegateRequestEx API available in latest Windows 10 SDK.
Categories: Web Site Updates

FOStation v1.06

December 23, 2020 Comments off

Just to let everyone know that v1.06 of FOStation has been released. Updates for this version include:

  • Updated the logic to determine if the current write address is valid. This change avoids intermittent problems where the code picks up bad write addresses which leads to the rainfall count becoming very large.
Categories: Web Site Updates

HTTPServerWrappers and CPPCThreadPool v1.02

December 22, 2020 Comments off

Just to let everyone know that v1.02 of HTTPServerWrappers and CPPCThreadPool has been released. Updates for this version include:

  • Added new CServer::ParseFormVariables methods to aid parsing application/x-www-form-urlencoded encoded form variables.
  • Added new CServer::DecodeUrlEncodedFormValue methods to aid decoding application/x-www-form-urlencoded encoded form variables.
  • Optimized the code in the sample HTTP server to minimize the time a lock is taken on the session cache in various locations.
  • Removed the use of the explicit ATL namespace in the sample HTTP server so that the MFC CString classes could be used if so desired.
  • Updated the included sample HTTP server to implement a fully worked cookie authentication example.
Categories: Web Site Updates

HTTPServerWrappers and CPPCThreadPool v1.01

December 21, 2020 Comments off

Just to let everyone know that v1.01 of HTTPServerWrappers and CPPCThreadPool has been released. Updates for this version include:

  • Fixed a bug in CThreadPool::OtherQueuesAreEmpty where the return value was being calculated incorrectly. This bug was causing the threads in the thread pool to do busy waits instead of waiting correctly on the "_TasksAvailable" condition variable.
  • Fixed an issue in the CThreadPool constructor where a lock was not taken prior to modifying the _Dones array.
  • Fixed an issue in CThreadPool::pause where a lock was not taken prior to modifying the _Paused variable.
  • Fixed an issue in CThreadPool::resize where a lock was not taken prior to modifying the _Dones array.
  • Added a new override of the CServer::SendResponse method which allows an already initialized HTTP_RESPONSE structure to be provided as a parameter.
  • Provided a new CServer::EqualsSplit method to aid parsing HTTP header values.
  • Provided a new CServer::IsInQuotedString method to aid parsing HTTP header values.
  • Provided a new CServer::HeaderTokenize method to aid parsing HTTP header values.
  • Provided a new CServer::UnquoteHeaderValue method to aid parsing HTTP header values.
  • Provided a new CServer::ParseCookieFromCookieHeader method to aid parsing HTTP cookies.
  • Provided a new CServer::ParseBasicAuthorizationHeader method to aid parsing Basic authentication headers.
  • Provided a new CServer::ParseAuthorizationHeader method to aid parsing NTLM and Negotiate authentication headers.
  • Provided a new CServer::ParseNegotiateAuthorizationHeader method to aid parsing Negotiate authentication headers.
  • Provided a new CServer::ParseNTLMAuthorizationHeader method to aid parsing NTLM authentication headers.
  • Provided a new CServer::DetermineDigestAlgorithm to aid parsing Digest authentication headers.
  • Provided a new CServer::GenerateRandom method to aid generating random data for Digest authentication headers.
  • Provided a new CServer::Hash method to aid generating cryptographic hashes data for Digest authentication headers.
  • Provided new CServer::MD5 methods to aid generating MD5 hashes data for Digest authentication headers.
  • Provided a new CServer::GenerateDigestNonce method to aid generating cryptographic nonces for Digest authentication headers.
  • Provided a new CServer::GenerateDigestHA1 method to aid validating Digest authentication headers.
  • Provided a new CServer::GenerateDigestHA2 method to aid validating Digest authentication headers.
  • Provided a new CServer::GenerateDigestResponse method to aid validating Digest authentication headers.
  • Provided a new CServer::ParseDigestAuthorizationHeader method to aid parsing Digest authentication headers.
  • Provided a new CCredHandle RAII class in CCredHandle.h to encapsulate an SDK CredHandle handle value.
  • Provided a new CSecHandle RAII class in CSecHandle.h to encapsulate an SDK SecHandle handle value.
  • Updated the existing basic authentication code in the included sample HTTP server to log important data to the console.
  • Updated the included sample HTTP server to implement a fully worked NTLM authentication example.
  • Updated the included sample HTTP server to implement a fully worked Negotiate (i.e. NTLM / Kerberbos) authentication example.
  • Updated the included sample HTTP server to implement a fully worked Digest (RFC 7616) authentication example. Please note that the sample code only supports the digest authentication logic supported by the most common web browsers (i.e. Internet Explorer, Firefox, Chrome and Edge). What this means is that only MD5 and MD5-sess is supported and features such as auth-int, SHA-256, SHA-256-sess, SHA-512-256, SHA-512-256-sess, username*, stale & userhash are not implemented.
Categories: Web Site Updates

SQLiteWrappers v1.25

December 5, 2020 Comments off

Just to let everyone know that v1.25 of SQLiteWrappers has been released. Updates for this version include:

  • Updated the code to compile against SQLite 3.34.0. Added support for sqlite3_txn_state.
Categories: Web Site Updates

AA+ v2.21

December 4, 2020 Comments off

Just to let everyone know that v2.21 of AA+ has been released. Updates for this version include:

Categories: Web Site Updates