No empty .Rs/.Re
[netbsd-mini2440.git] / crypto / dist / heimdal / lib / hx509 / ChangeLog
blobcb29cee4e18cbded6183f57b5314f7848da12859
1 2008-01-21  Love Hörnquist Åstrand  <lha@it.su.se>
3         * test_soft_pkcs11.c: use func for more C_ functions.
4         
5 2008-01-18  Love Hörnquist Åstrand  <lha@it.su.se>
7         * version-script.map: Export hx509_free_error_string().
9 2008-01-17  Love Hörnquist Åstrand  <lha@it.su.se>
11         * version-script.map: only export C_GetFunctionList
13         * test_soft_pkcs11.c: use C_GetFunctionList
15         * softp11.c: fix comment, remove label.
17         * softp11.c: Add option app-fatal to control if softtoken should
18         abort() on erroneous input from applications.
20 2008-01-16  Love Hörnquist Åstrand  <lha@it.su.se>
22         * test_pkcs11.in: Test password less certificates too
24         * keyset.c: document HX509_CERTS_UNPROTECT_ALL
26         * ks_file.c: Support HX509_CERTS_UNPROTECT_ALL.
28         * hx509.h: Add HX509_CERTS_UNPROTECT_ALL.
30         * test_soft_pkcs11.c: Only log in if needed.
32 2008-01-15  Love Hörnquist Åstrand  <lha@it.su.se>
34         * softp11.c: Support PINs to login to the store.
36         * Makefile.am: add java pkcs11 test
38         * test_java_pkcs11.in: first version of disable java test
40         * softp11.c: Drop unused stuff.
42         * cert.c: Spelling, Add hx509_cert_get_SPKI_AlgorithmIdentifier,
43         remove unused stuff, add hx509_context to some functions.
44         
45         * softp11.c: Add more glue to figure out what keytype this
46         certificate is using.
48 2008-01-14  Love Hörnquist Åstrand  <lha@it.su.se>
50         * test_pkcs11.in: test debug
52         * Add a PKCS11 provider supporting signing and verifing sigatures.
54 2008-01-13  Love Hörnquist Åstrand  <lha@it.su.se>
56         * version-script.map: Replace hx509_name_to_der_name with
57         hx509_name_binary.
59         * print.c: make print_func static
61 2007-12-26  Love Hörnquist Åstrand  <lha@it.su.se>
63         * print.c: doxygen
65         * env.c: doxygen
67         * doxygen.c: add more groups
69         * ca.c: doxygen.
71 2007-12-17  Love Hörnquist Åstrand  <lha@it.su.se>
73         * ca.c: doxygen
75 2007-12-16  Love Hörnquist Åstrand  <lha@it.su.se>
77         * error.c: doxygen
78         
79 2007-12-15  Love Hörnquist Åstrand  <lha@it.su.se>
81         * More documentation
82         
83         * lock.c: Add page referance
85         * keyset.c: some more documentation.
87         * cms.c: Doxygen documentation.
89 2007-12-11  Love Hörnquist Åstrand  <lha@it.su.se>
91         * *.[ch]: More documentation
93 2007-12-09  Love Hörnquist Åstrand  <lha@it.su.se>
95         * handle refcount on NULL.
97         * test_nist_pkcs12.in: drop echo -n, doesn't work with posix sh
99 2007-12-08  Love Hörnquist Åstrand  <lha@it.su.se>
101         * test_nist2.in: Print that this is version 2 of the tests
103         * test_nist.in: Drop printing of $id.
105         * hx509.h: Add HX509_VHN_F_ALLOW_NO_MATCH.
107         * name.c: spelling.
109         * cert.c: make work the doxygen.
111         * name.c: fix doxygen compiling.
113         * Makefile.am: add doxygen.c
115         * doxygen.c: Add doxygen main page.
117         * cert.c: Add doxygen.
119         * revoke.c (_hx509_revoke_ref): new function.
121 2007-11-16  Love Hörnquist Åstrand  <lha@it.su.se>
123         * ks_keychain.c: Check if SecKeyGetCSPHandle needs prototype.
125 2007-08-16  Love Hörnquist Åstrand  <lha@it.su.se>
126         
127         * data/nist-data: Make work on case senstive filesystems too.
128         
129 2007-08-09  Love Hörnquist Åstrand  <lha@it.su.se>
131         * cert.c: match rfc822 contrains better, provide better error
132         strings.
134 2007-08-08  Love Hörnquist Åstrand  <lha@it.su.se>
136         * cert.c: "self-signed doesn't count" doesn't apply to trust
137         anchor certificate.  make trust anchor check consistant.
139         * revoke.c: make compile.
141         * revoke.c (verify_crl): set error strings.
142         
143         * revoke.c (verify_crl): handle with the signer is the
144         CRLsigner (shortcut).
146         * cert.c: Fix NC, comment on how to use _hx509_check_key_usage.
148 2007-08-03  Love Hörnquist Åstrand  <lha@it.su.se>
150         * test_nist2.in, Makefile, test/nist*: Add nist pkits tests. 
152         * revoke.c: Update to use CERT_REVOKED error, shortcut out of OCSP
153         checking when OCSP reply is a revocation reply.
155         * hx509_err.et: Make CERT_REVOKED error OCSP/CRL agnostic.
157         * name.c (_hx509_Name_to_string): make printableString handle
158         space (0x20) diffrences as required by rfc3280.
160         * revoke.c: Search for the right issuer when looking for the
161         issuer of the CRL signer.
163 2007-08-02  Love Hörnquist Åstrand  <lha@it.su.se>
165         * revoke.c: Handle CRL signing certificate better, try to not
166         revalidate invalid CRLs over and over.
168 2007-08-01  Love Hörnquist Åstrand  <lha@it.su.se>
170         * cms.c: remove stale comment.
172         * test_nist.in: Unpack PKITS_data.zip and run tests.
173         
174         * test_nist_cert.in: Adapt to new nist pkits framework.
176         * test_nist_pkcs12.in: Adapt to new nist pkits framework.
178         * Makefile.am: clean PKITS_data
180 2007-07-16  Love Hörnquist Åstrand  <lha@it.su.se>
182         * Makefile.am: Add version-script.map to EXTRA_DIST
184 2007-07-12  Love Hörnquist Åstrand  <lha@it.su.se>
186         * Makefile.am: Add depenency on asn1_compile for asn1 built files.
187         
188 2007-07-10  Love Hörnquist Åstrand  <lha@it.su.se>
190         * peer.c: update (c), indent.
192         * Makefile.am: New library version.
194 2007-06-28  Love Hörnquist Åstrand  <lha@it.su.se>
196         * ks_p11.c: Add sha2 types.
198         * ref/pkcs11.h: Sync with scute.
200         * ref/pkcs11.h: Add sha2 CKM's.
202         * print.c: Print authorityInfoAccess.
204         * cert.c: Rename proxyCertInfo oid.
206         * ca.c: Rename proxyCertInfo oid.
208         * print.c: Rename proxyCertInfo oid.
209         
210 2007-06-26  Love Hörnquist Åstrand  <lha@it.su.se>
212         * test_ca.in: Adapt to new request handling.
214         * req.c: Allow export some of the request parameters.
216         * hxtool-commands.in: Adapt to new request handling.
218         * hxtool.c: Adapt to new request handling.
220         * test_req.in: Adapt to new request handling.
222         * version-script.map: Add initialize_hx_error_table_r.
224         * req.c: Move _hx509_request_print here.
226         * hxtool.c: use _hx509_request_print
228         * version-script.map: Export more crap^W semiprivate functions.
230         * hxtool.c: don't _hx509_abort
232         * version-script.map: add missing ;
234 2007-06-25  Love Hörnquist Åstrand  <lha@it.su.se>
236         * cms.c: Use hx509_crypto_random_iv.
238         * crypto.c: Split out the iv creation from hx509_crypto_encrypt
239         since _hx509_pbe_encrypt needs to use the iv from the s2k
240         function.
242         * test_cert.in: Test PEM and DER FILE writing functionallity.
244         * ks_file.c: Add writing DER certificates.
246         * hxtool.c: Update to new hx509_pem_write().
248         * test_cms.in: test creation of PEM signeddata.
250         * hx509.h: PEM struct/function declarations.
252         * ks_file.c: Use PEM encoding/decoding functions.
254         * file.c: PEM encode/decoding functions.
256         * ks_file.c: Use hx509_pem_write.
258         * version-script.map: Export some semi-private functions.
260         * hxtool.c: Enable writing out signed data as a pem attachment.
262         * hxtool-commands.in (cms-create-signed): add --pem
264         * file.c (hx509_pem_write): Add.
266         * test_ca.in: Issue and test null subject cert.
268         * cert.c: Match is first component is in a CN=.
270         * test_ca.in: Test hostname if first CN.
272         * Makefile.am: Add version script.
274         * version-script.map: Limited exported symbols.
276         * test_ca.in: test --hostname.
278         * test_chain.in: test max-depth
280         * hx509.h: fixate HX509_HN_HOSTNAME at 0.
282         * hxtool-commands.in: add --hostname add --max-depth
284         * cert.c: Verify hostname and max-depth.
286         * hxtool.c: Verify hostname and test max-depth.
288 2007-06-24  Love Hörnquist Åstrand  <lha@it.su.se>
290         * test_cms.in: Test --id-by-name.
292         * hxtool-commands.in: add cms-create-sd --id-by-name
294         * hxtool.c: Use HX509_CMS_SIGATURE_ID_NAME.
296         * cms.c: Implement and use HX509_CMS_SIGATURE_ID_NAME.
298         * hx509.h: Add HX509_CMS_SIGATURE_ID_NAME, use subject name for
299         CMS.Identifier.  hx509_hostname_type: add hostname type for
300         matching.
302         * cert.c (match_general_name): more strict rfc822Name matching.
303         (hx509_verify_hostname): add hostname type for matching.
305 2007-06-19  Love Hörnquist Åstrand  <lha@it.su.se>
307         * hxtool.c: Make compile again.
309         * hxtool.c: Added peap-server for to make windows peap clients
310         happy.
312         * hxtool.c: Unify parse_oid code.
314         * hxtool.c: Implement --content-type.
316         * hxtool-commands.in: Add content-type.
318         * test_cert.in: more cert and keyset tests.
320 2007-06-18  Love Hörnquist Åstrand  <lha@it.su.se>
322         * revoke.c: Avoid stomping on NULL.
324         * revoke.c: Avoid reusing i.
326         * cert.c: Provide __attribute__ for _hx509_abort.
328         * ks_file.c: Fail if not finding iv.
330         * keyset.c: Avoid useing freed memory.
332         * crypto.c: Free memory in failure case.
334         * crypto.c: Free memory in failure case.
336 2007-06-12  Love Hörnquist Åstrand  <lha@it.su.se>
338         * *.c: Add hx509_cert_init_data and use everywhere
340         * hx_locl.h: Now that KEYCHAIN:system-anchors is fast again, use
341         that.
343         * ks_keychain.c: Implement trust anchor support with
344         SecTrustCopyAnchorCertificates.
346         * keyset.c: Set ref to 1 for the new object.
348         * cert.c: Fix logic for allow_default_trust_anchors
350         * keyset.c: Add refcounting to keystores.
352         * cert.c: Change logic for default trust anchors, make it be
353         either default trust anchor, the user supplied, or non at all.
355 2007-06-08  Love Hörnquist Åstrand  <lha@it.su.se>
357         * Makefile.am: Add data/j.pem.
359         * Makefile.am: Add test_windows.in.
360         
361 2007-06-06  Love Hörnquist Åstrand  <lha@it.su.se>
363         * ks_keychain.c: rename functions, leaks less memory and more
364         paranoia.
366         * test_cms.in: Test cms peer-alg.
368         * crypto.c (rsa_create_signature): make oid_id_pkcs1_rsaEncryption
369         mean rsa-with-sha1 but oid oid_id_pkcs1_rsaEncryption in algorithm
370         field.  XXX should probably use another algorithmIdentifier for
371         this.
373         * peer.c: Make free function return void.
375         * cms.c (hx509_cms_create_signed_1): Use hx509_peer_info to select
376         the signature algorithm too.
378         * hxtool-commands.in: Add cms-create-sd --peer-alg.
380         * req.c: Use _hx509_crypto_default_sig_alg.
382         * test_windows.in: Create crl, because everyone needs one.
384         * Makefile.am: add wcrl.crl
385         
386 2007-06-05  Love Hörnquist Åstrand  <lha@it.su.se>
388         * hx_locl.h: Disable KEYCHAIN for now, its slow.
390         * cms.c: When we are not using pkcs7-data, avoid seing
391         signedAttributes since some clients get upset by that (pkcs7 based
392         or just plain broken).
394         * ks_keychain.c: Provide rsa signatures.
396         * ks_keychain.c: Limit the searches to the selected keychain.
398         * ks_keychain.c: include -framework Security specific header files
399         after #ifdef
401         * ks_keychain.c: Find and attach private key (does not provide
402         operations yet though).
404         * ks_p11.c: Prefix rsa method with p11_
406         * ks_keychain.c: Allow opening a specific chain, making "system"
407         special and be the system X509Anchors file. By not specifing any
408         keychain ("KEYCHAIN:"), all keychains are probed.
409         
410 2007-06-04  Love Hörnquist Åstrand  <lha@it.su.se>
412         * hxtool.c (verify): Friendlier error message.
414         * cert.c: Read in and use default trust anchors if they exists.
416         * hx_locl.h: Add concept of default_trust_anchors.
418         * ks_keychain.c: Remove err(), remove extra empty comment, fix
419         _iter function.
421         * error.c (hx509_get_error_string): if the error code is not the
422         one we expect, punt and use the default com_err/strerror string
423         instead.
425         * keyset.c (hx509_certs_merge): its ok to merge in the NULL set of
426         certs.
428         * test_windows.in: Fix status string.
430         * ks_p12.c (store_func): free whole CertBag, not just the data
431         part.
432         
433         * print.c: Check that the self-signed cert is really self-signed.
435         * print.c: Use selfsigned for CRL DP whine, tell if its a
436         self-signed.
438         * print.c: Whine if its a non CA/proxy and doesn't have CRL DP.
440         * ca.c: Add cRLSign to CA certs.
442         * cert.c: Register NULL and KEYCHAIN.
444         * ks_null.c: register the NULL keystore.
446         * Makefile.am: Add ks_keychain.c and related libs.
448         * test_crypto.in: Print certificate with utf8.
450         * print.c: Leak less memory.
452         * hxtool.c: Leak less memory.
454         * print.c: Leak less memory, use functions that does same but
455         more.
457         * name.c (quote_string): don't sign extend the (signed) char to
458         avoid printing too much, add an assert to check that we didn't
459         overrun the buffer.
461         * name.c: Use right element out of the CHOICE for printableString
462         and utf8String
464         * ks_keychain.c: Certificate only KeyChain backend.
466         * name.c: Reset name before parsing it.
467         
468 2007-06-03  Love Hörnquist Åstrand  <lha@it.su.se>
469         
470         * revoke.c (hx509_crl_*): fix sizeof() mistakes to fix memory
471         corruption.
473         * hxtool.c: Add lifetime to crls.
475         * hxtool-commands.in: Add lifetime to crls.
477         * revoke.c: Add lifetime to crls.
479         * test_ca.in: More crl checks.
481         * revoke.c: Add revoking certs.
483         * hxtool-commands.in: argument is certificates.. for crl-sign
485         * hxtool.c (certificate_copy): free lock
487         * revoke.c: Fix hx509_set_error_string calls, add
488         hx509_crl_add_revoked_certs(), implement hx509_crl_{alloc,free}.
490         * hxtool.c (crl_sign): free lock
492         * cert.c (hx509_context_free): free querystat
493         
494 2007-06-02  Love Hörnquist Åstrand  <lha@it.su.se>
496         * test_chain.in: test ocsp-verify
497         
498         * revoke.c (hx509_ocsp_verify): explain what its useful for and
499         provide sane error message.
501         * hx509_err.et: New error code, CERT_NOT_IN_OCSP
503         * hxtool.c: New command ocsp-verify, check if ocsp contains all
504         certs and are valid (exist and non expired).
506         * hxtool-commands.in: New command ocsp-verify.
507         
508 2007-06-01  Love Hörnquist Åstrand  <lha@it.su.se>
510         * test_ca.in: Create crl and verify that is works.
512         * hxtool.c: Sign CRL command.
514         * hx509.h: Add hx509_crl.
516         * hxtool-commands.in: Add crl-sign commands.
518         * revoke.c: Support to generate an empty CRL.
520         * tst-crypto-select2: Switched default types.
522         * tst-crypto-select1: Switched default types.
524         * ca.c: Use default AlgorithmIdentifier.
526         * cms.c: Use default AlgorithmIdentifier.
528         * crypto.c: Provide default AlgorithmIdentifier and use them.
530         * hx_locl.h: Provide default AlgorithmIdentifier.
532         * keyset.c (hx509_certs_find): collects stats for queries.
534         * cert.c: Sort and print more info.
536         * hx_locl.h: Add querystat to hx509_context.
538         * test_*.in: sprinle stat saveing
540         * Makefile.am: Add stat and objdir.
542         * collector.c (_hx509_collector_alloc): return error code instead
543         of pointer.
545         * hxtool.c: Add statistic hook.
547         * ks_file.c: Update _hx509_collector_alloc prototype.
549         * ks_p12.c: Update _hx509_collector_alloc prototype.
551         * ks_p11.c: Update _hx509_collector_alloc prototype.
553         * hxtool-commands.in: Add statistics hook.
555         * cert.c: Statistics printing.
557         * ks_p12.c: plug memory leak
559         * ca.c (hx509_ca_tbs_add_crl_dp_uri): plug memory leak
560         
561 2007-05-31  Love Hörnquist Åstrand  <lha@it.su.se>
563         * print.c: print utf8 type SAN's
565         * Makefile.am: Fix windows client cert name.
567         * test_windows.in: Add crl-uri for the ee certs.
569         * print.c: Printf formating.
571         * ca.c: Add glue for adding CRL dps.
573         * test_ca.in: Readd the crl adding code, it works (somewhat) now.
575         * print.c: Fix printing of CRL DPnames (I hate IMPLICIT encoded
576         structures).
578         * hxtool-commands.in: make ca and alias of certificate-sign
579         
580 2007-05-30  Love Hörnquist Åstrand  <lha@it.su.se>
582         * crypto.c (hx509_crypto_select): copy AI to the right place.
584         * hxtool-commands.in: Add ca --ms-upn.
586         * hxtool.c: add --ms-upn and add more EKU's for pk-init client.
588         * ca.c: Add hx509_ca_tbs_add_san_ms_upn and refactor code.
590         * test_crypto.in: Resurect killed e.
592         * test_crypto.in: check for aes256-cbc
594         * tst-crypto-select7: check for aes256-cbc
596         * test_windows.in: test windows stuff
598         * hxtool.c: add ca --domain-controller option, add secret key
599         option to avaible.
601         * ca.c: Add hx509_ca_tbs_set_domaincontroller.
603         * hxtool-commands.in: add ca --domain-controller
605         * hxtool.c: hook for testing secrety key algs
607         * crypto.c: Add selection code for secret key crypto.
609         * hx509.h: Add HX509_SELECT_SECRET_ENC.
610         
611 2007-05-13  Love Hörnquist Åstrand  <lha@it.su.se>
612         
613         * ks_p11.c: add more mechtypes
614         
615 2007-05-10  Love Hörnquist Åstrand  <lha@it.su.se>
616         
617         * print.c: Indent.
619         * hxtool-commands.in: add test-crypto command
621         * hxtool.c: test crypto command
623         * cms.c (hx509_cms_create_signed_1): if no eContentType is given,
624         use pkcs7-data.
626         * print.c: add Netscape cert comment
628         * crypto.c: Try both the empty password and the NULL
629         password (nothing vs the octet string \x00\x00).
631         * print.c: Add some US Fed PKI oids.
633         * ks_p11.c: Add some more hashes.
634         
635 2007-04-24  Love Hörnquist Åstrand  <lha@it.su.se>
637         * hxtool.c (crypto_select): stop memory leak
638         
639 2007-04-19  Love Hörnquist Åstrand  <lha@it.su.se>
641         * peer.c (hx509_peer_info_free): free memory used too
643         * hxtool.c (crypto_select): only free peer if it was used.
644         
645 2007-04-18  Love Hörnquist Åstrand  <lha@it.su.se>
647         * hxtool.c: free template
649         * ks_mem.c (mem_free): free key array too
651         * hxtool.c: free private key and tbs
653         * hxtool.c (hxtool_ca): free signer
655         * hxtool.c (crypto_available): free peer too.
657         * ca.c (get_AuthorityKeyIdentifier): leak less memory
659         * hxtool.c (hxtool_ca): free SPKI
661         * hxtool.c (hxtool_ca): free cert
663         * ks_mem.c (mem_getkeys): allocate one more the we have elements
664         so its possible to store the NULL pointer at the end.
665         
666 2007-04-16  Love Hörnquist Åstrand  <lha@it.su.se>
667         
668         * Makefile.am: CLEANFILES += cert-null.pem cert-sub-ca2.pem
669         
670 2007-02-05  Love Hörnquist Åstrand  <lha@it.su.se>
671         
672         * ca.c: Disable CRLDistributionPoints for now, its IMPLICIT code
673         in the asn1 parser.
675         * print.c: Add some more \n's.
676         
677 2007-02-03  Love Hörnquist Åstrand  <lha@it.su.se>
678         
679         * file.c: Allow mapping using heim_octet_string.
681         * hxtool.c: Add options to generate detached signatures.
683         * cms.c: Add flags to generate detached signatures.
685         * hx509.h: Flag to generate detached signatures.
687         * test_cms.in: Support detached sigatures.
689         * name.c (hx509_general_name_unparse): unparse the other
690         GeneralName nametypes.
692         * print.c: Use less printf. Use hx509_general_name_unparse.
694         * cert.c: Fix printing and plug leak-on-error.
695         
696 2007-01-31  Love Hörnquist Åstrand  <lha@it.su.se>
697         
698         * test_ca.in: Add test for ca --crl-uri.
700         * hxtool.c: Add ca --crl-uri.
702         * hxtool-commands.in: add ca --crl-uri
704         * ca.c: Code to set CRLDistributionPoints in certificates.
706         * print.c: Check CRLDistributionPointNames.
708         * name.c (hx509_general_name_unparse): function for unparsing
709         GeneralName, only supports GeneralName.URI
711         * cert.c (is_proxy_cert): free info if we wont return it.
712         
713 2007-01-30  Love Hörnquist Åstrand  <lha@it.su.se>
714         
715         * hxtool.c: Try to help how to use this command.
716         
717 2007-01-21  Love Hörnquist Åstrand  <lha@it.su.se>
718         
719         * switch to sha256 as default digest for signing
721 2007-01-20  Love Hörnquist Åstrand  <lha@it.su.se>
723         * test_ca.in: Really test sub-ca code, add basic constraints tests
724         
725 2007-01-17  Love Hörnquist Åstrand  <lha@it.su.se>
726         
727         * Makefile.am: Fix makefile problem.
728         
729 2007-01-16  Love Hörnquist Åstrand  <lha@it.su.se>
731         * hxtool.c: Set num of bits before we generate the key.
732         
733 2007-01-15  Love Hörnquist Åstrand  <lha@it.su.se>
734         
735         * cms.c (hx509_cms_create_signed_1): use hx509_cert_binary
737         * ks_p12.c (store_func): use hx509_cert_binary
739         * ks_file.c (store_func): use hx509_cert_binary
741         * cert.c (hx509_cert_binary): return binary encoded
742         certificate (DER format)
743         
744 2007-01-14  Love Hörnquist Åstrand  <lha@it.su.se>
745         
746         * ca.c (hx509_ca_tbs_subject_expand): new function.
748         * name.c (hx509_name_expand): if env is NULL, return directly
750         * test_ca.in: test template handling
752         * hx509.h: Add template flags.
754         * Makefile.am: clean out new files
756         * hxtool.c: Add certificate template processing, fix hx509_err
757         usage.
759         * hxtool-commands.in: Add certificate template processing.
761         * ca.c: Add certificate template processing. Fix return messages
762         from hx509_ca_tbs_add_eku.
764         * cert.c: Export more stuff from certificate.
765         
766 2007-01-13  Love Hörnquist Åstrand  <lha@it.su.se>
768         * ca.c: update (c)
770         * ca.c: (hx509_ca_tbs_add_eku): filter out dups.
771         
772         * hxtool.c: Add type email and add email eku when using option
773         --email.
775         * Makefile.am: add env.c
777         * name.c: Remove abort, add error handling.
779         * test_name.c: test name expansion
781         * name.c: add hx509_name_expand
783         * env.c: key-value pair help functions
784         
785 2007-01-12  Love Hörnquist Åstrand  <lha@it.su.se>
786         
787         * ca.c: Don't issue certs with subject DN that is NULL and have no
788         SANs
790         * print.c: Fix previous test.
792         * print.c: Check there is a SAN if subject DN is NULL.
794         * test_ca.in: test email, null subject dn
796         * hxtool.c: Allow setting parameters to private key generation.
798         * hx_locl.h: Allow setting parameters to private key generation.
800         * crypto.c: Allow setting parameters to private key generation.
802         * hxtool.c (eval_types): add jid if user gave one
804         * hxtool-commands.in (certificate-sign): add --jid
806         * ca.c (hx509_ca_tbs_add_san_jid): Allow adding
807         id-pkix-on-xmppAddr OtherName.
809         * print.c: Print id-pkix-on-xmppAddr OtherName.
810         
811 2007-01-11  Love Hörnquist Åstrand  <lha@it.su.se>
812         
813         * no random, no RSA/DH tests
815         * hxtool.c (info): print status of random generator
817         * Makefile.am: remove files created by tests
819         * error.c: constify
821         * name.c: constify
823         * revoke.c: constify
825         * hx_locl.h: constify
827         * keyset.c: constify
829         * ks_p11.c: constify
831         * hx_locl.h: make printinfo char * argument const.
833         * cms.c: move _hx509_set_digest_alg from cms.c to crypto.c since
834         its only used there.
836         * crypto.c: remove no longer used stuff, move set_digest_alg here
837         from cms.c since its only used here.
839         * Makefile.am: add data/test-nopw.p12 to EXTRA_DIST
840         
841 2007-01-10  Love Hörnquist Åstrand  <lha@it.su.se>
842         
843         * print.c: BasicConstraints vs criticality bit is complicated and
844         not really possible to evaluate on its own, silly RFC3280.
846         * ca.c: Make basicConstraints critical if this is a CA.
848         * print.c: fix the version vs extension test
850         * print.c: More validation checks.
852         * name.c (hx509_name_cmp): add
853         
854 2007-01-09  Love Hörnquist Åstrand  <lha@it.su.se>
856         * ks_p11.c (collect_private_key): Missing CKA_MODULUS is ok
857         too (XXX why should these be fetched given they are not used).
859         * test_ca.in: rename all files to PEM files, since that is what
860         they are.
862         * hxtool.c: copy out the key with the self signed CA cert
864         * Factor out private key operation out of the signing, operations,
865         support import, export, and generation of private keys. Add
866         support for writing PEM and PKCS12 files with private keys in them.
868         * data/gen-req.sh: Generate a no password pkcs12 file.
869         
870 2007-01-08  Love Hörnquist Åstrand  <lha@it.su.se>
872         * cms.c: Check for internal ASN1 encoder error.
873         
874 2007-01-05  Love Hörnquist Åstrand  <lha@it.su.se>
875         
876         * Makefile.am: Drop most of the pkcs11 files.
878         * test_ca.in: test reissueing ca certificate (xxx time
879         validAfter).
881         * hxtool.c: Allow setting serialNumber (needed for reissuing
882         certificates) Change --key argument to --out-key.
884         * hxtool-commands.in (issue-certificate): Allow setting
885         serialNumber (needed for reissuing certificates), Change --key
886         argument to --out-key.
888         * ref: Replace with Marcus Brinkmann of g10 Code GmbH pkcs11
889         headerfile that is compatible with GPL (file taken from scute)
891 2007-01-04  Love Hörnquist Åstrand  <lha@it.su.se>
893         * test_ca.in: Test to generate key and use them.
895         * hxtool.c: handle other keys the pkcs10 requested keys
897         * hxtool-commands.in: add generate key commands
899         * req.c (_hx509_request_to_pkcs10): PKCS10 needs to have a subject
901         * hxtool-commands.in: Spelling.
903         * ca.c (hx509_ca_tbs_set_proxy): allow negative pathLenConstraint
904         to signal no limit
906         * ks_file.c: Try all formats on the binary file before giving up,
907         this way we can handle binary rsa keys too.
909         * data/key2.der: new test key
911 2007-01-04  David Love  <fx@gnu.org>
913         * Makefile.am (hxtool_LDADD): Add libasn1.la
915         * hxtool.c (pcert_verify): Fix format string.
917 2006-12-31  Love Hörnquist Åstrand  <lha@it.su.se>
919         * hxtool.c: Allow setting path length
921         * cert.c: Fix test for proxy certs chain length, it was too
922         restrictive.
923         
924         * data: regen
925         
926         * data/openssl.cnf: (proxy_cert) make length 0
928         * test_ca.in: Issue a long living cert.
930         * hxtool.c: add --lifetime to ca command.
932         * hxtool-commands.in: add --lifetime to ca command.
934         * ca.c: allow setting notBefore and notAfter.
936         * test_ca.in: Test generation of proxy certificates.
938         * ca.c: Allow generation of proxy certificates, always include
939         BasicConstraints, fix error codes.
941         * hxtool.c: Allow generation of proxy certificates.
943         * test_name.c: make hx509_parse_name take a hx509_context.
945         * name.c: Split building RDN to a separate function.
946         
947 2006-12-30  Love Hörnquist Åstrand  <lha@it.su.se>
948         
949         * Makefile.am: clean test_ca files.
951         * test_ca.in: test issuing self-signed and CA certificates.
953         * hxtool.c: Add bits to allow issuing self-signed and CA
954         certificates.
956         * hxtool-commands.in: Add bits to allow issuing self-signed and CA
957         certificates.
959         * ca.c: Add bits to allow issuing CA certificates.
961         * revoke.c: use new OCSPSigning.
963         * ca.c: Add Subject Key Identifier.
965         * ca.c: Add Authority Key Identifier.
966         
967         * cert.c: Locally export _hx509_find_extension_subject_key_id.
968         Handle AuthorityKeyIdentifier where only authorityCertSerialNumber
969         and authorityCertSerialNumber is set.
971         * hxtool-commands.in: Add dnsname and rfc822 SANs.
973         * test_ca.in: Test dnsname and rfc822 SANs.
975         * ca.c: Add dnsname and rfc822 SANs.
977         * hxtool.c: Add dnsname and rfc822 SANs.
979         * test_ca.in: test adding eku, ku and san to the
980         certificate (https and pk-init)
982         * hxtool.c: Add eku, ku and san to the certificate.
984         * ca.c: Add eku, ku and san to the certificate.
986         * hxtool-commands.in: Add --type and --pk-init-principal
988         * ocsp.asn1: remove id-kp-OCSPSigning, its in rfc2459.asn1 now
989         
990 2006-12-29  Love Hörnquist Åstrand  <lha@it.su.se>
992         * ca.c: Add KeyUsage extension.
994         * Makefile.am: add ca.c, add sign-certificate tests.
996         * crypto.c: Add _hx509_create_signature_bitstring.
998         * hxtool-commands.in: Add the sign-certificate tool.
1000         * hxtool.c: Add the sign-certificate tool.
1002         * cert.c: Add HX509_QUERY_OPTION_KU_KEYCERTSIGN.
1004         * hx509.h: Add hx509_ca_tbs and HX509_QUERY_OPTION_KU_KEYCERTSIGN.
1006         * test_ca.in: Basic test of generating a pkcs10 request, signing
1007         it and verifying the chain.
1009         * ca.c: Naive certificate signer.
1010         
1011 2006-12-28  Love Hörnquist Åstrand  <lha@it.su.se>
1012         
1013         * hxtool.c: add hxtool_hex
1014         
1015 2006-12-22  Love Hörnquist Åstrand  <lha@it.su.se>
1016         
1017         * Makefile.am: use top_builddir for libasn1.la
1018         
1019 2006-12-11  Love Hörnquist Åstrand  <lha@it.su.se>
1020         
1021         * hxtool.c (print_certificate): print serial number.
1023         * name.c (no): add S=stateOrProvinceName
1024         
1025 2006-12-09  Love Hörnquist Åstrand  <lha@it.su.se>
1026         
1027         * crypto.c (_hx509_private_key_assign_rsa): set a default sig alg
1029         * ks_file.c (try_decrypt): pass down AlgorithmIdentifier that key
1030         uses to do sigatures so there is no need to hardcode RSA into this
1031         function.
1032         
1033 2006-12-08  Love Hörnquist Åstrand  <lha@it.su.se>
1035         * ks_file.c: Pass filename to the parse functions and use it in
1036         the error messages
1038         * test_chain.in: test proxy cert (third level)
1039         
1040         * hx509_err.et: fix errorstring for PROXY_CERT_NAME_WRONG
1042         * data: regen
1044         * Makefile.am: EXTRA_DIST: add
1045         data/proxy10-child-child-test.{key,crt}
1047         * data/gen-req.sh: Fix names and restrictions on the proxy
1048         certificates
1050         * cert.c: Clairfy and make proxy cert handling work for multiple
1051         levels, before it was too restrictive. More helpful error message.
1052         
1053 2006-12-07  Love Hörnquist Åstrand  <lha@it.su.se>
1054         
1055         * cert.c (check_key_usage): tell what keyusages are missing
1057         * print.c: Split OtherName printing code to a oid lookup and print
1058         function.
1060         * print.c (Time2string): print hour as hour not min
1062         * Makefile.am: CLEANFILES += test
1063         
1064 2006-12-06  Love Hörnquist Åstrand  <lha@it.su.se>
1066         * Makefile.am (EXTRA_DIST): add data/pkinit-proxy* files
1068         * Makefile.am (EXTRA_DIST): add tst-crypto* files
1070         * cert.c (hx509_query_match_issuer_serial): make a copy of the
1071         data
1073         * cert.c (hx509_query_match_issuer_serial): allow matching on
1074         issuer and serial num
1076         * cert.c (_hx509_calculate_path): add flag to allow leaving out
1077         trust anchor
1079         * cms.c (hx509_cms_create_signed_1): when building the path, omit
1080         the trust anchors.
1082         * crypto.c (rsa_create_signature): Abort when signature is longer,
1083         not shorter.
1085         * cms.c: Provide time to _hx509_calculate_path so we don't send no
1086         longer valid certs to our peer.
1088         * cert.c (find_parent): when checking for certs and its not a
1089         trust anchor, require time be in range.
1090         (_hx509_query_match_cert): Add time validity-testing to query mask
1092         * hx_locl.h: add time validity-testing to query mask
1094         * test_cms.in: Tests for CMS SignedData with incomplete chain from
1095         the signer.
1096         
1097 2006-11-28  Love Hörnquist Åstrand  <lha@it.su.se>
1099         * cms.c (hx509_cms_verify_signed): specify what signature we
1100         failed to verify
1101         
1102         * Makefile.am: Depend on LIB_com_err for AIX.
1104         * keyset.c: Remove anther strndup that causes AIX to fall over.
1106         * cert.c: Don't check the trust anchors expiration time since they
1107         are transported out of band, from RFC3820.
1109         * cms.c: sprinkle more error strings
1111         * crypto.c: sprinkle more error strings
1113         * hxtool.c: use unsigned int as counter to fit better with the
1114         asn1 compiler
1116         * crypto.c: use unsigned int as counter to fit better with the
1117         asn1 compiler
1118         
1119 2006-11-27  Love Hörnquist Åstrand  <lha@it.su.se>
1120         
1121         * cms.c: Remove trailing white space.
1123         * crypto.c: rewrite comment to make more sense
1125         * crypto.c (hx509_crypto_select): check sig_algs[j]->key_oid
1127         * hxtool-commands.in (crypto-available): add --type
1129         * crypto.c (hx509_crypto_available): let alg pass if its keyless
1131         * hxtool-commands.in: Expand crypto-select
1133         * cms.c: Rename hx509_select to hx509_crypto_select.
1135         * hxtool-commands.in: Add crypto-select and crypto-available.
1137         * hxtool.c: Add crypto-select and crypto-available.
1139         * crypto.c (hx509_crypto_available): use right index.
1140         (hx509_crypto_free_algs): new function
1142         * crypto.c (hx509_crypto_select): improve
1143         (hx509_crypto_available): new function
1144         
1145 2006-11-26  Love Hörnquist Åstrand  <lha@it.su.se>
1146         
1147         * cert.c: Sprinkle more error string and hx509_contexts.
1149         * cms.c: Sprinkle more error strings.
1151         * crypto.c: Sprinkle error string and hx509_contexts.
1153         * crypto.c: Add some more comments about how this works.
1155         * crypto.c (hx509_select): new function.
1156         
1157         * Makefile.am: add peer.c
1159         * hxtool.c: Update hx509_cms_create_signed_1.
1161         * hx_locl.h: add struct hx509_peer_info
1163         * peer.c: Allow selection of digest/sig-alg
1165         * cms.c: Allow selection of a better digest using hx509_peer_info.
1167         * revoke.c: Handle that _hx509_verify_signature takes a context.
1168         
1169         * cert.c: Handle that _hx509_verify_signature takes a context.
1170         
1171 2006-11-25  Love Hörnquist Åstrand  <lha@it.su.se>
1173         * cms.c: Sprinkle error strings.
1175         * crypto.c: Sprinkle context and error strings.
1176         
1177 2006-11-24  Love Hörnquist Åstrand  <lha@it.su.se>
1179         * name.c: Handle printing and parsing raw oids in name.
1181 2006-11-23  Love Hörnquist Åstrand  <lha@it.su.se>
1183         * cert.c (_hx509_calculate_path): allow to calculate optimistic
1184         path when we don't know the trust anchors, just follow the chain
1185         upward until we no longer find a parent or we hit the max limit.
1187         * cms.c (hx509_cms_create_signed_1): provide a best effort path to
1188         the trust anchors to be stored in the SignedData packet, if find
1189         parents until trust anchor or max length.
1191         * data: regen
1193         * data/gen-req.sh: Build pk-init proxy cert.
1194         
1195 2006-11-16  Love Hörnquist Åstrand  <lha@it.su.se>
1196         
1197         * error.c (hx509_get_error_string): Put ", " between strings in
1198         error message.
1199         
1200 2006-11-13  Love Hörnquist Åstrand  <lha@it.su.se>
1202         * data/openssl.cnf: Change realm to TEST.H5L.SE
1203         
1204 2006-11-07  Love Hörnquist Åstrand  <lha@it.su.se>
1206         * revoke.c: Sprinkle error strings.
1207         
1208 2006-11-04  Love Hörnquist Åstrand  <lha@it.su.se>
1209         
1210         * hx_locl.h: add context variable to cmp function.
1212         * cert.c (hx509_query_match_cmp_func): allow setting the match
1213         function.
1214         
1215 2006-10-24  Love Hörnquist Åstrand  <lha@it.su.se>
1217         * ks_p11.c: Return less EINVAL.
1219         * hx509_err.et: add more pkcs11 errors
1221         * hx509_err.et: more error-codes
1223         * revoke.c: Return less EINVAL.
1225         * ks_dir.c: sprinkel more hx509_set_error_string
1227         * ks_file.c: Return less EINVAL.
1229         * hxtool.c: Pass in context to _hx509_parse_private_key.
1231         * ks_file.c: Sprinkle more hx509_context so we can return propper
1232         errors.
1234         * hx509_err.et: add HX509_PARSING_KEY_FAILED
1236         * crypto.c: Sprinkle more hx509_context so we can return propper
1237         errors.
1239         * collector.c: No more EINVAL.
1241         * hx509_err.et: add HX509_LOCAL_ATTRIBUTE_MISSING
1243         * cert.c (hx509_cert_get_base_subject): one less EINVAL
1244         (_hx509_cert_private_decrypt): one less EINVAL
1245         
1246 2006-10-22  Love Hörnquist Åstrand  <lha@it.su.se>
1248         * collector.c: indent
1250         * hxtool.c: Try to not leak memory.
1252         * req.c: clean memory before free
1254         * crypto.c (_hx509_private_key2SPKI): indent
1256         * req.c: Try to not leak memory.
1257         
1258 2006-10-21  Love Hörnquist Åstrand  <lha@it.su.se>
1260         * test_crypto.in: Read 50 kilobyte random data
1261         
1262         * revoke.c: Try to not leak memory.
1264         * hxtool.c: Try to not leak memory.
1266         * crypto.c (hx509_crypto_destroy): free oid.
1268         * error.c: Clean error string on failure just to make sure.
1270         * cms.c: Try to not leak memory (again).
1272         * hxtool.c: use a sensable content type
1274         * cms.c: Try harder to free certificate.
1275         
1276 2006-10-20  Love Hörnquist Åstrand  <lha@it.su.se>
1278         * Makefile.am: Add make check data.
1279         
1280 2006-10-19  Love Hörnquist Åstrand  <lha@it.su.se>
1281         
1282         * ks_p11.c (p11_list_keys): make element of search_data[0]
1283         constants and set them later
1285         * Makefile.am: Add more files.
1286         
1287 2006-10-17  Love Hörnquist Åstrand  <lha@it.su.se>
1288         
1289         * ks_file.c: set ret, remember to free ivdata
1290         
1291 2006-10-16  Love Hörnquist Åstrand  <lha@it.su.se>
1293         * hx_locl.h: Include <parse_bytes.h>.
1295         * test_crypto.in: Test random-data.
1297         * hxtool.c: RAND_bytes() return 1 for cryptographic strong data,
1298         check for that.
1300         * Makefile.am: clean random-data
1302         * hxtool.c: Add random-data command, use sl_slc_help.
1304         * hxtool-commands.in: Add random-data.
1306         * ks_p12.c: Remember to release certs.
1308         * ks_p11.c: Remember to release certs.
1309         
1310 2006-10-14  Love Hörnquist Åstrand  <lha@it.su.se>
1311         
1312         * prefix der primitives with der_
1314         * lock.c: Match the prompt type PROMPT exact.
1316         * hx_locl.h: Drop heim_any.h
1317         
1318 2006-10-11  Love Hörnquist Åstrand  <lha@it.su.se>
1319         
1320         * ks_p11.c (p11_release_module): j needs to be used as inter loop
1321         index. From Douglas Engert.
1323         * ks_file.c (parse_rsa_private_key): try all passwords and
1324         prompter.
1325         
1326 2006-10-10  Love Hörnquist Åstrand  <lha@it.su.se>
1327         
1328         * test_*.in: Parameterise the invocation of hxtool, so we can make
1329         it run under TESTS_ENVIRONMENT. From Andrew Bartlett
1331 2006-10-08  Love Hörnquist Åstrand  <lha@it.su.se>
1333         * test_crypto.in: Put all test stuck at 2006-09-25 since all their
1334         chains where valied then.
1336         * hxtool.c: Implement --time= option.
1338         * hxtool-commands.in: Add option time.
1340         * Makefile.am: test_name is a PROGRAM_TESTS
1342         * ks_p11.c: Return HX509_PKCS11_NO_SLOT when there are no slots
1343         and HX509_PKCS11_NO_TOKEN when there are no token. For use in PAM
1344         modules that want to detect when to use smartcard login and when
1345         not to. Patched based on code from Douglas Engert.
1347         * hx509_err.et: Add new pkcs11 related errors in a new section:
1348         keystore related error.  Patched based on code from Douglas
1349         Engert.
1350         
1351 2006-10-07  Love Hörnquist Åstrand  <lha@it.su.se>
1353         * Makefile.am: Make depenency for slc built files just like
1354         everywhere else.
1356         * cert.c: Add all openssl algs and init asn1 et
1357         
1358 2006-10-06  Love Hörnquist Åstrand  <lha@it.su.se>
1360         * ks_file.c (parse_rsa_private_key): free type earlier.
1362         * ks_file.c (parse_rsa_private_key): free type after use
1364         * name.c (_hx509_Name_to_string): remove dup const
1365         
1366 2006-10-02  Love Hörnquist Åstrand  <lha@it.su.se>
1367         
1368         * Makefile.am: Add more libs to libhx509
1369         
1370 2006-10-01  Love Hörnquist Åstrand  <lha@it.su.se>
1372         * ks_p11.c: Fix double free's, NULL ptr de-reference, and conform
1373         better to pkcs11.  From Douglas Engert.
1375         * ref: remove ^M, it breaks solaris 10s cc. From Harald Barth
1377 2006-09-19  Love Hörnquist Åstrand  <lha@it.su.se>
1379         * test_crypto.in: Bleichenbacher bad cert from Ralf-Philipp
1380         Weinmann and Andrew Pyshkin, pad right.
1382         * data: starfield test root cert and Ralf-Philipp and Andreis
1383         correctly padded bad cert
1385 2006-09-15  Love Hörnquist Åstrand  <lha@it.su.se>
1387         * test_crypto.in: Add test for yutaka certs.
1389         * cert.c: Add a strict rfc3280 verification flag. rfc3280 requires
1390         certificates to have KeyUsage.keyCertSign if they are to be used
1391         for signing of certificates, but the step in the verifiation is
1392         optional.
1394         * hxtool.c: Improve printing and error reporting.
1395         
1396 2006-09-13  Love Hörnquist Åstrand  <lha@it.su.se>
1398         * test_crypto.in,Makefile.am,data/bleichenbacher-{bad,good}.pem:
1399         test bleichenbacher from eay
1401 2006-09-12  Love Hörnquist Åstrand  <lha@it.su.se>
1403         * hxtool.c: Make common function for all getarg_strings and
1404         hx509_certs_append commonly used.
1406         * cms.c: HX509_CMS_UE_DONT_REQUIRE_KU_ENCIPHERMENT is a negative
1407         flag, treat it was such.
1408         
1409 2006-09-11  Love Hörnquist Åstrand  <lha@it.su.se>
1411         * req.c: Use the new add_GeneralNames function.
1413         * hx509.h: Add HX509_CMS_UE_DONT_REQUIRE_KU_ENCIPHERMENT.
1415         * ks_p12.c: Adapt to new signature of hx509_cms_unenvelope.
1417         * hxtool.c: Adapt to new signature of hx509_cms_unenvelope.
1419         * cms.c: Allow passing in encryptedContent and flag.  Add new flag
1420         HX509_CMS_UE_DONT_REQUIRE_KU_ENCIPHERMENT.
1421         
1422 2006-09-08  Love Hörnquist Åstrand  <lha@it.su.se>
1423         
1424         * ks_p11.c: cast void * to char * when using it for %s formating
1425         in printf.
1427         * name.c: New function _hx509_Name_to_string.
1428         
1429 2006-09-07  Love Hörnquist Åstrand  <lha@it.su.se>
1431         * ks_file.c: Sprinkle error messages.
1433         * cms.c: Sprinkle even more error messages.
1434         
1435         * cms.c: Sprinkle some error messages.
1437         * cms.c (find_CMSIdentifier): only free string when we allocated
1438         one.
1440         * ks_p11.c: Don't build most of the pkcs11 module if there are no
1441         dlopen().
1442         
1443 2006-09-06  Love Hörnquist Åstrand  <lha@it.su.se>
1445         * cms.c (hx509_cms_unenvelope): try to save the error string from
1446         find_CMSIdentifier so we have one more bit of information what
1447         went wrong.
1449         * hxtool.c: More pretty printing, make verify_signed return the
1450         error string from the library.
1452         * cms.c: Try returning what certificates failed to parse or be
1453         found.
1455         * ks_p11.c (p11_list_keys): fetch CKA_LABEL and use it to set the
1456         friendlyname for the certificate.
1457         
1458 2006-09-05  Love Hörnquist Åstrand  <lha@it.su.se>
1459         
1460         * crypto.c: check that there are no extra bytes in the checksum
1461         and that the parameters are NULL or the NULL-type. All to avoid
1462         having excess data that can be used to fake the signature.
1464         * hxtool.c: print keyusage
1466         * print.c: add hx509_cert_keyusage_print, simplify oid printing
1468         * cert.c: add _hx509_cert_get_keyusage
1470         * ks_p11.c: keep one session around for the whole life of the keyset
1472         * test_query.in: tests more selection
1474         * hxtool.c: improve pretty printing in print and query
1476         * hxtool{.c,-commands.in}: add selection on KU and printing to query
1478         * test_cms.in: Add cms test for digitalSignature and
1479         keyEncipherment certs.
1481         * name.c (no): Add serialNumber
1483         * ks_p11.c (p11_get_session): return better error messages
1484         
1485 2006-09-04  Love Hörnquist Åstrand  <lha@it.su.se>
1487         * ref: update to pkcs11 reference files 2.20
1489         * ks_p11.c: add more mechflags
1491         * name.c (no): add OU and sort
1493         * revoke.c: pass context to _hx509_create_signature
1495         * ks_p11.c (p11_printinfo): print proper plural s
1497         * ks_p11.c: save the mechs supported when initing the token, print
1498         them in printinfo.
1500         * hx_locl.h: Include <parse_units.h>.
1502         * cms.c: pass context to _hx509_create_signature
1504         * req.c: pass context to _hx509_create_signature
1506         * keyset.c (hx509_certs_info): print information about the keyset.
1508         * hxtool.c (pcert_print) print keystore info when --info flag is
1509         given.
1511         * hxtool-commands.in: Add hxtool print --info.
1513         * test_query.in: Test hxtool print --info.
1515         * hx_locl.h (hx509_keyset_ops): add printinfo
1517         * crypto.c: Start to hang the private key operations of the
1518         private key, pass hx509_context to create_checksum.
1519         
1520 2006-05-29  Love Hörnquist Åstrand  <lha@it.su.se>
1522         * ks_p11.c: Iterate over all slots, not just the first/selected
1523         one.
1524         
1525 2006-05-27  Love Hörnquist Åstrand  <lha@it.su.se>
1527         * cert.c: Add release function for certifiates so backend knowns
1528         when its no longer used.
1530         * ks_p11.c: Add reference counting on certifiates, push out
1531         CK_SESSION_HANDLE from slot.
1533         * cms.c: sprinkle more hx509_clear_error_string
1535 2006-05-22  Love Hörnquist Åstrand  <lha@it.su.se>
1537         * ks_p11.c: Sprinkle some hx509_set_error_strings
1538         
1539 2006-05-13  Love Hörnquist Åstrand  <lha@it.su.se>
1540         
1541         * hxtool.c: Avoid shadowing.
1543         * revoke.c: Avoid shadowing.
1545         * ks_file.c: Avoid shadowing.
1547         * cert.c: Avoid shadowing.
1548         
1549 2006-05-12  Love Hörnquist Åstrand  <lha@it.su.se>
1551         * lock.c (hx509_prompt_hidden): reshuffle to avoid gcc warning
1552         
1553         * hx509.h: Reshuffle the prompter types, remove the hidden field.
1555         * lock.c (hx509_prompt_hidden): return if the prompt should be
1556         hidden or not
1558         * revoke.c (hx509_revoke_free): allow free of NULL.
1559         
1560 2006-05-11  Love Hörnquist Åstrand  <lha@it.su.se>
1562         * ks_file.c (file_init): Avoid shadowing ret (and thus avoiding
1563         crashing).
1565         * ks_dir.c: Implement DIR: caches useing FILE: caches.
1567         * ks_p11.c: Catch more errors.
1568         
1569 2006-05-08  Love Hörnquist Åstrand  <lha@it.su.se>
1570         
1571         * crypto.c (hx509_crypto_encrypt): free correctly in error
1572         path. From Andrew Bartlett.
1574         * crypto.c: If RAND_bytes fails, then we will attempt to
1575         double-free crypt->key.data.  From Andrew Bartlett.
1576         
1577 2006-05-05  Love Hörnquist Åstrand  <lha@it.su.se>
1578         
1579         * name.c: Rename u_intXX_t to uintXX_t
1580         
1581 2006-05-03  Love Hörnquist Åstrand  <lha@it.su.se>
1583         * TODO: More to do about the about the PKCS11 code.
1585         * ks_p11.c: Use the prompter from the lock function.
1587         * lock.c: Deal with that hx509_prompt.reply is no longer a
1588         pointer.
1590         * hx509.h: Make hx509_prompt.reply not a pointer.
1591         
1592 2006-05-02  Love Hörnquist Åstrand  <lha@it.su.se>
1594         * keyset.c: Sprinkle setting error strings.
1596         * crypto.c: Sprinkle setting error strings.
1598         * collector.c: Sprinkle setting error strings.
1600         * cms.c: Sprinkle setting error strings.
1601         
1602 2006-05-01  Love Hörnquist Åstrand  <lha@it.su.se>
1603         
1604         * test_name.c: renamed one error code
1606         * name.c: renamed one error code
1608         * ks_p11.c: _hx509_set_cert_attribute changed signature
1610         * hxtool.c (pcert_print): use hx509_err so I can test it
1612         * error.c (hx509_set_error_stringv): clear errors on malloc
1613         failure
1615         * hx509_err.et: Add some more errors
1617         * cert.c: Sprinkle setting error strings.
1619         * cms.c: _hx509_path_append changed signature.
1621         * revoke.c: changed signature of _hx509_check_key_usage
1623         * keyset.c: changed signature of _hx509_query_match_cert
1625         * hx509.h: Add support for error strings.
1627         * cms.c: changed signature of _hx509_check_key_usage
1629         * Makefile.am: ibhx509_la_files += error.c
1631         * ks_file.c: Sprinkel setting error strings.
1633         * cert.c: Sprinkel setting error strings.
1635         * hx_locl.h: Add support for error strings.
1637         * error.c: Add string error handling functions.
1639         * keyset.c (hx509_certs_init): pass the right error code back
1640         
1641 2006-04-30  Love Hörnquist Åstrand  <lha@it.su.se>
1643         * revoke.c: Revert previous patch.
1644         (hx509_ocsp_verify): new function that returns the expiration of
1645         certificate in ocsp data-blob
1647         * cert.c: Reverse previous patch, lets do it another way.
1649         * cert.c (hx509_revoke_verify): update usage
1651         * revoke.c: Make compile.
1653         * revoke.c: Add the expiration time the crl/ocsp info expire
1655         * name.c: Add hx509_name_is_null_p
1657         * cert.c: remove _hx509_cert_private_sigature
1658         
1659 2006-04-29  Love Hörnquist Åstrand  <lha@it.su.se>
1660         
1661         * name.c: Expose more of Name.
1663         * hxtool.c (main): add missing argument to printf
1665         * data/openssl.cnf: Add EKU for the KDC certificate
1667         * cert.c (hx509_cert_get_base_subject): reject un-canon proxy
1668         certs, not the reverse
1669         (add_to_list): constify and fix argument order to
1670         copy_octet_string
1671         (hx509_cert_find_subjectAltName_otherName): make work
1672         
1673 2006-04-28  Love Hörnquist Åstrand  <lha@it.su.se>
1675         * data/{pkinit,kdc}.{crt,key}: pkinit certificates
1677         * data/gen-req.sh: Generate pkinit certificates.
1679         * data/openssl.cnf: Add pkinit glue.
1681         * cert.c (hx509_verify_hostname): implement stub function
1682         
1683 2006-04-27  Love Hörnquist Åstrand  <lha@it.su.se>
1685         * TODO: CRL delta support
1687 2006-04-26 Love Hörnquist Åstrand <lha@it.su.se>
1688         
1689         * data/.cvsignore: ignore leftover from OpenSSL cert generation
1691         * hx509_err.et: Add name malformated error
1693         * name.c (hx509_parse_name): don't abort on error, rather return
1694         error
1696         * test_name.c: Test failure parsing name.
1698         * cert.c: When verifying certificates, store subject basename for
1699         later consumption.
1701         * test_name.c: test to parse and print name and check that they
1702         are the same.
1704         * name.c (hx509_parse_name): fix length argument to printf string
1706         * name.c (hx509_parse_name): fix length argument to stringtooid, 1
1707         too short.
1709         * cert.c: remove debug printf's
1711         * name.c (hx509_parse_name): make compile pre c99
1713         * data/gen-req.sh: OpenSSL have a serious issue of user confusion
1714         -subj in -ca takes the arguments in LDAP order. -subj for x509
1715         takes it in x509 order.
1717         * cert.c (hx509_verify_path): handle the case where the where two
1718         proxy certs in a chain.
1720         * test_chain.in: enable two proxy certificates in a chain test
1722         * test_chain.in: tests proxy certificates
1724         * data: re-gen
1726         * data/gen-req.sh: build proxy certificates
1727         
1728         * data/openssl.cnf: add def for proxy10_cert
1730         * hx509_err.et: Add another proxy certificate error.
1732         * cert.c (hx509_verify_path): Need to mangle name to remove the CN
1733         of the subject, copying issuer only works for one level but is
1734         better then doing no checking at all.
1736         * hxtool.c: Add verify --allow-proxy-certificate.
1738         * hxtool-commands.in: add verify --allow-proxy-certificate
1740         * hx509_err.et: Add proxy certificate errors.
1742         * cert.c: Fix comment about subject name of proxy certificate.
1744         * test_chain.in: tests for proxy certs
1746         * data/gen-req.sh: gen proxy and non-proxy tests certificates
1748         * data/openssl.cnf: Add definition for proxy certs
1750         * data/*proxy-test.*: Add proxy certificates
1752         * cert.c (hx509_verify_path): verify proxy certificate have no san
1753         or ian
1755         * cert.c (hx509_verify_set_proxy_certificate): Add
1756         (*): rename policy cert to proxy cert
1758         * cert.c: Initial support for proxy certificates.
1759         
1760 2006-04-24  Love Hörnquist Åstrand  <lha@it.su.se>
1762         * hxtool.c: some error checking
1764         * name.c: Switch over to asn1 generaed oids.
1766         * TODO: merge with old todo file
1767         
1768 2006-04-23 Love Hörnquist Åstrand <lha@it.su.se>
1770         * test_query.in: make quiet
1772         * test_req.in: SKIP test if there is no RSA support.
1774         * hxtool.c: print dh method too
1776         * test_chain.in: SKIP test if there is no RSA support.
1777         
1778         * test_cms.in: SKIP test if there is no RSA support.
1780         * test_nist.in: SKIP test if there is no RSA support.
1781         
1782 2006-04-22  Love Hörnquist Åstrand  <lha@it.su.se>
1784         * hxtool-commands.in: Allow passing in pool and anchor to
1785         signedData
1787         * hxtool.c: Allow passing in pool and anchor to signedData
1789         * test_cms.in: Test that certs in signed data is picked up.
1791         * hx_locl.h: Expose the path building function to internal
1792         functions.
1794         * cert.c: Expose the path building function to internal functions.
1796         * hxtool-commands.in: cms-envelope: Add support for choosing the
1797         encryption type
1799         * hxtool.c (cms_create_enveloped): Add support for choosing the
1800         encryption type
1802         * test_cms.in: Test generating des-ede3 aes-128 aes-256 enveloped
1803         data
1805         * crypto.c: Add names to cipher types.
1807         * cert.c (hx509_query_match_friendly_name): fix return value
1809         * data/gen-req.sh: generate tests for enveloped data using
1810         des-ede3 and aes256
1812         * test_cms.in: add tests for enveloped data using des-ede3 and
1813         aes256
1815         * cert.c (hx509_query_match_friendly_name): New function.
1816         
1817 2006-04-21  Love Hörnquist Åstrand  <lha@it.su.se>
1818         
1819         * ks_p11.c: Add support for parsing slot-number.
1821         * crypto.c (oid_private_rc2_40): simply
1823         * crypto.c: Use oids from asn1 generator.
1825         * ks_file.c (file_init): reset length when done with a part
1827         * test_cms.in: check with test.combined.crt.
1829         * data/gen-req.sh: Create test.combined.crt.
1831         * test_cms.in: Test signed data using keyfile that is encrypted.
1833         * ks_file.c: Remove (commented out) debug printf
1835         * ks_file.c (parse_rsa_private_key): use EVP_get_cipherbyname
1837         * ks_file.c (parse_rsa_private_key): make working for one
1838         password.
1840         * ks_file.c (parse_rsa_private_key): Implement enought for
1841         testing.
1843         * hx_locl.h: Add <ctype.h>
1845         * ks_file.c: Add glue code for PEM encrypted password files.
1847         * test_cms.in: Add commeted out password protected PEM file,
1848         remove password for those tests that doesn't need it.
1850         * test_cms.in: adapt test now that we can use any certificate and
1851         trust anchor
1853         * collector.c: handle PEM RSA PRIVATE KEY files
1855         * cert.c: Remove unused function.
1857         * ks_dir.c: move code here from ks_file.c now that its no longer
1858         used.
1860         * ks_file.c: Add support for parsing unencrypted RSA PRIVATE KEY
1862         * crypto.c: Handle rsa private keys better.
1863         
1864 2006-04-20  Love Hörnquist Åstrand <lha@it.su.se>
1866         * hxtool.c: Use hx509_cms_{,un}wrap_ContentInfo
1868         * cms.c: Make hx509_cms_{,un}wrap_ContentInfo usable in asn1
1869         un-aware code.
1871         * cert.c (hx509_verify_path): if trust anchor is not self signed,
1872         don't check sig From Douglas Engert.
1874         * test_chain.in: test "sub-cert -> sub-ca"
1875         
1876         * crypto.c: Use the right length for the sha256 checksums.
1877         
1878 2006-04-15  Love Hörnquist Åstrand  <lha@it.su.se>
1880         * crypto.c: Fix breakage from sha256 code.
1882         * crypto.c: Add SHA256 support, and symbols for the other new
1883         SHA-2 types.
1884         
1885 2006-04-14  Love Hörnquist Åstrand  <lha@it.su.se>
1887         * test_cms.in: test rc2-40 rc2-64 rc2-128 enveloped data
1888         
1889         * data/test-enveloped-rc2-{40,64,128}: add tests cases for rc2
1891         * cms.c: Update prototypes changes for hx509_crypto_[gs]et_params.
1893         * crypto.c: Break out the parameter handling code for encrypting
1894         data to handle RC2.  Needed for Windows 2k pk-init support.
1895         
1896 2006-04-04  Love Hörnquist Åstrand <lha@it.su.se>
1898         * Makefile.am: Split libhx509_la_SOURCES into build file and
1899         distributed files so we can avoid building prototypes for
1900         build-files.
1901         
1902 2006-04-03  Love Hörnquist Åstrand  <lha@it.su.se>
1904         * TODO: split certificate request into pkcs10 and CRMF
1906         * hxtool-commands.in: Add nonce flag to ocsp-fetch
1908         * hxtool.c: control sending nonce
1910         * hxtool.c (request_create): store the request in a file, no in
1911         bitbucket.
1913         * cert.c: expose print_cert_subject internally
1915         * hxtool.c: Add ocsp_print.
1917         * hxtool-commands.in: New command "ocsp-print".
1919         * hx_locl.h: Include <hex.h>.
1921         * revoke.c (verify_ocsp): require issuer to match too.
1922         (free_ocsp): new function
1923         (hx509_revoke_ocsp_print): new function, print ocsp reply
1925         * Makefile.am: build CRMF files
1927         * data/key.der: needed for cert request test
1929         * test_req.in: adapt to rename of pkcs10-create to request-create
1931         * hxtool.c: adapt to rename of pkcs10-create to request-create
1933         * hxtool-commands.in: Rename pkcs10-create to request-create
1935         * crypto.c: (_hx509_parse_private_key): Avoid crashing on bad input.
1937         * hxtool.c (pkcs10_create): use opt->subject_string
1939         * hxtool-commands.in: Add pkcs10-create --subject
1941         * Makefile.am: Add test_req to tests.
1942         
1943         * test_req.in: Test for pkcs10 commands.
1945         * name.c (hx509_parse_name): new function.
1947         * hxtool.c (pkcs10_create): implement
1949         * hxtool-commands.in (pkcs10-create): Add arguments
1951         * crypto.c: Add _hx509_private_key2SPKI and support
1952         functions (only support RSA for now).
1953         
1954 2006-04-02  Love Hörnquist Åstrand  <lha@it.su.se>
1955         
1956         * hxtool-commands.in: Add pkcs10-create command.
1958         * hx509.h: Add hx509_request.
1960         * TODO: more stuff
1962         * Makefile.am: Add req.c
1964         * req.c: Create certificate requests, prototype converts the
1965         request in a pkcs10 packet.
1967         * hxtool.c: Add pkcs10_create
1969         * name.c (hx509_name_copy): new function.
1970         
1971 2006-04-01  Love Hörnquist Åstrand  <lha@it.su.se>
1973         * TODO: fill out what do
1975         * hxtool-commands.in: add pkcs10-print
1977         * hx_locl.h: Include <pkcs10_asn1.h>.
1979         * pkcs10.asn1: PKCS#10
1981         * hxtool.c (pkcs10_print): new function.
1983         * test_chain.in: test ocsp keyhash
1985         * data: generate ocsp keyhash version too
1987         * revoke.c (load_ocsp): test that we got back a BasicReponse
1989         * ocsp.asn1: Add asn1_id_pkix_ocsp*.
1991         * Makefile.am: Add asn1_id_pkix_ocsp*.
1993         * cert.c: Add HX509_QUERY_MATCH_KEY_HASH_SHA1
1995         * hx_locl.h: Add HX509_QUERY_MATCH_KEY_HASH_SHA1
1997         * revoke.c: Support OCSPResponderID.byKey, indent.
1999         * revoke.c (hx509_ocsp_request): Add nonce to ocsp request.
2001         * hxtool.c: Add nonce to ocsp request.
2003         * test_chain.in: Added crl tests
2004         
2005         * data/nist-data: rename missing-crl to missing-revoke
2007         * data: make ca use openssl ca command so we can add ocsp tests,
2008         and regen certs
2010         * test_chain.in: Add revoked ocsp cert test
2012         * cert.c: rename missing-crl to missing-revoke
2014         * revoke.c: refactor code, fix a un-init-ed variable
2015         
2016         * test_chain.in: rename missing-crl to missing-revoke add ocsp
2017         tests
2019         * test_cms.in: rename missing-crl to missing-revoke
2021         * hxtool.c: rename missing-crl to missing-revoke
2023         * hxtool-commands.in: rename missing-crl to missing-revoke
2024         
2025         * revoke.c: Plug one memory leak.
2027         * revoke.c: Renamed generic CRL related errors.
2028         
2029         * hx509_err.et: Comments and renamed generic CRL related errors
2030         
2031         * revoke.c: Add ocsp checker.
2033         * ocsp.asn1: Add id-kp-OCSPSigning
2035         * hxtool-commands.in: add url-path argument to ocsp-fetch
2037         * hxtool.c: implement ocsp-fetch
2039         * cert.c: Use HX509_DEFAULT_OCSP_TIME_DIFF.
2040         
2041         * hx_locl.h: Add ocsp_time_diff to hx509_context
2043         * crypto.c (_hx509_verify_signature_bitstring): new function,
2044         commonly use when checking certificates
2046         * cms.c (hx509_cms_envelope_1): check for internal ASN.1 encoder
2047         error
2049         * cert.c: Add ocsp glue, use new
2050         _hx509_verify_signature_bitstring, add eku checking function.
2051         
2052 2006-03-31  Love Hörnquist Åstrand  <lha@it.su.se>
2054         * Makefile.am: add id_kp_OCSPSigning.x
2056         * revoke.c: Pick out certs in ocsp response
2058         * TODO: list of stuff to verify
2060         * revoke.c: Add code to load OCSPBasicOCSPResponse files, reload
2061         crl when its changed on disk.
2063         * cert.c: Update for ocsp merge. handle building path w/o
2064         subject (using subject key id)
2066         * ks_p12.c: _hx509_map_file changed prototype.
2068         * file.c: _hx509_map_file changed prototype, returns struct stat
2069         if requested.
2071         * ks_file.c: _hx509_map_file changed prototype.
2073         * hxtool.c: Add stub for ocsp-fetch, _hx509_map_file changed
2074         prototype, add ocsp parsing to verify command.
2076         * hx_locl.h: rename HX509_CTX_CRL_MISSING_OK to
2077         HX509_CTX_VERIFY_MISSING_OK now that we have OCSP glue
2078         
2079 2006-03-30  Love Hörnquist Åstrand  <lha@it.su.se>
2081         * hx_locl.h: Add <krb5-types.h> to make it compile on Solaris,
2082         from Alex V. Labuta.
2083         
2084 2006-03-28  Love Hörnquist Åstrand  <lha@it.su.se>
2085         
2086         * crypto.c (_hx509_pbe_decrypt): try all passwords, not just the
2087         first one.
2088         
2089 2006-03-27  Love Hörnquist Åstrand  <lha@it.su.se>
2091         * print.c (check_altName): Print the othername oid.
2093         * crypto.c: Manual page claims RSA_public_decrypt will return -1
2094         on error, lets check for that
2095         
2096         * crypto.c (_hx509_pbe_decrypt): also try the empty password
2098         * collector.c (match_localkeyid): no need to add back the cert to
2099         the cert pool, its already there.
2101         * crypto.c: Add REQUIRE_SIGNER
2103         * cert.c (hx509_cert_free): ok to free NULL
2105         * hx509_err.et: Add new error code SIGNATURE_WITHOUT_SIGNER.
2107         * name.c (_hx509_name_ds_cmp): make DirectoryString case
2108         insenstive
2109         (hx509_name_to_string): less spacing
2111         * cms.c: Check for signature error, check consitency of error
2112         
2113 2006-03-26  Love Hörnquist Åstrand  <lha@it.su.se>
2115         * collector.c (_hx509_collector_alloc): handle errors
2117         * cert.c (hx509_query_alloc): allocate slight more more then a
2118         sizeof(pointer)
2120         * crypto.c (_hx509_private_key_assign_key_file): ask for password
2121         if nothing matches.
2123         * cert.c: Expose more of the hx509_query interface.
2125         * collector.c: hx509_certs_find is now exposed.
2127         * cms.c: hx509_certs_find is now exposed.
2129         * revoke.c: hx509_certs_find is now exposed.
2131         * keyset.c (hx509_certs_free): allow free-ing NULL
2132         (hx509_certs_find): expose
2133         (hx509_get_one_cert): new function
2135         * hxtool.c: hx509_certs_find is now exposed.
2137         * hx_locl.h: Remove hx509_query, its exposed now.
2139         * hx509.h: Add hx509_query.
2140         
2141 2006-02-22  Love Hörnquist Åstrand  <lha@it.su.se>
2143         * cert.c: Add exceptions for null (empty) subjectNames
2145         * data/nist-data: Add some more name constraints tests.
2147         * data/nist-data: Add some of the test from 4.13 Name Constraints.
2149         * cert.c: Name constraits needs to be evaluated in block as they
2150         appear in the certificates, they can not be joined to one
2151         list. One example of this is:
2152         
2153         - cert is cn=foo,dc=bar,dc=baz
2154         - subca is dc=foo,dc=baz with name restriction dc=kaka,dc=baz
2155         - ca is dc=baz with name restriction dc=baz
2156         
2157         If the name restrictions are merged to a list, the certificate
2158         will pass this test.
2160 2006-02-14 Love Hörnquist Åstrand <lha@it.su.se>
2162         * cert.c: Handle more name constraints cases.
2164         * crypto.c (dsa_verify_signature): if test if malloc failed
2166 2006-01-31  Love Hörnquist Åstrand  <lha@it.su.se>
2168         * cms.c: Drop partial pkcs12 string2key implementation.
2169         
2170 2006-01-20  Love Hörnquist Åstrand  <lha@it.su.se>
2172         * data/nist-data: Add commited out DSA tests (they fail).
2174         * data/nist-data: Add 4.2 Validity Periods.
2176         * test_nist.in: Make less verbose to use.
2178         * Makefile.am: Add test_nist_cert.
2180         * data/nist-data: Add some more CRL-tests.
2182         * test_nist.in: Print $id instead of . when running the tests.
2184         * test_nist.in: Drop verifying certifiates, its done in another
2185         test now.
2187         * data/nist-data: fixup kill-rectangle leftovers
2189         * data/nist-data: Drop verifying certifiates, its done in another
2190         test now.  Add more crl tests. comment out all unused tests.
2192         * test_nist_cert.in: test parse all nist certs
2193         
2194 2006-01-19  Love Hörnquist Åstrand  <lha@it.su.se>
2196         * hx509_err.et: Add HX509_CRL_UNKNOWN_EXTENSION.
2198         * revoke.c: Check for unknown extentions in CRLs and CRLEntries.
2200         * test_nist.in: Parse new format to handle CRL info.
2202         * test_chain.in: Add --missing-crl.
2204         * name.c (hx509_unparse_der_name): Rename from hx509_parse_name.
2205         (_hx509_unparse_Name): Add.
2207         * hxtool-commands.in: Add --missing-crl to verify commands.
2209         * hx509_err.et: Add CRL errors.
2211         * cert.c (hx509_context_set_missing_crl): new function Add CRL
2212         handling.
2214         * hx_locl.h: Add HX509_CTX_CRL_MISSING_OK.
2216         * revoke.c: Parse and verify CRLs (simplistic).
2218         * hxtool.c: Parse CRL info.
2220         * data/nist-data: Change format so we can deal with CRLs, also
2221         note the test-id from PKITS.
2223         * data: regenerate test
2224         
2225         * data/gen-req.sh: use static-file to generate tests
2226         
2227         * data/static-file: new file to use for commited tests
2229         * test_cms.in: Use static file, add --missing-crl.
2230         
2231 2006-01-18  Love Hörnquist Åstrand <lha@it.su.se>
2233         * print.c: Its cRLReason, not cRLReasons.
2235         * hxtool.c: Attach revoke context to verify context.
2237         * data/nist-data: change syntax to make match better with crl
2238         checks
2240         * cert.c: Verify no certificates has been revoked with the new
2241         revoke interface.
2243         * Makefile.am: libhx509_la_SOURCES += revoke.c
2245         * revoke.c: Add framework for handling CRLs.
2247         * hx509.h: Add hx509_revoke_ctx.
2248         
2249 2006-01-13  Love Hörnquist Åstrand  <lha@it.su.se>
2251         * delete crypto_headers.h, use global file instead.
2253         * crypto.c (PBE_string2key): libdes now supports PKCS12_key_gen
2254         
2255 2006-01-12  Love Hörnquist Åstrand  <lha@it.su.se>
2257         * crypto_headers.h: Need BN_is_negative too.
2258         
2259 2006-01-11  Love Hörnquist Åstrand  <lha@it.su.se>
2260         
2261         * ks_p11.c (p11_rsa_public_decrypt): since is wrong, don't provide
2262         it. PKCS11 can't do public_decrypt, it support verify though. All
2263         this doesn't matter, since the code never go though this path.
2265         * crypto_headers.h: Provide glue to compile with less warnings
2266         with OpenSSL
2267         
2268 2006-01-08  Love Hörnquist Åstrand  <lha@it.su.se>
2269         
2270         * Makefile.am: Depend on LIB_des
2272         * lock.c: Use "crypto_headers.h".
2274         * crypto_headers.h: Include the two diffrent implementation of
2275         crypto headers.
2277         * cert.c: Use "crypto-headers.h". Load ENGINE configuration.
2279         * crypto.c: Make compile with both OpenSSL and heimdal libdes.
2281         * ks_p11.c: Add code for public key decryption (not supported yet)
2282         and use "crypto-headers.h".
2283         
2285 2006-01-04 Love Hörnquist Åstrand <lha@it.su.se>
2286         
2287         * add a hx509_context where we can store configuration
2289         * p11.c,Makefile.am: pkcs11 is now supported by library, remove
2290         old files.
2292         * ks_p11.c: more paranoid on refcount, set refcounter ealier,
2293         reset pointers after free
2295         * collector.c (struct private_key): remove temporary key data
2296         storage, convert directly to a key
2297         (match_localkeyid): match certificate and key using localkeyid
2298         (match_keys): match certificate and key using _hx509_match_keys
2299         (_hx509_collector_collect): rewrite to use match_keys and
2300         match_localkeyid
2302         * crypto.c (_hx509_match_keys): function that determins if a
2303         private key matches a certificate, used when there is no
2304         localkeyid.
2305         (*) reset free pointer
2307         * ks_file.c: Rewrite to use collector and mapping support
2308         function.
2310         * ks_p11.c (rsa_pkcs1_method): constify
2312         * ks_p11.c: drop extra wrapping of p11_init
2314         * crypto.c (_hx509_private_key_assign_key_file): use function to
2315         extact rsa key
2317         * cert.c: Revert previous, refcounter is unsigned, so it can never
2318         be negative.
2320         * cert.c (hx509_cert_ref): more refcount paranoia
2322         * ks_p11.c: Implement rsa_private_decrypt and add stubs for public
2323         ditto.
2325         * ks_p11.c: Less printf, less memory leaks.
2327         * ks_p11.c: Implement signing using pkcs11.
2328         
2329         * ks_p11.c: Partly assign private key, enough to complete
2330         collection, but not any crypto functionallity.
2332         * collector.c: Use hx509_private_key to assign private keys.
2334         * crypto.c: Remove most of the EVP_PKEY code, and use RSA
2335         directly, this temporary removes DSA support.
2337         * hxtool.c (print_f): print if there is a friendly name and if
2338         there is a private key
2339         
2340 2006-01-03  Love Hörnquist Åstrand  <lha@it.su.se>
2342         * name.c: Avoid warning from missing __attribute__((noreturn))
2344         * lock.c (_hx509_lock_unlock_certs): return unlock certificates
2346         * crypto.c (_hx509_private_key_assign_ptr): new function, exposes
2347         EVP_PKEY
2348         (_hx509_private_key_assign_key_file): remember to free private key
2349         if there is one.
2351         * cert.c (_hx509_abort): add newline to output and flush stdout
2353         * Makefile.am: libhx509_la_SOURCES += collector.c
2355         * hx_locl.h: forward type declaration of struct hx509_collector.
2357         * collector.c: Support functions to collect certificates and
2358         private keys and then match them.
2360         * ks_p12.c: Use the new hx509_collector support functions.
2362         * ks_p11.c: Add enough glue to support certificate iteration.
2364         * test_nist_pkcs12.in: Less verbose.
2366         * cert.c (hx509_cert_free): if there is a private key assosited
2367         with this cert, free it
2369         * print.c: Use _hx509_abort.
2371         * ks_p12.c: Use _hx509_abort.
2373         * hxtool.c: Use _hx509_abort.
2375         * crypto.c: Use _hx509_abort.
2377         * cms.c: Use _hx509_abort.
2379         * cert.c: Use _hx509_abort.
2381         * name.c: use _hx509_abort
2382         
2383 2006-01-02  Love Hörnquist Åstrand  <lha@it.su.se>
2385         * name.c (hx509_name_to_string): don't cut bmpString in half.
2387         * name.c (hx509_name_to_string): don't overwrite with 1 byte with
2388         bmpString.
2390         * ks_file.c (parse_certificate): avoid stomping before array
2392         * name.c (oidtostring): avoid leaking memory
2394         * keyset.c: Add _hx509_ks_dir_register.
2396         * Makefile.am (libhx509_la_SOURCES): += ks_dir.c
2398         * hxtool-commands.in: Remove pkcs11.
2400         * hxtool.c: Remove pcert_pkcs11.
2402         * ks_file.c: Factor out certificate parsing code.
2404         * ks_dir.c: Add new keystore that treats all files in a directory
2405         a keystore, useful for regression tests.
2406         
2407 2005-12-12  Love Hörnquist Åstrand  <lha@it.su.se>
2409         * test_nist_pkcs12.in: Test parse PKCS12 files from NIST.
2411         * data/nist-data: Can handle DSA certificate.
2412         
2413         * hxtool.c: Print error code on failure.
2414         
2415 2005-10-29  Love Hörnquist Åstrand  <lha@it.su.se>
2417         * crypto.c: Support DSA signature operations.
2418         
2419 2005-10-04  Love Hörnquist Åstrand  <lha@it.su.se>
2421         * print.c: Validate that issuerAltName and subjectAltName isn't
2422         empty.
2423         
2424 2005-09-14  Love Hörnquist Åstrand  <lha@it.su.se>
2426         * p11.c: Cast to unsigned char to avoid warning.
2428         * keyset.c: Register pkcs11 module.
2430         * Makefile.am: Add ks_p11.c, install hxtool.
2431         
2432         * ks_p11.c: Starting point of a pkcs11 module.
2433         
2434 2005-09-04  Love Hörnquist Åstrand  <lha@it.su.se>
2436         * lock.c: Implement prompter.
2438         * hxtool-commands.in: add --content to print
2440         * hxtool.c: Split verify and print.
2442         * cms.c: _hx509_pbe_decrypt now takes a hx509_lock.
2444         * crypto.c: Make _hx509_pbe_decrypt take a hx509_lock, workaround
2445         for empty password.
2447         * name.c: Add DC, handle all Directory strings, fix signless
2448         problems.
2449         
2450 2005-09-03  Love Hörnquist Åstrand  <lha@it.su.se>
2452         * test_query.in: Pass in --pass to all commands.
2454         * hxtool.c: Use option --pass.
2456         * hxtool-commands.in: Add --pass to all commands.
2458         * hx509_err.et: add UNKNOWN_LOCK_COMMAND and CRYPTO_NO_PROMPTER
2460         * test_cms.in: pass in password to cms-create-sd
2462         * crypto.c: Abstract out PBE_string2key so I can add PBE2 s2k
2463         later.  Avoid signess warnings with OpenSSL.
2465         * cms.c: Use void * instead of char * for to avoid signedness
2466         issues
2468         * cert.c (hx509_cert_get_attribute): remove const, its not
2470         * ks_p12.c: Cast size_t to unsigned long when print.
2472         * name.c: Fix signedness warning.
2474         * test_query.in: Use echo, the function check isn't defined here.
2475         
2476 2005-08-11  Love Hörnquist Åstrand  <lha@it.su.se>
2478         * hxtool-commands.in: Add more options that was missing.
2480 2005-07-28  Love Hörnquist Åstrand  <lha@it.su.se>
2482         * test_cms.in: Use --certificate= for enveloped/unenvelope.
2484         * hxtool.c: Use --certificate= for enveloped/unenvelope.  Clean
2485         up.
2487         * test_cms.in: add EnvelopeData tests
2488         
2489         * hxtool.c: use id-envelopedData for ContentInfo
2490         
2491         * hxtool-commands.in: add contentinfo wrapping for create/unwrap
2492         enveloped data
2494         * hxtool.c: add contentinfo wrapping for create/unwrap enveloped
2495         data
2497         * data/gen-req.sh: add enveloped data (aes128)
2498         
2499         * crypto.c: add "new" RC2 oid
2500         
2501 2005-07-27  Love Hörnquist Åstrand  <lha@it.su.se>
2503         * hx_locl.h, cert.c: Add HX509_QUERY_MATCH_FUNCTION that allows
2504         caller to match by function, note that this doesn't not work
2505         directly for backends that implements ->query, they must do their
2506         own processing. (I'm running out of flags, only 12 left now)
2508         * test_cms.in: verify ContentInfo wrapping code in hxtool
2509         
2510         * hxtool-commands.in (cms_create_sd): support wrapping in content
2511         info spelling
2513         * hxtool.c (cms_create_sd): support wrapping in content info
2515         * test_cms.in: test more cms signeddata messages
2516         
2517         * data/gen-req.sh: generate SignedData
2518         
2519         * hxtool.c (cms_create_sd): support certificate store, add support
2520         to unwrap a ContentInfo the SignedData inside.
2522         * crypto.c: sprinkel rk_UNCONST
2524         * crypto.c: add DER NULL to the digest oid's
2526         * hxtool-commands.in: add --content-info to cms-verify-sd
2528         * cms.c (hx509_cms_create_signed_1): pass in a full
2529         AlgorithmIdentifier instead of heim_oid for digest_alg
2531         * crypto.c: make digest_alg a digest_oid, it's not needed right
2532         now
2534         * hx509_err.et: add CERT_NOT_FOUND
2535         
2536         * keyset.c (_hx509_certs_find): add error code for cert not
2537         found
2539         * cms.c (hx509_cms_verify_signed): add external store of
2540         certificates, use the right digest algorithm identifier.
2542         * cert.c: fix const warning
2544         * ks_p12.c: slightly less verbose
2545         
2546         * cert.c: add hx509_cert_find_subjectAltName_otherName, add
2547         HX509_QUERY_MATCH_FRIENDLY_NAME
2548         
2549         * hx509.h: add hx509_octet_string_list, remove bad comment
2550         
2551         * hx_locl.h: add HX509_QUERY_MATCH_FRIENDLY_NAME
2553         * keyset.c (hx509_certs_append): needs a hx509_lock, add one
2555         * Makefile.am: add test cases tempfiles to CLEANFILES
2556         
2557         * Makefile.am: add test_query to TESTS, fix dependency on hxtool
2558         sources on hxtool-commands.h
2560         * hxtool-commands.in: explain what signer is for create-sd
2562         * hxtool.c: add query, add more options to verify-sd and create-sd
2564         * test_cms.in: add more cms tests
2565         
2566         * hxtool-commands.in: add query, add more options to verify-sd
2568         * test_query.in: test query interface
2569         
2570         * data: fix filenames for ds/ke files, add pkcs12 files, regen
2571         
2572         * hxtool.c,Makefile.am,hxtool-commands.in: switch to slc
2574 2005-07-26  Love Hörnquist Åstrand  <lha@it.su.se>
2576         * cert.c (hx509_verify_destroy_ctx): add
2577         
2578         * hxtool.c: free hx509_verify_ctx
2579         
2580         * name.c (_hx509_name_ds_cmp): make sure all strings are not equal
2582 2005-07-25  Love Hörnquist Åstrand  <lha@it.su.se>
2584         * hxtool.c: return error
2585         
2586         * keyset.c: return errors from iterations
2587         
2588         * test_chain.in: clean up checks
2589         
2590         * ks_file.c (parse_certificate): return errno's not 1 in case of
2591         error
2592         
2593         * ks_file.c (file_iter): make sure endpointer is NULL
2595         * ks_mem.c (mem_iter): follow conversion and return NULL when we
2596         get to the end, not ENOENT.
2597         
2598         * Makefile.am: test_chain depends on hxtool
2599         
2600         * data: test certs that lasts 10 years
2601         
2602         * data/gen-req.sh: script to generate test certs
2603         
2604         * Makefile.am: Add regression tests.
2606         * data: test certificate and keys
2608         * test_chain.in: test chain
2610         * hxtool.c (cms_create_sd): add KU digitalSigature as a
2611         requirement to the query
2613         * hx_locl.h: add KeyUsage query bits
2615         * hx509_err.et: add KeyUsage error
2617         * cms.c: add checks for KeyUsage
2619         * cert.c: more checks on KeyUsage, allow to query on them too
2621 2005-07-24  Love Hörnquist Åstrand  <lha@it.su.se>
2623         * cms.c: Add missing break.
2624         
2625         * hx_locl.h,cms.c,cert.c: allow matching on SubjectKeyId
2627         * hxtool.c: Use _hx509_map_file, _hx509_unmap_file and
2628         _hx509_write_file.
2630         * file.c (_hx509_write_file): in case of write error, return errno
2632         * file.c (_hx509_write_file): add a function that write a data
2633         blob to disk too
2635         * Fix id-tags
2637         * Import mostly complete X.509 and CMS library. Handles, PEM, DER,
2638         PKCS12 encoded certicates.  Verificate RSA chains and handled
2639         CMS's SignedData, and EnvelopedData.