Hello. I get these errors running the tests on Mandriva Linux Cooker, amd64:
$ make test_ec [...] testing internal curves: ......... EC_GROUP_check() failed with curve secp224r1 . EC_GROUP_check() failed with curve secp384r1 ....... EC_GROUP_check() failed with curve prime256v1 ............................................ EC_GROUP_check() failed with curve wap-wsg-idm-ecid-wtls12 .. failed $ make test_ecdsa test ecdsa ../util/shlib_wrap.sh ./ecdsatest some tests from X9.62: testing prime192v1: .... ok testing prime239v1: .... ok testing c2tnb191v1: .... ok testing c2tnb239v1: .... ok testing ECDSA_sign() and ECDSA_verify() with some internal curves: secp160k1: ....... ok secp160r1: ....... ok secp160r2: ....... ok secp192k1: ....... ok secp224k1: ....... ok secp224r1: failed ECDSA test failed make: *** [test_ecdsa] Error 1 $ make test_ecdh test ecdh ../util/shlib_wrap.sh ./ecdhtest Testing key generation with NIST Prime-Curve P-192 .... ok Testing key generation with NIST Prime-Curve P-224make: *** [test_ecdh] Error 1 System info: Linux kernel 2.6.11 glibc-2.3.4 gcc-3.4.3 All tests passes on i586 and gcc-4.0.1 Additionally I attach one patch by Andreas Hasenack <andreas[at]mandriva[dot]com> that is used by the Brazilian government that I kindly hope you will accept upstream. -- Regards // Oden Eriksson Mandriva: http://www.mandriva.com NUX: http://nux.se
--- crypto/x509v3/v3_alt.c 2005-05-11 05:45:36.000000000 +0200 +++ crypto/x509v3/v3_alt.c.oden 2005-07-05 15:13:32.285682900 +0200 @@ -102,11 +102,55 @@ { unsigned char *p; char oline[256], htmp[5]; + + int rc = 0; + + /* see http://www.iti.gov.br/resolucoes/RESOLU__O_13_DE_26_04_2002.PDF + * for the OID definitions and more details + * All content is ASN.1 OCTET STRING + */ + /* person related */ + const char oid_id_pf[] = "2.16.76.1.3.1"; /* person identification data as follows: + * birth date: ddmmyyyy (8) + * CPF number: (11) + * PIS/PASEP number: (11) + * RG number: (11) + * RG emmitter and state: (6) + */ + const char oid_el_pf[] = "2.16.76.1.3.5"; /* Electoral data: + * card number: (11) + * electoral zone: (3) + * electoral section: (4) + * city and state: (22) + */ + /* company related */ + const char oid_pj_id1[] = "2.16.76.1.3.4"; /* info about the person responsible for the company's certificate: + * birth date: ddmmyyyy (8) + * CPF number: (11) + * PIS/PASEP number: (11) + * RG number: (11) + * RG emitter and state: (6) + */ + const char oid_pj_name[] = "2.16.76.1.3.2"; /* Name of the person responsible for the company's certificate */ + const char oid_pj_cnpj[] = "2.16.76.1.3.3"; /* CNPJ number of the company*/ + int i; switch (gen->type) { case GEN_OTHERNAME: - X509V3_add_value("othername","<unsupported>", &ret); + rc = OBJ_obj2txt(oline, sizeof(oline), gen->d.otherName->type_id, 1); + if (rc) + if ((!strncmp(oline, oid_id_pf, sizeof(oid_id_pf))) || + (!strncmp(oline, oid_el_pf, sizeof(oid_el_pf))) || + (!strncmp(oline, oid_pj_id1, sizeof(oid_pj_id1))) || + (!strncmp(oline, oid_pj_name, sizeof(oid_pj_name))) || + (!strncmp(oline, oid_pj_cnpj, sizeof(oid_pj_cnpj)))) + /* FIXME: is that string always null terminated? */ + X509V3_add_value("othername", gen->d.otherName->value->value.octet_string->data, &ret); + else + X509V3_add_value("othername","<unsupported>", &ret); + else + X509V3_add_value("othername","<unsupported>", &ret); break; case GEN_X400: