1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-11-09 21:28:51 +01:00

See ChangeLog: Tue Jun 8 13:36:25 CEST 1999 Werner Koch

This commit is contained in:
Werner Koch 1999-06-08 11:41:46 +00:00
parent 717bce345c
commit 40238d4b63
9 changed files with 72 additions and 15 deletions

View File

@ -293,7 +293,6 @@ verify(MPI r, MPI s, MPI hash, DSA_public_key *pkey )
/* u2 = r * w mod q */ /* u2 = r * w mod q */
mpi_mulm( u2, r, w, pkey->q ); mpi_mulm( u2, r, w, pkey->q );
/* v = g^u1 * y^u2 mod p mod q */ /* v = g^u1 * y^u2 mod p mod q */
base[0] = pkey->g; exp[0] = u1; base[0] = pkey->g; exp[0] = u1;
base[1] = pkey->y; exp[1] = u2; base[1] = pkey->y; exp[1] = u2;

View File

@ -12,6 +12,7 @@ ssb::1536:20:5CE086B5B5A18FF4:1998-07-07:0:::
ssb = secret subkey (secondary key) ssb = secret subkey (secondary key)
uid = user id (only field 10 is used). uid = user id (only field 10 is used).
fpr = fingerprint: (fingerprint is in field 10) fpr = fingerprint: (fingerprint is in field 10)
pkd = public key data (special field format, see below)
2. Field: A letter describing the calculated trust, see doc/FAQ 2. Field: A letter describing the calculated trust, see doc/FAQ
This is a single letter, but be prepared that additional This is a single letter, but be prepared that additional
@ -39,6 +40,13 @@ ssb::1536:20:5CE086B5B5A18FF4:1998-07-07:0:::
More fields may be added later. More fields may be added later.
If field 1 has the tag "pkd", a listing looks like this:
pkd:0:1024:B665B1435F4C2 .... FF26ABB:
! ! !-- the value
! !------ for infomation number of bits in the value
!--------- index (eg. DSA goes from 0 to 3: p,q,g,y)
Format of the "--status-fd" output Format of the "--status-fd" output
================================== ==================================

View File

@ -72,7 +72,7 @@ B<-k> [I<username>] [I<keyring>]
B<This command may be removed in the future!> B<This command may be removed in the future!>
B<--list-keys> [I<names>] B<--list-keys> [I<names>]
B<--list-public-keys> [I<names>] B<--list-public-keys> [I<names>]
List all keys from the public keyrings, or just the List all keys from the public keyrings, or just the
ones given on the command line. ones given on the command line.
@ -81,7 +81,7 @@ B<--list-secret-keys> [I<names>]
List all keys from the secret keyrings, or just the List all keys from the secret keyrings, or just the
ones given on the command line. ones given on the command line.
B<--list-sigs> [I<names>] B<--list-sigs> [I<names>]
Same as B<--list-keys>, but the signatures are listed Same as B<--list-keys>, but the signatures are listed
too. too.
@ -141,7 +141,7 @@ B<--edit-key> I<name>
B<revkey> B<revkey>
Revoke a subkey. Revoke a subkey.
B<expire> B<expire>
Change the key expiration time. If a key is Change the key expiration time. If a key is
selected, the time of this key will be changed. selected, the time of this key will be changed.
With no selection the key expiration of the With no selection the key expiration of the
primary key is changed. primary key is changed.
@ -212,7 +212,7 @@ B<--export-secret-keys> [I<names>]
This is normally not very useful. This is normally not very useful.
B<--import>, B<--fast-import> B<--import>, B<--fast-import>
Import/merge keys. The fast version does not build Import/merge keys. The fast version does not build
the trustdb; this can be done at any time with the the trustdb; this can be done at any time with the
command B<--update-trustdb>. command B<--update-trustdb>.
@ -234,7 +234,7 @@ B<--import-ownertrust> [I<filename>]
Long options can be put in an options file (default F<~/.gnupg/options>). Long options can be put in an options file (default F<~/.gnupg/options>).
Do not write the 2 dashes, but simply the name of the option and any Do not write the 2 dashes, but simply the name of the option and any
required arguments. Lines with a hash as the first non-white-space required arguments. Lines with a hash as the first non-white-space
character are ignored. Commands may be put in this file too, but that character are ignored. Commands may be put in this file too, but that
does not make sense. does not make sense.
@ -257,7 +257,7 @@ B<--default-key> I<name>
is not used the default user-id is the first user-id is not used the default user-id is the first user-id
from the secret keyring. from the secret keyring.
B<-r> I<name>, B<--recipient> I<name> B<-r> I<name>, B<--recipient> I<name>
Encrypt for user id I<name>. If this option is not Encrypt for user id I<name>. If this option is not
specified, GnuPG asks for the user id. specified, GnuPG asks for the user id.
@ -535,6 +535,9 @@ B<--version>
B<--with-colons> B<--with-colons>
Print key listings delimited by colons. Print key listings delimited by colons.
B<--with-key-data>
Print key listings delimited by colons and print the public key data.
B<--warranty> B<--warranty>
Print warranty information. Print warranty information.
@ -549,11 +552,11 @@ a signature was bad, and other error codes for fatal errors.
=head1 EXAMPLES =head1 EXAMPLES
-se -r Bob [file] sign and encrypt for user Bob -se -r Bob [file] sign and encrypt for user Bob
-sat [file] make a clear text signature -sat [file] make a clear text signature
-sb [file] make a detached signature -sb [file] make a detached signature
-k [userid] show keys -k [userid] show keys
-kc [userid] show fingerprint -kc [userid] show fingerprint
=head1 ENVIRONMENT =head1 ENVIRONMENT
@ -571,7 +574,7 @@ F<~/.gnupg/pubring.gpg.lock> and the lock file
F<~/.gnupg/trustdb.gpg> The trust database F<~/.gnupg/trustdb.gpg> The trust database
F<~/.gnupg/trustdb.gpg.lock> and the lock file F<~/.gnupg/trustdb.gpg.lock> and the lock file
F<~/.gnupg/options> May contain options F<~/.gnupg/options> May contain options
F</usr[/local]/share/gnupg/options.skel> Skeleton file F</usr[/local]/share/gnupg/options.skel> Skeleton file
F</usr[/local]/lib/gnupg/> Default location for extensions F</usr[/local]/lib/gnupg/> Default location for extensions

