int c1s1::s1_validate_digest(bool& is_valid) { int ret = ERROR_SUCCESS; char* c1_digest = NULL; if ((ret = calc_s1_digest(c1_digest)) != ERROR_SUCCESS) { log_error("validate c1 error, failed to calc digest. ret=%d", ret); return ret; } mAssert(c1_digest != NULL); mAutoFreeArray(char, c1_digest); if (schema == srs_schema0) { is_valid = srs_bytes_equals(block1.digest.digest, c1_digest, 32); } else { is_valid = srs_bytes_equals(block0.digest.digest, c1_digest, 32); } return ret; }
int c1s1::s1_validate_digest(bool& is_valid) { is_valid = false; int ret = ERROR_SUCCESS; char* s1_digest = NULL; if ((ret = calc_s1_digest(s1_digest)) != ERROR_SUCCESS) { srs_error("validate s1 error, failed to calc digest. ret=%d", ret); return ret; } srs_assert(s1_digest != NULL); SrsAutoFree(char, s1_digest); if (schema == srs_schema0) { is_valid = srs_bytes_equals(block1.digest.digest, s1_digest, 32); } else { is_valid = srs_bytes_equals(block0.digest.digest, s1_digest, 32); } return ret; }
int c2s2::s2_validate(c1s1* c1, bool& is_valid) { is_valid = false; int ret = ERROR_SUCCESS; char temp_key[__SRS_OpensslHashSize]; if ((ret = openssl_HMACsha256(c1->get_digest(), 32, SrsGenuineFMSKey, 68, temp_key)) != ERROR_SUCCESS) { srs_error("create s2 temp key failed. ret=%d", ret); return ret; } srs_verbose("generate s2 temp key success."); char _digest[__SRS_OpensslHashSize]; if ((ret = openssl_HMACsha256(random, 1504, temp_key, 32, _digest)) != ERROR_SUCCESS) { srs_error("create s2 digest failed. ret=%d", ret); return ret; } srs_verbose("generate s2 digest success."); is_valid = srs_bytes_equals(digest, _digest, 32); return ret; }