build SHA part of certificate verify
| 492 | |
| 493 | // build SHA part of certificate verify |
| 494 | void buildSHA_CertVerify(SSL& ssl, byte* digest) |
| 495 | { |
| 496 | opaque sha_result[SHA_LEN]; |
| 497 | opaque sha_inner[SECRET_LEN + PAD_SHA]; |
| 498 | opaque sha_outer[SECRET_LEN + PAD_SHA + SHA_LEN]; |
| 499 | |
| 500 | const opaque* master_secret = |
| 501 | ssl.getSecurity().get_connection().master_secret_; |
| 502 | |
| 503 | // make sha inner |
| 504 | memcpy(sha_inner, master_secret, SECRET_LEN); |
| 505 | memcpy(&sha_inner[SECRET_LEN], PAD1, PAD_SHA); |
| 506 | |
| 507 | ssl.useHashes().use_SHA().get_digest(sha_result, sha_inner, |
| 508 | sizeof(sha_inner)); |
| 509 | |
| 510 | // make sha outer |
| 511 | memcpy(sha_outer, master_secret, SECRET_LEN); |
| 512 | memcpy(&sha_outer[SECRET_LEN], PAD2, PAD_SHA); |
| 513 | memcpy(&sha_outer[SECRET_LEN + PAD_SHA], sha_result, SHA_LEN); |
| 514 | |
| 515 | ssl.useHashes().use_SHA().get_digest(digest, sha_outer, sizeof(sha_outer)); |
| 516 | } |
| 517 | |
| 518 | |
| 519 | } // namespace for locals |
no test coverage detected