INNER CODE UNIT · C

msg_len

jedisct1/libsodium-php · libsodium.c:4103

    msg_len = c_len - crypto_secretstream_xchacha20poly1305_ABYTES;
    msg = zend_string_checked_alloc((size_t) msg_len, 0);
    if (crypto_secretstream_xchacha20poly1305_pull
        ((void *) state, (unsigned char *) ZSTR_VAL(msg), &msg_real_len, &tag,
         c, (unsigned long long) c_len, ad, (unsigned long long) ad_len) != 0) {
        zend_string_free(msg);
        RETURN_FALSE;
    }
    if (msg_real_len >= SIZE_MAX || msg_real_len > msg_len) {
        zend_string_free(msg);
        zend_throw_exception(sodium_exception_ce, "arithmetic overflow", 0);
        return;
    }
    PHP_SODIUM_ZSTR_TRUNCATE(msg, (size_t) msg_real_len);
    array_init(return_value);
    add_next_index_str(return_value, msg);
    add_next_index_long(return_value, (long) tag);
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…