Je travaille actuellement avec SChannel pour un serveur asynchrone (IOCP) et la plupart des choses fonctionnent bien, mais j'ai un problème avec la renégociation. En particulier, lorsque l'homologue A envoie un homologue B à une demande de renégociation et que l'homologue B répond avec une alerte TLS1 NO RENEGOTIATION
, comment l'homologue A continue-t-il? Il me semble avoir un contexte invalide au moment où je reçois la réponse SEC_I_NO_RENEGOTIATION
et cela me empêche d'être en mesure de continuer à utiliser le flux ...Traiter avec SEC_I_RENEGOTIATE et TLS1_ALERT_NO_RENEGOTIATION dans SChannel
Mise à jour Je l'ai fait un peu plus de tests et il n » t semble être un contexte invalide, mais je reçois SEC_E_ENCRYPT_FAILURE
du prochain appel à crypter ...
Une demande de renégocier est-elle réellement refusable? Ou est NO RENEGOTIATION
alerte simplement un message d'erreur informatif qui signifie maintenant que la connexion est inutile? Si oui, pourquoi est-il commenté comme étant un «avertissement» plutôt qu'une «erreur»? Nan; le RFC TLS (5246) indique clairement que sa place au pair de décider si nous pouvons continuer après une alerte sans renégociation ...
Mise à jour Il ne fait aucune différence si j'envoie l'alerte TLS en utilisant ApplyControlToken()
...or if I send it using EncryptMessage()
avec SECQOP_WRAP_OOB_DATA
(. Pour la postérité) Il semble que les gens de l'équipe Chrome [le même problème] (http://code.google.com/p/chromium/issues/detail? id = 36835) et ils sont liés à ce problème. –
Je préfèrerais qu'ils aient trouvé une solution;) –