
Demonstriert, dass SSLVerifySignedServerKeyExchange() trivial testbar ist.
Dies ist ein kleines Proof-of-Concept, das die verwundbare SSLVerifySignedServerKeyExchange() aus Apples libsecurity_ssl extrahiert, um zu demonstrieren, dass der Signierungscode ohne Weiteres isoliert mit Unit-Tests getestet werden kann.
Auch wenn behauptet wurde, dass dieser Fehler nicht leicht zu testen sei, überprüft der betreffende Code Signaturen anhand einfacher Vorbedingungen und ist sowohl für positive als auch für negative Validierungsfälle problemlos testbar; es gibt keinen Grund und keine Ausrede, ihn nicht vollständig zu testen, und zwar für:
Versuchen Sie, die Unit-Tests selbst auszuführen, und kommentieren Sie dann einfach das fehlerhafte 'goto' aus, um zu sehen, dass die Tests erfolgreich durchlaufen:
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
// goto fail;