
Demonstrando que SSLVerifySignedServerKeyExchange() é trivialmente testável.
Este é um pequeno proof-of-concept que extrai a vulnerável SSLVerifySignedServerKeyExchange() do libsecurity_ssl da Apple para demonstrar que o código de assinatura é prontamente testável de forma isolada.
Embora tenha havido alguma discussão de que esse bug não era facilmente testado, o código em questão verifica assinaturas com base em pré-condições simples e é prontamente testável tanto para casos de validação positivos quanto negativos; não há razão ou desculpa para que não seja totalmente testado para:
Tente executar os testes unitários você mesmo e, em seguida, basta comentar o 'goto' problemático para ver os testes passarem:
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
// goto fail;