X509_EXTENSION *OCSP_archive_cutoff_new(char *tim)
{
    X509_EXTENSION *x = NULL;
    ASN1_GENERALIZEDTIME *gt = NULL;
    if ((gt = ASN1_GENERALIZEDTIME_new()) == NULL)
        goto err;
    if (!(ASN1_GENERALIZEDTIME_set_string(gt, tim)))
        goto err;
    x = X509V3_EXT_i2d(NID_id_pkix_OCSP_archiveCutoff, 0, gt);
 err:
    ASN1_GENERALIZEDTIME_free(gt);
    return x;
}
['X509_EXTENSION *OCSP_archive_cutoff_new(char *tim)\n{\n    X509_EXTENSION *x = NULL;\n    ASN1_GENERALIZEDTIME *gt = NULL;\n    if ((gt = ASN1_GENERALIZEDTIME_new()) == NULL)\n        goto err;\n    if (!(ASN1_GENERALIZEDTIME_set_string(gt, tim)))\n        goto err;\n    x = X509V3_EXT_i2d(NID_id_pkix_OCSP_archiveCutoff, 0, gt);\n err:\n    ASN1_GENERALIZEDTIME_free(gt);\n    return x;\n}', 'IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_GENERALIZEDTIME)', 'ASN1_STRING *ASN1_STRING_type_new(int type)\n{\n    ASN1_STRING *ret;\n    ret = OPENSSL_zalloc(sizeof(*ret));\n    if (ret == NULL) {\n        ASN1err(ASN1_F_ASN1_STRING_TYPE_NEW, ERR_R_MALLOC_FAILURE);\n        return (NULL);\n    }\n    ret->type = type;\n    return (ret);\n}', 'void *CRYPTO_zalloc(size_t num, const char *file, int line)\n{\n    void *ret = CRYPTO_malloc(num, file, line);\n    if (ret != NULL)\n        memset(ret, 0, num);\n    return ret;\n}', 'void *CRYPTO_malloc(size_t num, const char *file, int line)\n{\n    void *ret = NULL;\n    if (num <= 0)\n        return NULL;\n    allow_customize = 0;\n#ifndef OPENSSL_NO_CRYPTO_MDEBUG\n    if (call_malloc_debug) {\n        CRYPTO_mem_debug_malloc(NULL, num, 0, file, line);\n        ret = malloc(num);\n        CRYPTO_mem_debug_malloc(ret, num, 1, file, line);\n    } else {\n        ret = malloc(num);\n    }\n#else\n    (void)file;\n    (void)line;\n    ret = malloc(num);\n#endif\n#ifndef OPENSSL_CPUID_OBJ\n    if (ret && (num > 2048)) {\n        extern unsigned char cleanse_ctr;\n        ((unsigned char *)ret)[0] = cleanse_ctr;\n    }\n#endif\n    return ret;\n}', 'int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str)\n{\n    ASN1_GENERALIZEDTIME t;\n    t.type = V_ASN1_GENERALIZEDTIME;\n    t.length = strlen(str);\n    t.data = (unsigned char *)str;\n    if (ASN1_GENERALIZEDTIME_check(&t)) {\n        if (s != NULL) {\n            if (!ASN1_STRING_set((ASN1_STRING *)s,\n                                 (unsigned char *)str, t.length))\n                return 0;\n            s->type = V_ASN1_GENERALIZEDTIME;\n        }\n        return (1);\n    } else\n        return (0);\n}', 'int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *d)\n{\n    return asn1_generalizedtime_to_tm(NULL, d);\n}', 'void ASN1_STRING_free(ASN1_STRING *a)\n{\n    if (a == NULL)\n        return;\n    if (!(a->flags & ASN1_STRING_FLAG_NDEF))\n        OPENSSL_free(a->data);\n    if (!(a->flags & ASN1_STRING_FLAG_EMBED))\n        OPENSSL_free(a);\n}']