summaryrefslogtreecommitdiffstats
path: root/keyserver/ChangeLog
blob: d9f513620bdb069700e9a6d1b56c7d0940112495 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
2009-01-22  Werner Koch  <wk@g10code.com>

	* Makefile.am (gpg2keys_curl_LDADD, gpg2keys_hkp_LDADD): Add all
	standard libs.

2008-10-20  Werner Koch  <wk@g10code.com>

	* curl-shim.c (curl_global_init): Mark usused arg.
	(curl_version_info): Ditto.

2008-08-29  Werner Koch  <wk@g10code.com>

	* gpgkeys_kdns.c: Changed copyright notice to the FSF.

2008-04-21  Werner Koch  <wk@g10code.com>

	* ksutil.c (w32_init_sockets) [HAVE_W32_SYSTEM]: New.
	* curl-shim.c (curl_easy_init) [HAVE_W32_SYSTEM]: Call it.
	* gpgkeys_finger.c: s/_WIN32/HAVE_W32_SYSTEM/.
	(init_sockets): Remove.
	(connect_server) [HAVE_W32_SYSTEM]: Call new function.  

2008-04-14  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_curl.c (main), gpgkeys_hkp.c (main): Make sure all
	libcurl number options are passed as long.

	* curl-shim.c (curl_easy_setopt): Minor tweak to match the real
	curl better - libcurl uses 'long', not 'unsigned int'.

2008-04-07  Werner Koch  <wk@g10code.com>

	* gpgkeys_kdns.c: New.
	* Makefile.am: Support kdns. 

	* no-libgcrypt.c (gcry_strdup): Fix.  It was not used.

2008-03-25  Werner Koch  <wk@g10code.com>

	* gpgkeys_ldap.c (build_attrs): Take care of char defaulting to
	unsigned when using hextobyte.

2007-10-25  David Shaw  <dshaw@jabberwocky.com>  (wk)

	From 1.4 (July):
	
	* gpgkeys_ldap.c (main): Fix bug in setting up whether to verify
	peer SSL cert.  This used to work with older OpenLDAP, but is now
	more strictly handled.

	* gpgkeys_ldap.c (search_key, main): Fix bug where searching for
	foo bar (no quotes) on the command line resulted in searching for
	"foo\2Abar" due to LDAP quoting.  The proper search is "foo*bar".

2007-06-11  Werner Koch  <wk@g10code.com>

	* gpgkeys_hkp.c (send_key): Rename eof to r_eof as some Windows
	header defines such a symbol.
	(main): Likewise.

2007-06-06  Werner Koch  <wk@g10code.com>

	* gpgkeys_ldap.c (send_key, send_key_keyserver): Rename eof to
	r_eof as some Windows file has such a symbol.
	(main): Likewise.

2007-05-07  Werner Koch  <wk@g10code.com>

	* Makefile.am (gpg2keys_ldap_LDADD): Add GPG_ERROR_LIBS.

2007-05-04  Werner Koch  <wk@g10code.com>

	* gpgkeys_test.in: Rename to ..
	* gpg2keys_test.in: .. this.
	* gpgkeys_mailto.in: Rename to ..
	* gpg2keys_mailto.in: .. this
	* Makefile.am: Likewise

2007-03-13  David Shaw  <dshaw@jabberwocky.com>

	From STABLE-BRANCH-1-4

	* gpgkeys_curl.c (main): Use curl_version_info to verify that the
	protocol we're about to use is actually available.

	* curl-shim.h, curl-shim.c (curl_free): Make into a macro.
	(curl_version_info): New.  Only advertises "http" for our shim, of
	course.

2007-03-09  David Shaw  <dshaw@jabberwocky.com>

	From STABLE-BRANCH-1-4

	* gpgkeys_ldap.c (send_key): Missing a free().

	* curl-shim.c (curl_easy_perform): Some debugging items that may
	be handy.

2006-12-03  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (search_key): HKP keyservers like the 0x to be
	present when searching by keyID.

2006-11-22  Werner Koch  <wk@g10code.com>

	* Makefile.am (gpg2keys_ldap_LDADD): Add jnlib.  This is needed
	for some replacement functions.

2006-11-21  Werner Koch  <wk@g10code.com>

	* curl-shim.c (curl_easy_perform): Made BUFLEN and MAXLNE a size_t.

2006-11-05  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (curl_mrindex_writer): Revert previous change.
	Key-not-found still has a HTML response.

2006-10-24  Marcus Brinkmann  <marcus@g10code.de>

	* Makefile.am (gpg2keys_ldap_CPPFLAGS): Rename second instance to ...
	(gpg2keys_finger_CPPFLAGS): ... this.

2006-10-20  Werner Koch  <wk@g10code.com>

	* Makefile.am: Reporder macros for better readability.
	(gpg2keys_finger_LDADD): Add GPG_ERROR_LIBS.

2006-10-19  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (curl_mrindex_writer): Print a warning if we see
	HTML coming back from a MR hkp query.

2006-10-17  Werner Koch  <wk@g10code.com>

	* Makefile.am: Removed W32LIBS as they are included in NETLIBS.
	Removed PTH_LIBS.