View File

@ -1,3 +1,8 @@
Tue Jun 8 13:36:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* keylist.c (print_key_data): New and called elsewhere.
* g10.c: New option --with-key-data
Wed Jun 2 14:17:19 CEST 1999 Werner Koch <wk@isil.d.shuttle.de> Wed Jun 2 14:17:19 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* mainproc.c (proc_tree): Yet another bad hack to cope with * mainproc.c (proc_tree): Yet another bad hack to cope with

View File

@ -136,6 +136,7 @@ enum cmd_and_opt_values { aNull = 0,
oNoBatch, oNoBatch,
oHomedir, oHomedir,
oWithColons, oWithColons,
oWithKeyData,
oSkipVerify, oSkipVerify,
oCompressKeys, oCompressKeys,
oCompressSigs, oCompressSigs,
@ -285,6 +286,7 @@ static ARGPARSE_OPTS opts[] = {
{ oHomedir, "homedir", 2, "@" }, /* defaults to "~/.gnupg" */ { oHomedir, "homedir", 2, "@" }, /* defaults to "~/.gnupg" */
{ oNoBatch, "no-batch", 0, "@" }, { oNoBatch, "no-batch", 0, "@" },
{ oWithColons, "with-colons", 0, "@"}, { oWithColons, "with-colons", 0, "@"},
{ oWithKeyData,"with-key-data", 0, "@"},
{ aListKeys, "list-key", 0, "@" }, /* alias */ { aListKeys, "list-key", 0, "@" }, /* alias */
{ aListSigs, "list-sig", 0, "@" }, /* alias */ { aListSigs, "list-sig", 0, "@" }, /* alias */
{ aCheckKeys, "check-sig",0, "@" }, /* alias */ { aCheckKeys, "check-sig",0, "@" }, /* alias */
@ -693,6 +695,7 @@ main( int argc, char **argv )
case oNoOptions: break; /* no-options */ case oNoOptions: break; /* no-options */
case oHomedir: opt.homedir = pargs.r.ret_str; break; case oHomedir: opt.homedir = pargs.r.ret_str; break;
case oNoBatch: opt.batch = 0; break; case oNoBatch: opt.batch = 0; break;
case oWithKeyData: opt.with_key_data=1; /* fall thru */
case oWithColons: opt.with_colons=':'; break; case oWithColons: opt.with_colons=':'; break;
case oSkipVerify: opt.skip_verify=1; break; case oSkipVerify: opt.skip_verify=1; break;

View File

@ -152,6 +152,20 @@ list_one( STRLIST names, int secret )
} }
} }
static void
print_key_data( PKT_public_key *pk, u32 *keyid )
{
int n = pubkey_get_npkey( pk->pubkey_algo );
int i;
for(i=0; i < n; i++ ) {
printf("pkd:%d:%u:", i, mpi_get_nbits( pk->pkey[i] ) );
mpi_print(stdout, pk->pkey[i], 1 );
putchar(':');
putchar('\n');
}
}
static void static void
list_keyblock( KBNODE keyblock, int secret ) list_keyblock( KBNODE keyblock, int secret )
@ -249,6 +263,8 @@ list_keyblock( KBNODE keyblock, int secret )
if( !any ) { if( !any ) {
if( opt.fingerprint ) if( opt.fingerprint )
fingerprint( pk, sk ); fingerprint( pk, sk );
if( opt.with_key_data )
print_key_data( pk, keyid );
any = 1; any = 1;
} }
} }
@ -289,6 +305,8 @@ list_keyblock( KBNODE keyblock, int secret )
datestr_from_pk( pk2 ) ); datestr_from_pk( pk2 ) );
if( opt.fingerprint > 1 ) if( opt.fingerprint > 1 )
fingerprint( pk2, NULL ); fingerprint( pk2, NULL );
if( opt.with_key_data )
print_key_data( pk2, keyid2 );
} }
else if( node->pkt->pkttype == PKT_SECRET_SUBKEY ) { else if( node->pkt->pkttype == PKT_SECRET_SUBKEY ) {
u32 keyid2[2]; u32 keyid2[2];

View File

@ -39,6 +39,7 @@ struct {
int answer_no; /* answer no on most questions */ int answer_no; /* answer no on most questions */
int check_sigs; /* check key signatures */ int check_sigs; /* check key signatures */
int with_colons; int with_colons;
int with_key_data;
int fingerprint; /* list fingerprints */ int fingerprint; /* list fingerprints */
int list_sigs; /* list signatures */ int list_sigs; /* list signatures */
int no_armor; int no_armor;

View File

@ -1,3 +1,8 @@
Tue Jun 8 13:36:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* mpicalc.c (main): hex digits may now be lowercase
(do_mulm): new.
Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de> Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* mpicalc.c (main): Moved initialization out of definition. * mpicalc.c (main): Moved initialization out of definition.

View File

@ -130,6 +130,18 @@ do_mul(void)
stackidx--; stackidx--;
} }
static void
do_mulm(void)
{
if( stackidx < 3 ) {
fputs("stack underflow\n", stderr);
return;
}
mpi_mulm( stack[stackidx-3], stack[stackidx-3],
stack[stackidx-2], stack[stackidx-1] );
stackidx -= 2;
}
static void static void
do_div(void) do_div(void)
{ {
@ -237,7 +249,7 @@ main(int argc, char **argv)
while( (c=getc(stdin)) != EOF ) { while( (c=getc(stdin)) != EOF ) {
if( !state ) { /* waiting */ if( !state ) { /* waiting */
if( isdigit(c) || (c >='A' && c <= 'F') ) { if( isdigit(c) ) {
state = 1; state = 1;
ungetc(c, stdin); ungetc(c, stdin);
strbuf[0] = '0'; strbuf[0] = '0';
@ -275,6 +287,9 @@ main(int argc, char **argv)
case '*': case '*':
do_mul(); do_mul();
break; break;
case 'm':
do_mulm();
break;
case '/': case '/':
do_div(); do_div();
break; break;
@ -338,7 +353,7 @@ main(int argc, char **argv)
} }
} }
else if( state == 1 ) { /* in a number */ else if( state == 1 ) { /* in a number */
if( !(isdigit(c) || (c >='A' && c <= 'F')) ) { /* store the number */ if( !isxdigit(c) ) { /* store the number */
state = 0; state = 0;
ungetc(c, stdin); ungetc(c, stdin);
if( stridx < 1000 ) if( stridx < 1000 )