static int test_param_bignum(int n)
{
    unsigned char buf[MAX_LEN], bnbuf[MAX_LEN], le[MAX_LEN];
    const size_t len = raw_values[n].len;
    size_t bnsize;
    BIGNUM *b = NULL, *c = NULL;
    OSSL_PARAM param = OSSL_PARAM_DEFN("bn", OSSL_PARAM_UNSIGNED_INTEGER,
                                       NULL, 0, NULL);
    int ret = 0;
    param.data = bnbuf;
    param.data_size = len;
    param.return_size = &bnsize;
    copy_be_to_native(buf, raw_values[n].value, len);
    swap_copy(le, raw_values[n].value, len);
    if (!TEST_ptr(b = BN_bin2bn(raw_values[n].value, (int)len, NULL)))
        goto err;
    if (!TEST_true(OSSL_PARAM_set_BN(&param, b))
        || !TEST_mem_eq(bnbuf, bnsize, buf, bnsize))
        goto err;
    param.data_size = *param.return_size;
    if (!TEST_true(OSSL_PARAM_get_BN(&param, &c))
        || !TEST_BN_eq(b, c))
        goto err;
    ret = 1;
err:
    BN_free(b);
    BN_free(c);
    return ret;
}
['static int test_param_bignum(int n)\n{\n    unsigned char buf[MAX_LEN], bnbuf[MAX_LEN], le[MAX_LEN];\n    const size_t len = raw_values[n].len;\n    size_t bnsize;\n    BIGNUM *b = NULL, *c = NULL;\n    OSSL_PARAM param = OSSL_PARAM_DEFN("bn", OSSL_PARAM_UNSIGNED_INTEGER,\n                                       NULL, 0, NULL);\n    int ret = 0;\n    param.data = bnbuf;\n    param.data_size = len;\n    param.return_size = &bnsize;\n    copy_be_to_native(buf, raw_values[n].value, len);\n    swap_copy(le, raw_values[n].value, len);\n    if (!TEST_ptr(b = BN_bin2bn(raw_values[n].value, (int)len, NULL)))\n        goto err;\n    if (!TEST_true(OSSL_PARAM_set_BN(&param, b))\n        || !TEST_mem_eq(bnbuf, bnsize, buf, bnsize))\n        goto err;\n    param.data_size = *param.return_size;\n    if (!TEST_true(OSSL_PARAM_get_BN(&param, &c))\n        || !TEST_BN_eq(b, c))\n        goto err;\n    ret = 1;\nerr:\n    BN_free(b);\n    BN_free(c);\n    return ret;\n}']