2006-09-26  Werner Koch  <wk@g10code.com>

	* curl-shim.c: Adjusted for changes in http.c.
	(curl_easy_perform): Changed LINE from unsigned char* to char*.

	* Makefile.am (gpg2keys_curl_LDADD, gpg2keys_hkp_LDADD)
	[FAKE_CURL]: Need to link against common_libs and pth.

	* curl-shim.h, curl-shim.c: Removed license exception as not
	needed here.

2006-09-22  Werner Koch  <wk@g10code.com>

	* gpgkeys_curl.c, gpgkeys_hkp.c, gpgkeys_ldap.c, curl-shim.c:
	* curl-shim.h, ksutil.c, ksutil.h: Add special license exception
	for OpenSSL.  This helps to avoid license conflicts if OpenLDAP or
	cURL is linked against OpenSSL and we would thus indirectly link
	to OpenSSL.  This is considered a bug fix and forgives all
	possible violations, pertaining to this issue, possibly occured in
	the past.
	
	* no-libgcrypt.c: Changed license to a simple all permissive one.

	* Makefile.am (gpg2keys_ldap_LDADD): For license reasons do not
	link against common_libs.
	(gpg2keys_curl_LDADD, gpg2keys_hkp_LDADD): Ditto.
	* ksutil.c (ks_hextobyte, ks_toupper, ks_strcasecmp): New.
	Identical to the ascii_foo versions from jnlib.
	* gpgkeys_ldap.c: Include assert.h.
	(main): Replace BUG by assert.
	(build_attrs): Use ks_hextobyte and ks_strcasecmp.

	* gpgkeys_finger.c (get_key): Resolved signed/unisgned char
	mismatch.

2006-09-19  Werner Koch  <wk@g10code.com>
	
	* no-libgcrypt.c: New. Taken from ../tools.
	* Makefile.am: Add no-libgcrypt to all sources.

2006-09-06  Marcus Brinkmann  <marcus@g10code.de>

	* Makefile.am (AM_CFLAGS): Add $(GPG_ERROR_CFLAGS).

2006-08-16  Werner Koch  <wk@g10code.com>

	* Makefile.am: Renamed all binaries to gpg2keys_*.
	(gpg2keys_ldap_CPPFLAGS): Add AM_CPPFLAGS.

2006-08-15  Werner Koch  <wk@g10code.com>

	* Makefile.am: Adjusted to the gnupg2 framework.

2006-08-14  Werner Koch  <wk@g10code.com>

	* curl-shil.c, curl-shim.h: Changed to make use of the new http.c
	API.

	* curl-shim.c (curl_easy_perform): Add missing http_close to the
	POST case.

2006-07-24  David Shaw  <dshaw@jabberwocky.com>  (wk)

	* curl-shim.c (curl_easy_perform): Minor cleanup of proxy code.

	* gpgkeys_hkp.c (send_key)
	* gpgkeys_ldap.c (send_key, send_key_keyserver): Fix string
	matching problem when the ascii armored form of the key happens to
	match "KEY" at the beginning of the line.

2006-04-26  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_http.c, gpgkeys_oldhkp.c: Removed.

	* Makefile.am: Don't build gpgkeys_http or gpgkeys_(old)hkp any
	longer as this is done via curl or fake-curl.

	* ksutil.h, ksutil.c, gpgkeys_hkp.c, gpgkeys_curl.c: Minor
	#include tweaks as FAKE_CURL is no longer meaningful.

2006-04-10  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (ldap_quote, get_name, search_key): LDAP-quote
	directly into place rather than mallocing temporary buffers.

	* gpgkeys_ldap.c (get_name): Build strings with strcat rather than
	using sprintf which is harder to read and modify.

	* ksutil.h, ksutil.c (classify_ks_search): Add
	KS_SEARCH_KEYID_SHORT and KS_SEARCH_KEYID_LONG to search for a key
	ID.

	* gpgkeys_ldap.c (search_key): Use it here to flip from pgpUserID
	searches to pgpKeyID or pgpCertID.

2006-03-27  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c: #define LDAP_DEPRECATED for newer OpenLDAPs so
	they use the regular old API that is compatible with other LDAP
	libraries.

2006-03-03  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (main): Fix build problem with non-OpenLDAP LDAP
	libraries that have TLS.

2006-02-23  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.c (init_ks_options): Default include-revoked and
	include-subkeys to on, as gpg isn't doing this any longer.

2006-02-22  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (get_name): A GETNAME query turns exact=on to cut
	down on odd matches.

2006-02-21  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (make_one_attr, build_attrs, send_key): Don't
	allow duplicate attributes as OpenLDAP is now enforcing this.

	* gpgkeys_ldap.c (main): Add binddn and bindpw so users can pass
	credentials to a remote LDAP server.

	* curl-shim.h, curl-shim.c (curl_easy_init, curl_easy_setopt,
	curl_easy_perform): Mingw has 'stderr' as a macro?

	* curl-shim.h, curl-shim.c (curl_easy_init, curl_easy_setopt,
	curl_easy_perform): Add CURLOPT_VERBOSE and CURLOPT_STDERR for
	easier debugging.

2006-01-16  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (send_key): Do not escape the '=' in the HTTP POST
	when uploading a key.

