Пример #1
0
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;
 }