title: Determine attributes of an Schannel connection -> returns unknown value
body: <p>After successfully <a href="https://msdn.microsoft.com/en-us/library/aa374782" rel="nofollow">Creating a Secure Connection Using Schannel</a>, I am obtaining its connection attributes using <a href="https://msdn.microsoft.com/en-us/library/aa379340" rel="nofollow">QueryContextAttributes</a>(), passing <code>SECPKG_ATTR_CONNECTION_INFO</code>.</p>
  
  <p>The returned structure <code>SecPkgContext_ConnectionInfo</code> contains the field <code>aiExch</code>, which holds the information I am looking for - namely the used key exchange algorithm.</p>
  
  <p>I am using this for months, and it always returned one of the two predefined values <code>CALG_RSA_KEYX</code> or <code>CALG_DH_EPHEM.</code> But since a couple of weeks (when I believe a Schannel update patch was issued by Microsoft) it returns an unknown value: <code>0x0000ae06</code></p>
  
  <p>Using these macros, the ALG_ID can be split into its components:</p>
  
  <pre><code>#define GET_ALG_CLASS(x)                (x &amp; (7 &lt;&lt; 13))
  #define GET_ALG_TYPE(x)                 (x &amp; (15 &lt;&lt; 9))
  #define GET_ALG_SID(x)                  (x &amp; (511))
  </code></pre>
  
  <p>According to that, <code>0x0000ae06</code> would mean:  </p>
  
  <p>Class: <code>ALG_CLASS_KEY_EXCHANGE</code><br>
  Type: <code>(7 &lt;&lt; 9)</code> -> which is undefined<br>
  SID: <code>6</code> -> whose meaning depends on the type of algorithm  </p>
  
  <p>Anyone ran into the same issue? Can anyone explain what happened, or what <code>0x0000ae06</code> stands for?</p>