2005-12-23  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.h, ksutil.c (parse_ks_options): New keyserver command
	"getname".

	* gpgkeys_hkp.c (main, get_name), gpgkeys_ldap.c (main, get_name):
	Use it here to do direct name (rather than key ID) fetches.

2005-12-19  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.h, ksutil.c (curl_armor_writer, curl_writer,
	curl_writer_finalize): New functionality to handle binary format
	keys by armoring them for input to GPG.

	* gpgkeys_curl.c (get_key), gpgkeys_hkp.c (get_key): Call it here.

2005-12-07  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_finger.c (get_key), gpgkeys_curl.c (get_key): Better
	language for the key-not-found error.

	* ksutil.c (curl_err_to_gpg_err): Add CURLE_OK and
	CURLE_COULDNT_CONNECT.

	* gpgkeys_curl.c (get_key): Give key-not-found error if no data is
	found (or file itself is not found) during a fetch.

2005-12-06  David Shaw  <dshaw@jabberwocky.com>

	* curl-shim.c (curl_easy_perform): Fix build warning (code before
	declaration).

2005-11-02  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (search_key): Fix warning with typecast (though
	curl should really have defined that char * as const).

2005-08-25  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.h, ksutil.c (parse_ks_options): Remove exact-name and
	exact-email.
	(classify_ks_search): Mimic the gpg search modes instead with *,
	=, <, and @.

	* gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Call
	them here.  Suggested by Jason Harris.

2005-08-18  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.h, ksutil.c (parse_ks_options): New keyserver-option
	exact-name.  The last of exact-name and exact-email overrides the
	earlier.

	* gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Use it
	here to do a name-only search.

	* gpgkeys_ldap.c (ldap_quote): \-quote a string for LDAP.

	* gpgkeys_ldap.c (search_key): Use it here to escape reserved
	characters in searches.

2005-08-17  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.h, ksutil.c (parse_ks_options): New keyserver-option
	exact-email.

	* gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Use it
	here to do an email-only search.

2005-08-08  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: Include LDAP_CPPFLAGS when building LDAP.

2005-08-03  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (main), gpgkeys_curl.c (main), curl-shim.h: Show
	version of curl (or curl-shim) when debug is set.

2005-07-20  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_curl.c (get_key, main): Don't try and be smart about
	what protocols we handle.  Directly pass them to curl or fake-curl
	and see if an error comes back.

	* curl-shim.h, curl-shim.c (handle_error), ksutil.c
	(curl_err_to_gpg_err): Add support for CURLE_UNSUPPORTED_PROTOCOL
	in fake curl.

	* Makefile.am: Don't need -DFAKE_CURL any longer since it's in
	config.h.

2005-06-23  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_mailto.in, gpgkeys_test.in: Use @VERSION@ so version
	string stays up to date.

	* gpgkeys_http.c: Don't need to define HTTP_PROXY_ENV here since
	it's in ksutil.h.

	* gpgkeys_curl.c (get_key, main), gpgkeys_hkp.c (main): Pass AUTH
	values to curl or curl-shim.

	* curl-shim.c (curl_easy_perform), gpgkeys_curl.c (main),
	gpgkeys_hkp.c (main): Use curl-style proxy semantics.

	* curl-shim.h, curl-shim.c (curl_easy_setopt, curl_easy_perform):
	Add CURLOPT_USERPWD option for HTTP auth.

	* gpgkeys_http.c (get_key), gpgkeys_oldhkp (send_key, get_key,
	search_key): No longer need to pass a proxyauth.

	* gpgkeys_http.c (get_key): Pass auth outside of the URL.

2005-06-21  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_http.c (get_key), gpgkeys_oldhkp.c (send_key, get_key,
	search_key): Fix http_open/http_open_document calls to pass NULL
	for auth and proxyauth since these programs pass them in the URL.

2005-06-20  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (append_path, send_key, get_key, search_key,
	main), gpgkeys_oldhkp.c (main): Properly handle double slashes in
	paths.

2005-06-05  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.c (init_ks_options, parse_ks_options): Provide a default
	"/" path unless overridden by the config.  Allow config to specify
	items multiple times and take the last specified item.

2005-06-04  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c, gpgkeys_oldhkp.c: Add support for HKP servers
	that aren't at the root path.  Suggested by Jack Bates.

2005-06-01  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.c [HAVE_DOSISH_SYSTEM]: Fix warnings on mingw32.  Noted
	by Joe Vender.

2005-05-04  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.h, ksutil.c: #ifdef so we can build without libcurl or
	fake-curl.

2005-05-03  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_http.c: Need GET defined.

2005-05-01  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c, gpgkeys_oldhkp.c, ksutil.h: Some minor cleanup
	and comments as to the size of MAX_LINE and MAX_URL.

2005-04-16  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c: New hkp handler that uses curl or curl-shim.

	* Makefile.am: Build new gpgkeys_hkp.

	* curl-shim.c (curl_easy_perform): Cleanup.

	* ksutil.h, ksutil.c (curl_writer), gpgkeys_curl.c (get_key): Pass
	a context to curl_writer so we can support multiple fetches in a
	single session.

	* curl-shim.h, curl-shim.c (handle_error, curl_easy_setopt,
	curl_easy_perform): Add POST functionality to the curl shim.

	* curl-shim.h, curl-shim.c (curl_escape, curl_free): Emulate
	curl_escape and curl_free.

	* gpgkeys_curl.c (main): If the http-proxy option is given without
	any arguments, try to get the proxy from the environment.

	* ksutil.h, ksutil.c (curl_err_to_gpg_err, curl_writer): Copy from
	gpgkeys_curl.c.

	* gpgkeys_oldhkp.c: Copy from gpgkeys_hkp.c.

