Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/crypto/external/bsd/netpgp/dist/src/lib use hexdump() functi...
details: https://anonhg.NetBSD.org/src/rev/a8a50d9aa8d1
branches: trunk
changeset: 754660:a8a50d9aa8d1
user: agc <agc%NetBSD.org@localhost>
date: Sat May 08 00:31:07 2010 +0000
description:
use hexdump() function where appropriate.
change the way that we generate a detached signature file, so that ascii
armour is used if --armor is specified. addresses PR 43248 from Juan RP.
diffstat:
crypto/external/bsd/netpgp/dist/src/lib/netpgp.c | 15 ++-
crypto/external/bsd/netpgp/dist/src/lib/signature.c | 84 ++++++++------------
crypto/external/bsd/netpgp/dist/src/lib/signature.h | 4 +-
3 files changed, 44 insertions(+), 59 deletions(-)
diffs (253 lines):
diff -r 8373cb75985f -r a8a50d9aa8d1 crypto/external/bsd/netpgp/dist/src/lib/netpgp.c
--- a/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c Sat May 08 00:27:08 2010 +0000
+++ b/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c Sat May 08 00:31:07 2010 +0000
@@ -34,7 +34,7 @@
#if defined(__NetBSD__)
__COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: netpgp.c,v 1.46 2010/05/07 16:22:39 agc Exp $");
+__RCSID("$NetBSD: netpgp.c,v 1.47 2010/05/08 00:31:07 agc Exp $");
#endif
#include <sys/types.h>
@@ -829,7 +829,7 @@
overwrite);
}
-#define ARMOR_HEAD "-----BEGIN PGP MESSAGE-----"
+#define ARMOR_HEAD "-----BEGIN PGP MESSAGE-----\r\n"
/* decrypt a file */
int
@@ -856,7 +856,7 @@
if (fgets(buf, sizeof(buf), fp) == NULL) {
realarmor = 0;
} else {
- realarmor = (strncmp(buf, ARMOR_HEAD, strlen(ARMOR_HEAD)) == 0);
+ realarmor = (strcmp(buf, ARMOR_HEAD) == 0);
}
(void) fclose(fp);
return __ops_decrypt_file(netpgp->io, f, out, netpgp->secring,
@@ -931,7 +931,9 @@
if (detached) {
ret = __ops_sign_detached(io, f, out, seckey, hashalg,
get_birthtime(netpgp_getvar(netpgp, "birthtime")),
- get_duration(netpgp_getvar(netpgp, "duration")));
+ get_duration(netpgp_getvar(netpgp, "duration")),
+ (unsigned)armored,
+ overwrite);
} else {
ret = __ops_sign_file(io, f, out, seckey, hashalg,
get_birthtime(netpgp_getvar(netpgp, "birthtime")),
@@ -943,7 +945,7 @@
return ret;
}
-#define ARMOR_SIG_HEAD "-----BEGIN PGP SIGNATURE-----"
+#define ARMOR_SIG_HEAD "-----BEGIN PGP SIGNATURE-----\r\n"
/* verify a file */
int
@@ -971,8 +973,7 @@
if (fgets(buf, sizeof(buf), fp) == NULL) {
realarmor = 0;
} else {
- realarmor = (strncmp(buf, ARMOR_SIG_HEAD, strlen(ARMOR_SIG_HEAD)) == 0 ||
- strncmp(buf, ARMOR_HEAD, strlen(ARMOR_HEAD)) == 0);
+ realarmor = (strcmp(buf, ARMOR_SIG_HEAD) == 0);
}
(void) fclose(fp);
if (__ops_validate_file(io, &result, in, out, (const int)realarmor, netpgp->pubring)) {
diff -r 8373cb75985f -r a8a50d9aa8d1 crypto/external/bsd/netpgp/dist/src/lib/signature.c
--- a/crypto/external/bsd/netpgp/dist/src/lib/signature.c Sat May 08 00:27:08 2010 +0000
+++ b/crypto/external/bsd/netpgp/dist/src/lib/signature.c Sat May 08 00:31:07 2010 +0000
@@ -57,7 +57,7 @@
#if defined(__NetBSD__)
__COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: signature.c,v 1.26 2010/03/05 16:01:10 agc Exp $");
+__RCSID("$NetBSD: signature.c,v 1.27 2010/05/08 00:31:07 agc Exp $");
#endif
#include <sys/types.h>
@@ -335,31 +335,14 @@
}
if (__ops_get_debug_level(__FILE__)) {
- unsigned zz;
- unsigned uu;
-
- printf("\n");
- printf("hashbuf_from_sig\n");
- for (zz = 0; zz < debug_len_decrypted; zz++) {
- printf("%02x ", hashbuf_from_sig[n + zz]);
- }
- printf("\n");
- printf("prefix\n");
- for (zz = 0; zz < plen; zz++) {
- printf("%02x ", prefix[zz]);
- }
- printf("\n");
-
- printf("\n");
- printf("hash from sig\n");
- for (uu = 0; uu < hash_length; uu++) {
- printf("%02x ", hashbuf_from_sig[n + plen + uu]);
- }
- printf("\n");
- printf("hash passed in (should match hash from sig)\n");
- for (uu = 0; uu < hash_length; uu++) {
- printf("%02x ", hash[uu]);
- }
+ (void) fprintf(stderr, "\nhashbuf_from_sig\n");
+ hexdump(stderr, hashbuf_from_sig, debug_len_decrypted, " ");
+ printf("\nprefix\n");
+ hexdump(stderr, prefix, plen, " ");
+ (void) fprintf(stderr, "\nhash from sig\n");
+ hexdump(stderr, &hashbuf_from_sig[n + plen], hash_length, " ");
+ (void) fprintf(stderr, "\nhash passed in (should match hash from sig)\n");
+ hexdump(stderr, hash, hash_length, " ");
printf("\n");
}
return (memcmp(&hashbuf_from_sig[n], prefix, plen) == 0 &&
@@ -938,11 +921,12 @@
return &sig->hash;
}
+/* open up an output file */
static int
open_output_file(__ops_output_t **output,
const char *inname,
const char *outname,
- const unsigned armored,
+ const char *suffix,
const unsigned overwrite)
{
int fd;
@@ -958,8 +942,7 @@
(void) fprintf(stderr, "open_output_file: bad alloc\n");
fd = -1;
} else {
- (void) snprintf(f, flen, "%s.%s", inname,
- (armored) ? "asc" : "gpg");
+ (void) snprintf(f, flen, "%s.%s", inname, suffix);
fd = __ops_setup_file_write(output, f, overwrite);
free(f);
}
@@ -995,9 +978,9 @@
__ops_hash_alg_t hash_alg;
__ops_memory_t *infile;
__ops_output_t *output;
- uint8_t keyid[OPS_KEY_ID_SIZE];
__ops_hash_t *hash;
unsigned ret;
+ uint8_t keyid[OPS_KEY_ID_SIZE];
int fd_out;
sig = NULL;
@@ -1023,7 +1006,8 @@
}
/* setup output file */
- fd_out = open_output_file(&output, inname, outname, armored, overwrite);
+ fd_out = open_output_file(&output, inname, outname,
+ (armored) ? "asc" : "gpg", overwrite);
if (fd_out < 0) {
__ops_memory_free(infile);
return 0;
@@ -1148,7 +1132,7 @@
__ops_hash_alg_t hash_alg;
__ops_output_t *output;
__ops_memory_t *mem;
- uint8_t keyid[OPS_KEY_ID_SIZE];
+ uint8_t keyid[OPS_KEY_ID_SIZE];
__ops_hash_t *hash;
unsigned ret;
@@ -1249,14 +1233,14 @@
__ops_seckey_t *seckey,
const char *hash,
const int64_t from,
- const uint64_t duration)
+ const uint64_t duration,
+ const unsigned armored, const unsigned overwrite)
{
__ops_create_sig_t *sig;
__ops_hash_alg_t alg;
__ops_output_t *output;
__ops_memory_t *mem;
- uint8_t keyid[OPS_KEY_ID_SIZE];
- char fname[MAXPATHLEN];
+ uint8_t keyid[OPS_KEY_ID_SIZE];
int fd;
/* find out which hash algorithm to use */
@@ -1266,6 +1250,14 @@
return 0;
}
+ /* setup output file */
+ fd = open_output_file(&output, f, sigfile,
+ (armored) ? "asc" : "sig", overwrite);
+ if (fd < 0) {
+ (void) fprintf(io->errs,"Can't open output file: %s\n", f);
+ return 0;
+ }
+
/* create a new signature */
sig = __ops_create_sig_new();
__ops_start_sig(sig, seckey, alg, OPS_SIG_BINARY);
@@ -1273,8 +1265,13 @@
/* read the contents of 'f', and add that to the signature */
mem = __ops_memory_new();
if (!__ops_mem_readfile(mem, f)) {
+ __ops_teardown_file_write(output, fd);
return 0;
}
+ /* set armoured/not armoured here */
+ if (armored) {
+ __ops_writer_push_armor_msg(output);
+ }
__ops_sig_add_data(sig, __ops_mem_data(mem), __ops_mem_len(mem));
__ops_memory_free(mem);
@@ -1284,24 +1281,9 @@
__ops_keyid(keyid, sizeof(keyid), &seckey->pubkey);
__ops_add_issuer_keyid(sig, keyid);
__ops_end_hashed_subpkts(sig);
-
- /* write the signature to the detached file */
- if (sigfile == NULL) {
- (void) snprintf(fname, sizeof(fname), "%s.sig", f);
- sigfile = fname;
- }
- fd = open(sigfile, O_CREAT|O_TRUNC|O_WRONLY, 0666);
- if (fd < 0) {
- (void) fprintf(io->errs, "can't write signature to \"%s\"\n",
- sigfile);
- return 0;
- }
-
- output = __ops_output_new();
- __ops_writer_set_fd(output, fd);
__ops_write_sig(output, sig, &seckey->pubkey, seckey);
+ __ops_teardown_file_write(output, fd);
__ops_seckey_free(seckey);
- (void) close(fd);
return 1;
}
diff -r 8373cb75985f -r a8a50d9aa8d1 crypto/external/bsd/netpgp/dist/src/lib/signature.h
--- a/crypto/external/bsd/netpgp/dist/src/lib/signature.h Sat May 08 00:27:08 2010 +0000
+++ b/crypto/external/bsd/netpgp/dist/src/lib/signature.h Sat May 08 00:31:07 2010 +0000
@@ -126,7 +126,9 @@
__ops_seckey_t *,
const char *,
const int64_t,
- const uint64_t);
+ const uint64_t,
+ const unsigned,
+ const unsigned);
/* armoured stuff */
unsigned __ops_crc24(unsigned, uint8_t);
Home |
Main Index |
Thread Index |
Old Index