diff options
author | Werner Koch <[email protected]> | 2000-10-11 17:26:49 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2000-10-11 17:26:49 +0000 |
commit | c287a8d05bfa08a3ea7d2c8fc8ae8c3a740aef1c (patch) | |
tree | 541bb4fcd34dd379b6ac17f0e58af743dc9ed2bd /g10 | |
parent | This was missing in HEAD. (diff) | |
download | gnupg-c287a8d05bfa08a3ea7d2c8fc8ae8c3a740aef1c.tar.gz gnupg-c287a8d05bfa08a3ea7d2c8fc8ae8c3a740aef1c.zip |
Add features packet and fixes MIPS3.
Diffstat (limited to 'g10')
-rw-r--r-- | g10/ChangeLog | 8 | ||||
-rw-r--r-- | g10/build-packet.c | 1 | ||||
-rw-r--r-- | g10/keygen.c | 3 | ||||
-rw-r--r-- | g10/packet.h | 1 | ||||
-rw-r--r-- | g10/parse-packet.c | 9 |
5 files changed, 21 insertions, 1 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 6f73abf96..4fb562ff6 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,11 @@ +2000-10-11 Werner Koch <[email protected]> + + * packet.h: Add features sig subpacket definition. + * parse-packet.c (dump_sig_subpkt,parse_one_sig_subpkt, + can_handle_critical): Implemented it here. + * build-packet.c (build_sig_subpkt): and here. + * keygen.c (keygen_add_std_prefs): Generate a features packet. + 2000-10-09 Werner Koch <[email protected]> * keygen.c (do_generate_keypair): Removed the keyblock locking. diff --git a/g10/build-packet.c b/g10/build-packet.c index 7291f74b2..93381879c 100644 --- a/g10/build-packet.c +++ b/g10/build-packet.c @@ -702,6 +702,7 @@ build_sig_subpkt( PKT_signature *sig, sigsubpkttype_t type, case SIGSUBPKT_POLICY: case SIGSUBPKT_REVOC_REASON: case SIGSUBPKT_KEY_FLAGS: + case SIGSUBPKT_FEATURES: hashed = 1; break; default: hashed = 0; break; } diff --git a/g10/keygen.c b/g10/keygen.c index 415c54a2a..790dd58ba 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -148,6 +148,9 @@ keygen_add_std_prefs( PKT_signature *sig, void *opaque ) buf[1] = 1; build_sig_subpkt( sig, SIGSUBPKT_PREF_COMPR, buf, 2 ); + buf[0] = 1; /* supports MDC packets (15 + 16) */ + build_sig_subpkt( sig, SIGSUBPKT_FEATURES, buf, 1 ); + buf[0] = 0x80; /* no modify - It is reasonable that a key holder * has the possibility to reject signatures from users * who are known to sign everything without any diff --git a/g10/packet.h b/g10/packet.h index 33bcf792a..2f7f16f8c 100644 --- a/g10/packet.h +++ b/g10/packet.h @@ -275,6 +275,7 @@ typedef enum { SIGSUBPKT_KEY_FLAGS =27, /* key flags */ SIGSUBPKT_SIGNERS_UID =28, /* signer's user id */ SIGSUBPKT_REVOC_REASON =29, /* reason for revocation */ + SIGSUBPKT_FEATURES =30, /* feature flags */ SIGSUBPKT_PRIV_ADD_SIG =101,/* signatur is also valid for this uid */ SIGSUBPKT_FLAG_CRITICAL=128 diff --git a/g10/parse-packet.c b/g10/parse-packet.c index b22a59989..691be6662 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -843,7 +843,12 @@ dump_sig_subpkt( int hashed, int type, int critical, printf("%02X", buffer[i] ); } break; - case SIGSUBPKT_PRIV_ADD_SIG: + case SIGSUBPKT_FEATURES: + fputs ( "features:", stdout ); + for( i=0; i < length; i++ ) + printf(" %02X", buffer[i] ); + break; + case SIGSUBPKT_PRIV_ADD_SIG: /* gnupg private - to be removed */ p = "signs additional user ID"; break; default: p = "?"; break; @@ -889,6 +894,7 @@ parse_one_sig_subpkt( const byte *buffer, size_t n, int type ) case SIGSUBPKT_PREF_SYM: case SIGSUBPKT_PREF_HASH: case SIGSUBPKT_PREF_COMPR: + case SIGSUBPKT_FEATURES: case SIGSUBPKT_POLICY: return 0; case SIGSUBPKT_PRIMARY_UID: @@ -925,6 +931,7 @@ can_handle_critical( const byte *buffer, size_t n, int type ) case SIGSUBPKT_PREF_SYM: case SIGSUBPKT_PREF_HASH: case SIGSUBPKT_PREF_COMPR: + case SIGSUBPKT_FEATURES: case SIGSUBPKT_KEY_FLAGS: return 1; |