2005-03-22  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c, ksutil.h, ksutil.c (print_nocr): Moved from
	gpgkeys_ldap.c.  Print a string, but strip out any CRs.

	* gpgkeys_finger.c (get_key), gpgkeys_hkp.c (get_key),
	gpgkeys_http.c (get_key): Use it here when outputting key material
	to canonicalize line endings.

2005-03-19  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (main): Fix three wrong calls to fail_all().
	Noted by Stefan Bellon.

2005-03-17  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.c (parse_ks_options): Handle verbose=nnn.

	* Makefile.am: Calculate GNUPG_LIBEXECDIR directly.  Do not
	redefine $libexecdir.

	* gpgkeys_curl.c, gpgkeys_finger.c, gpgkeys_ldap.c: Start using
	parse_ks_options and remove a lot of common code.

	* ksutil.h, ksutil.c (parse_ks_options): Parse OPAQUE, and default
	debug with no arguments to 1.

2005-03-16  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c: Include lber.h if configure determines we need
	it.

	* ksutil.h, ksutil.c (ks_action_to_string): New.
	(free_ks_options): Only free if options exist.

	* ksutil.h, ksutil.c (init_ks_options, free_ks_options,
	parse_ks_options): Pull a lot of duplicated code into a single
	options parser for all keyserver helpers.

2005-02-11  David Shaw  <dshaw@jabberwocky.com>

	* curl-shim.c (curl_easy_perform): Fix compile warning.

	* curl-shim.h, gpgkeys_curl.c (main), gpgkeys_ldap.c (main): Add
	ca-cert-file option, to pass in the SSL cert.

	* curl-shim.h, curl-shim.c: New.  This is code to fake the curl
	API in terms of the current HTTP iobuf API.

	* gpgkeys_curl.c [FAKE_CURL], Makefile.am: If FAKE_CURL is set,
	link with the iobuf code rather than libcurl.

2005-02-05  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_finger.c (main), gpgkeys_hkp.c (main): Fix --version
	output.

	* gpgkeys_curl.c (main): Make sure the curl handle is cleaned up
	on failure.

2005-02-01  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (get_key), gpgkeys_http.c (get_key): Fix missing
	http_close() calls.  Noted by Phil Pennock.

	* ksutil.h: Up the default timeout to two minutes.

2005-01-24  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (print_nocr): New.
	(get_key): Call it here to canonicalize line endings.

	* gpgkeys_curl.c (writer): Discard everything outside the BEGIN
	and END lines when retrieving keys.  Canonicalize line endings.
	(main): Accept FTPS.

2005-01-21  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (main): Add "check-cert" option to disable SSL
	certificate checking (which is on by default).

	* gpgkeys_curl.c (main): Add "debug" option to match the LDAP
	helper.  Add "check-cert" option to disable SSL certificate
	checking (which is on by default).

2005-01-18  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_curl.c: Fix typo.

2005-01-18  Werner Koch  <wk@g10code.com>

	* gpgkeys_curl.c: s/MAX_PATH/URLMAX_PATH/g to avoid a clash with
	the W32 defined macro.  Removed unneeded initialization of static
	variables.
	* gpgkeys_http.c: Ditto.
	* ksutil.h: s/MAX_PATH/URLMAX_PATH/.

2005-01-17  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_curl.c (main): Only allow specified protocols to use the
	curl handler.

	* Makefile.am: Use LIBCURL_CPPFLAGS instead of LIBCURL_INCLUDES.

2005-01-13  David Shaw  <dshaw@jabberwocky.com>

	* ksutil.h, gpgkeys_curl.c, gpgkeys_hkp.c, gpgkeys_ldap.c,
	gpgkeys_finger.c, gpgkeys_http.c: Part 2 of the cleanup.  Move all
	the various defines to ksutil.h.

	* gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
	Part 1 of a minor cleanup to use #defines instead of hard-coded
	sizes.

	* gpgkeys_finger.c (connect_server): Use INADDR_NONE instead of
	SOCKET_ERROR.  Noted by Timo.

2005-01-09  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_curl.c (get_key): Newer versions of libcurl don't define
	TRUE.

2004-12-24  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_curl.c (main): Use new defines for opting out of certain
	transfer protocols.  Allow setting HTTP proxy via "http-proxy=foo"
	option (there is natural support in libcurl for the http_proxy
	environment variable).

	* Makefile.am: Remove the conditional since this is all handled in
	autoconf now.

2004-12-22  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_curl.c (main): New "follow-redirects" option.  Takes an
	optional numeric value for the maximum number of redirects to
	allow.  Defaults to 5.

	* gpgkeys_curl.c (main), gpgkeys_finger.c (main), gpgkeys_hkp.c
	(main), gpgkeys_http.c (main), gpgkeys_ldap.c (main): Make sure
	that a "timeout" option passed with no arguments is properly
	handled.

	* gpgkeys_curl.c (get_key, writer): New function to wrap around
	fwrite to avoid DLL access problem on win32.

	* gpgkeys_http.c (main, get_key): Properly pass authentication
	info through to the http library.

	* Makefile.am: Build gpgkeys_http or gpgkeys_curl as needed.

	* gpgkeys_curl.c (main, get_key): Minor tweaks to work with either
	FTP or HTTP.

	* gpgkeys_ftp.c: renamed to gpgkeys_curl.c.

	* gpgkeys_ftp.c (main, get_key): Use auth data as passed by gpg.
	Use CURLOPT_FILE instead of CURLOPT_WRITEDATA (same option, but
	backwards compatible).

2004-12-21  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ftp.c: New.

	* Makefile.am: Build it if requested.

2004-12-14  Werner Koch  <wk@g10code.com>

	* Makefile.am (install-exec-hook, uninstall-hook): Removed.  For
	Windows reasons we can't use the symlink trick.

2004-12-03  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: The harmless "ignored error" on gpgkeys_ldap
	install on top of an existing install is bound to confuse people.
	Use ln -s -f to force the overwrite.

2004-10-28  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_finger.c [_WIN32] (connect_server): Fix typo.

2004-10-28  Werner Koch  <wk@g10code.com>

	* Makefile.am (other_libs): New.  Also include LIBICONV.  Noted by
	Tim Mooney.

2004-10-28  Werner Koch  <wk@g10code.com>

	* Makefile.am (other_libs): 

2004-10-18  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (send_key, get_key, search_key): Use "hkp" instead
	of "x-hkp" so it can be used as a SRV tag.

2004-10-16  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_finger.c [_WIN32] (connect_server): Fix typo.

2004-10-15  Werner Koch  <wk@g10code.com>

	* gpgkeys_ldap.c (main, show_help): Kludge to implement standard
	GNU options. Factored help printing out.
	* gpgkeys_finger.c (main, show_help): Ditto.
	* gpgkeys_hkp.c (main, show_help): Ditto.
	* gpgkeys_http.c (main, show_help): Ditto.
	* gpgkeys_test.in, gpgkeys_mailto.in: Implement --version and --help.

	* Makefile.am: Add ksutil.h.

2004-10-14  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_finger.c (main): We do not support relay fingering
	(i.e. "finger://relayhost/user@example.com"), but finger URLs are
	occasionally miswritten that way.  Give an error in this case.

2004-10-14  Werner Koch  <wk@g10code.com>

	* gpgkeys_finger.c (get_key): s/unsigned char/byte/ due
	to a strange typedef for RISC OS.  Noted by Stefan.

2004-10-13  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (main), gpgkeys_hkp.c (main), gpgkeys_http.c
	(main), gpgkeys_finger.c (main): Call timeout functions before
	performing an action that could block for a long time.

	* ksutil.h, ksutil.c: New.  Right now just contains timeout
	functions.

2004-10-11  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
	Fix a few occurances of "filename" to `filename'.

2004-10-11  Werner Koch  <wk@g10code.com>

	* gpgkeys_finger.c: New.

2004-08-27  Stefan Bellon  <sbellon@sbellon.de>

	* gpgkeys_hkp.c (search_key): Fix the prior faulty fix by
	introducing a cast but leaving skey unsigned.

	* gpgkeys_hkp.c (search_key): Change type of variable skey from
	unsigned char* to char* to fix type incompatibility.

2004-08-23  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (get_key, search_key), gpgkeys_hkp.c (get_key,
	search_key), gpgkeys_http.c (get_key): Do not give informational
	logs since this is now done inside gpg.

	* gpgkeys_hkp.c (dehtmlize): Understand the quote character
	(i.e. "&quot;") in HTML responses.
	(search_key): Search key must be unsigned for url encoder to work
	properly for 8-bit values.

	* gpgkeys_ldap.c (get_key): Factor out informational display into
	new function build_info().

	* gpgkeys_ldap.c (build_attrs): Properly terminate user ID strings
	that got shrunk due to encoding.

2004-08-22  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (find_basekeyspacedn): Use LDAP_SCOPE_BASE along
	with a full DN rather than LDAP_SCOPE_ONELEVEL plus a filter to
	find the pgpServerInfo object.  Some LDAP setups don't like the
	search.
	(main): Stop binding to the server since it seems no server really
	requires it, and some require it not be there.

2004-07-29  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (main): Add "debug" option.  This is only really
	useful with OpenLDAP, but it's practically vital to debug SSL and
	TLS setups.  Add "basedn" option.  This allows users to override
	the autodetection for base DN.  SSL overrides TLS, so TLS will not
	be started on SSL connections (starting an already started car).

2004-07-28  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (build_attrs): Add "pgpKeySize" and "pgpSubKeyID"
	attributes so we can do subkey searches.

	* gpgkeys_ldap.c (main): Under certain error conditions, we might
	try and unbind twice.  Don't.

	* gpgkeys_ldap.c (join_two_modlists): New.
	(send_key): Use new function so we can try a modify operation
	first, and fail over to an add if that fails.  Add cannot cope
	with the NULLs at the head of the modify request, so we jump into
	the list in the middle.

2004-07-27  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (main): Don't try and error out before making a
	ldaps connection to the NAI keyserver since we cannot tell if it
	is a NAI keyserver until we connect.  Fail if we cannot find a
	base keyspace DN.  Fix a false success message for TLS being
	enabled.

2004-07-20  Werner Koch  <wk@gnupg.org>

	* gpgkeys_ldap.c [_WIN32]: Include Windows specific header files.
	Suggested by Brian Gladman.

2004-05-26  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_http.c: General polish and removal of leftover stuff
	from gpgkeys_hkp.c.

2004-05-21  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_http.c (get_key): Cosmetic fix - make sure that URLs
	with no path use a path of "/".

	* gpgkeys_ldap.c (ldap2epochtime): We can always rely on timegm()
	being available now, since it's a replacement function.

2004-05-20  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_http.c: New program to do a simple HTTP file fetch using
	the keyserver interface.

	* Makefile.am: Build it.

2004-02-28  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: Don't split LDADD across two lines since some make
	programs can't handle blank lines after a \ continuation.  Noted
	by Christoph Moench-Tegeder.

2004-02-25  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (send_key): List pgpCertID as one of the deleted
	attributes.  This guarantees that if something goes wrong, we
	won't be able to complete the transaction, thus leaving any key
	already existing on the server intact.

2004-02-23  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (delete_one_attr): Removed.
	(make_one_attr): Delete functionality added.  Optional deduping
	functionality added (currently only used for pgpSignerID).
	(build_attrs): Translate sig entries into pgpSignerID.  Properly
	build the timestamp for pgpKeyCreateTime and pgpKeyExpireTime.

2004-02-22  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (delete_one_attr): New function to replace
	attributes with NULL (a "delete" that works even for nonexistant
	attributes).
	(send_key): Use it here to remove attributes so a modify operation
	starts with a clean playing field.  Bias sends to modify before
	add, since (I suspect) people update their existing keys more
	often than they make and send new keys to the server.

2004-02-21  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (epoch2ldaptime): New.  Converse of
	ldap2epochtime.
	(make_one_attr): New. Build a modification list in memory to send
	to the LDAP server.
	(build_attrs): New. Parse INFO lines sent over by gpg.
	(free_mod_values): New.  Unwinds a modification list.
	(send_key_keyserver): Renamed from old send_key().
	(send_key): New function to send a key to a LDAP server.
	(main): Use send_key() for real LDAP servers, send_key_keyserver()
	otherwise.

2004-02-20  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
	(search_key): Catch a SIZELIMIT_EXCEEDED error and show the user
	whatever the server did give us.
	(find_basekeyspacedn): There is no guarantee that namingContexts
	will be readable.

	* Makefile.am: Link gpgkeys_ldap with libutil.a to get the
	replacement functions (and eventually translations, etc).

2004-02-19  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (ldap2epochtime): LDAP timestamps are UTC, so do
	not correct for timezones.
	(main): Find the basekeyspacedn before we try to start TLS, so we
	can give a better error message when a user tries to use TLS with
	a LDAP keyserver.

	* Makefile.am: Add automake conditionals to symlink gpgkeys_ldaps
	to gpgkeys_ldap when needed.

	* gpgkeys_ldap.c (main): Add support for LDAPS and TLS
	connections.  These are only useful and usable when talking to
	real LDAP keyservers.  Add new "tls" option to tune TLS use from
	off, to try quietly, to try loudly, or to require TLS.

	* gpgkeys_ldap.c (find_basekeyspacedn): New function to figure out
	what kind of LDAP server we're talking to (either real LDAP or the
	LDAP keyserver), and return the baseKeySpaceDN to find keys under.
	(main): Call it from here, and remove the old code that only
	handled the LDAP keyserver.

2004-02-18  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (ldap_to_gpg_err): Make sure that
	LDAP_OPT_ERROR_NUMBER is defined before we use it.

	* gpgkeys_mailto.in: Fix VERSION number.

2004-01-13  Werner Koch  <wk@gnupg.org>

	* gpgkeys_hkp.c (send_key): Add a content type.

2004-01-11  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (search_key): Catch a mangled input file (useful
	if something other than GnuPG is calling the program).
	(main): Avoid possible pre-string write.  Noted by Christian
	Biere.

	* gpgkeys_ldap.c (main): Avoid possible pre-string write.

2003-12-28  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (send_key, get_key, main): Work with new HTTP code
	that passes the proxy in from the outside.  If the command file
	sends a proxy, use it.  If it sends "http-proxy" with no
	arguments, use $http_proxy from the environment.  Suggested by
	Christian Biere.

2003-12-28  Stefan Bellon  <sbellon@sbellon.de>

	* gpgkeys_hkp.c, gpgkeys_ldap.c [__riscos__]: Removal of
	unnecessary #ifdef __riscos__ sections.

2003-11-27  Werner Koch  <wk@gnupg.org>

	* gpgkeys_hkp.c (get_key): Fixed invalid use of fprintf without
	format string.

2003-10-25  Werner Koch  <wk@gnupg.org>

	* Makefile.am (gpgkeys_hkp_LDADD): Replaced INTLLIBS by LIBINTL.

2003-07-10  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: Use W32LIBS where appropriate.

2003-05-30  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c, gpgkeys_ldap.c: #include <getopt.h> if it is
	available.  Also include extern references for optarg and optind
	since there is no guarantee that any header file will include
	them.  Standards?  We don't need no stinkin' standards.

	* Makefile.am: Use @GETOPT@ to pull in libiberty on those
	platforms that need it.

2003-04-08  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (dehtmlize, parse_hkp_index): Fix memory
	corruption bug on some platforms.

2003-03-11  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (get_key): Properly handle CRLF line endings in
	the armored key.
	(main): Accept "try-dns-srv" option.

	* Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using
	capabilities.  Use @SRVLIBS@ to link in the resolver if we are
	using DNS SRV.

2003-02-11  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
	so it can be easily overridden at make time.

2003-01-29  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_mailto.in: Fix regexp to work properly if the "keyid" is
	not a keyid, but rather a text string from the user ID.

2003-01-06  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (get_key): Use options=mr when getting a key so
	keyserver doesn't attach the HTML header which we will just have
	to discard.

2002-11-17  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
	protocol version.

2002-11-14  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (get_key): The deduping code requires
	"pgpcertid", but that was not available when running without
	verbose on.  Noted by Stefan.

2002-11-10  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (get_key): Fix typo in deduping code.

2002-11-05  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (key_in_keylist, add_key_to_keylist,
	free_keylist, get_key, search_key): The LDAP keyserver doesn't
	remove duplicates, so remove them locally.  Do not include the key
	modification time in the search response.

2002-11-04  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly
	handle an input file that does not include any key data at all.

2002-10-24  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (main), gpgkeys_ldap.c (main): Add -V flag to
	output protocol and program version.

2002-10-21  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: Anything linking with libutil.a needs INTLLIBS as
	well on platforms where INTLLIBS is set.

2002-10-14  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (write_quoted): Use %-encoding instead of
	\-encoding.
	(parse_hkp_index): Use new keyserver key listing format, and add
	support for disabled keys via include-disabled.

	* gpgkeys_ldap.c (get_key): Don't print keysize unless it's >0.
	(printquoted): Use %-encoding instead of \-encoding.
	(search_key): Use new keyserver key listing format.

2002-10-08  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (search_key, main): Make sure LDAP values are
	freed in case of error.

	* gpgkeys_ldap.c (fail_all): New function to unwind a keylist and
	error each item.
	(main): Call fail_all from here, as needed.  Also add a NO_MEMORY
	error in an appropriate place and fix error return code.
	(ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.

	* gpgkeys_hkp.c (fail_all): New function to unwind a keylist and
	error each item.
	(main): Call fail_all from here.  Also add a NO_MEMORY error in an
	appropriate place.
	(get_key): Use new UNREACHABLE error for network errors.

2002-09-26  Werner Koch  <wk@gnupg.org>

	* gpgkeys_ldap.c (send_key): Removed non-constant initializers.

2002-09-24  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (ldap_err_to_gpg_err, ldap_to_gpg_err, send_key,
	get_key, search_key, main): Some minor error reporting
	enhancements for use with GPA (show reasons for KEY FAILED).

	* gpgkeys_hkp.c (send_key, get_key, search_key, main): Some minor
	error reporting enhancements for use with GPA (show reasons for
	KEY FAILED).

2002-09-20  Werner Koch  <wk@gnupg.org>

	* gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
	shadowing warning.

2002-09-19  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (get_key, handle_old_hkp_index, search_key):
	Properly handle line truncation.

2002-09-16  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
	syntax so people can set their own email address to respond to.

	* gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
	gpg) and "key not found" (to user) on failure.

2002-09-13  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and
	request a machine-readable key index.  If the server supports
	this, pass it through.  If the server does not support it, parse
	the "index" page.

2002-09-12  Stefan Bellon  <sbellon@sbellon.de>

	* gpgkeys_hkp.c: Tidied up RISC OS initializations.

2002-09-12  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (main): Remove warning - this is no longer
	experimental code.

2002-09-09  Werner Koch  <wk@gnupg.org>

	* gpgkeys_hkp.c (send_key, get_key, search_key): Check return
	value of malloc.
	(dehtmlize): Use ascii_tolower to protect against weird locales.
	Cast the argument for isspace for the sake of broken HP/UXes.
	(search_key): Check return value of realloc.

2002-09-09  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (get_key): Some compilers (RISC OS, HPUX c89)
	don't like using variables as array initializers.

	* gpgkeys_hkp.c (send_key): Use CRLF in headers.

2002-08-28  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (parse_hkp_index): Use same types on all
	platforms.  This was probably leftover from earlier code where the
	typing mattered.

	* gpgkeys_hkp.c: Overall cleanup from iobuf conversion.  Be
	consistent in m_alloc and malloc usage.  Remove include-disabled
	(meaningless on HKP).  RISC OS tweak.

2002-08-27  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c, Makefile.am: Convert over to using iobufs.

	* gpgkeys_hkp.c (http_get, http_post): Use CRLF for line endings.

	* gpgkeys_hkp.c: Include util.h on RISC OS as per Stefan.  Include
	a replacement for hstrerror() for those platforms (such as RISC
	OS) that don't have it.

2002-08-26  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: May as well include gpgkeys_hkp.c in the
	distribution now.  It works well enough without proxies, and isn't
	built by default.  It would be good to get some test experience
	with it.

	* gpgkeys_hkp.c (main): Don't warn about include-subkeys - it
	isn't unsupported, it's actually non-meaningful in the context of
	HKP (yet).

	* gpgkeys_hkp.c (parse_hkp_index, dehtmlize): Move HTML
	functionality into new "dehtmlize" function.  Remove HTML before
	trying to parse each line from the keyserver.  If the keyserver
	provides key type information in the listing, use it.  (Copy over
	from g10/hkp.c).

2002-08-19  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (get_key, parse_hkp_index): Bring over latest code
	from g10/hkp.c.

	* gpgkeys_ldap.c (get_key): Fix cosmetic URL display problem
	(extra ":" at the end).

2002-08-03  Stefan Bellon  <sbellon@sbellon.de>

	* gpgkeys_ldap.c: Tidied up RISC OS initializations.

2002-07-25  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c: "Warning" -> "WARNING"

2002-07-24  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: Install keyserver helpers in @GNUPG_LIBEXECDIR@

2002-07-15  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (send_key, get_key, main): Consult the server
	version string to determine whether to use pgpKey or pgpKeyV2.

2002-07-09  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_mailto.in: Use new OPAQUE tag for non net-path URIs.
	Fail more elegantly if there is no email address to send to.  Show
	the GnuPG version in the message body.

2002-07-04  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (get_key), gpgkeys_hkp.c (get_key): Display
	keyserver URI as a URI, but only if verbose.

2002-07-01  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (parse_hkp_index): Error if the keyserver returns
	an unparseable HKP response.

	* gpgkeys_hkp.c (main): Warn on honor-http-proxy,
	broken-http-proxy, and include-subkeys (not supported yet).

	* gpgkeys_ldap.c (main), gpgkeys_hkp.c (http_connect, main): Fix
	some shadowing warnings.

2002-06-11  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am: Don't hard-code the LDAP libraries - get them from
	LDAPLIBS via configure.  Also, gpgkeys_hkp is a program, not a
	script.

2002-06-10  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (include_subkeys): Default "include-subkeys" to
	off, since GnuPG now defaults it to on.

2002-06-06  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_hkp.c (parse_hkp_index): Type tweaks.

	* gpgkeys_hkp.c (main): Add experimental code warning.

2002-06-05  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am, gpgkeys_hkp.c (new): Experimental HKP keyserver
	interface.

2002-05-08  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c: Include <lber.h> if we absolutely must.  This
	helps when compiling against a very old OpenLDAP.

2002-04-29  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_mailto.in: Properly handle key requests in full
	fingerprint form.

2002-03-29  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (printquoted): Quote backslashes within keyserver
	search responses.

2002-02-25  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap (get_key): LDAP keyservers do not support v3
	fingerprints, so error out if someone tries.  Actually, they don't
	support any fingerprints, but at least we can calculate a keyid
	from a v4 fingerprint.

2002-02-23  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap: Clarify the notion of a partial failure.  This is
	possible if more than one key is being handled in a batch, and one
	fails while the other succeeds.  Note that a search that comes up
	with no results is not a failure - that is a valid response of "no
	answer".

	* gpgkeys_ldap.c (get_key): Allow GnuPG to send us full v4
	fingerprints, long key ids, or short key ids while fetching.
	Since the LDAP server doesn't actually handle fingerprints, chop
	them down to long key ids for actual use.

	* gpgkeys_ldap.c (main, get_key): When searching for a keyid,
	search for subkeys as well as primary keys.  This is mostly
	significant when automatically fetching the key based on the id in
	a header (i.e. "signature made by....").  "no-include-subkeys"
	disables.

2002-02-14  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c: Fix compiler warning.

	* gpgkeys_ldap.c: Be much more robust with mangled input files.

2001-12-28  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_mailto.in: Use the new OUTOFBAND indicator so gpg knows
	not to try and import anything.  Also turn on perl -w for
	warnings.

	* gpgkeys_ldap.c (main): If we're using temp files (rather than
	stdin/stdout), make sure the file is closed when we're done.

2001-12-20  David Shaw  <dshaw@jabberwocky.com>

	* Properly free the LDAP response when we're done with it.

	* Now that we handle multiple keys, we must remove duplicates as
	the LDAP keyserver returns keys with multiple user IDs multiple
	times.

	* Properly handle multiple keys with the same key ID (it's really
	rare, so fetch "0xDEADBEEF" to test this).

2001-12-17  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c, gpgkeys_mailto.in: Fix GNU capitalization
	issues.  Prefix log messages with "gpgkeys" to clarify which
	program is generating them.

2001-12-14  David Shaw  <dshaw@jabberwocky.com>

	* gpgkeys_ldap.c (search_key): Use unsigned int rather than uint
	for portability.

2001-12-04  David Shaw  <dshaw@jabberwocky.com>

	* Initial version of gpgkeys_ldap (LDAP keyserver helper) and
	gpgkeys_mailto (email keyserver helper)


 Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
	   2007 Free Software Foundation, Inc.

 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without
 modifications, as long as this notice is preserved.

 This file is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.