mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
See ChangeLog: Fri Oct 6 14:29:16 CEST 2000 Werner Koch
This commit is contained in:
parent
9c20f65cbe
commit
14974bc5d7
18 changed files with 470 additions and 1332 deletions
65
g10/keyid.c
65
g10/keyid.c
|
@ -436,6 +436,40 @@ fingerprint_from_pk( PKT_public_key *pk, byte *array, size_t *ret_len )
|
|||
return array;
|
||||
}
|
||||
|
||||
|
||||
/* Create a unified fingerprint, that is a printable fingerprint along
|
||||
* wth some other information suitable to passto get_pubkye_byname.
|
||||
* Pass NULL for buffer to let this function allocate the buffer.
|
||||
* This function will truncate the buffer in a way that a valid C string
|
||||
* is returnd (unless bufsize is 0)
|
||||
* Returns: Supplied buffer or newly allocated buffer
|
||||
*/
|
||||
char *
|
||||
unified_fingerprint_from_pk( PKT_public_key *pk,
|
||||
char *buffer, size_t bufsize )
|
||||
{
|
||||
byte fpr[MAX_FINGERPRINT_LEN];
|
||||
size_t fprlen;
|
||||
int i;
|
||||
|
||||
fingerprint_from_pk( pk, fpr, &fprlen );
|
||||
if ( !buffer ) {
|
||||
bufsize = 1+fprlen*2+1+4+1+1;
|
||||
buffer = gcry_xmalloc( bufsize );
|
||||
}
|
||||
if ( bufsize < 1+fprlen*2+1+4+1+1 ) {
|
||||
/* Hmmm, that should be sufficiend also not very nice */
|
||||
if ( bufsize )
|
||||
*buffer = 0;
|
||||
return buffer;
|
||||
}
|
||||
*buffer = ':';
|
||||
for (i=0; i < fprlen; i++ )
|
||||
sprintf( buffer+1+i*2, "%02X", fpr[i] );
|
||||
sprintf( buffer+1+i*2, ":%d:", (pk->pubkey_algo & 0xff) );
|
||||
return buffer;
|
||||
}
|
||||
|
||||
byte *
|
||||
fingerprint_from_sk( PKT_secret_key *sk, byte *array, size_t *ret_len )
|
||||
{
|
||||
|
@ -495,5 +529,36 @@ fingerprint_from_sk( PKT_secret_key *sk, byte *array, size_t *ret_len )
|
|||
return array;
|
||||
}
|
||||
|
||||
char *
|
||||
unified_fingerprint_from_sk( PKT_secret_key *sk,
|
||||
char *buffer, size_t bufsize )
|
||||
{
|
||||
byte fpr[MAX_FINGERPRINT_LEN];
|
||||
size_t fprlen;
|
||||
int i;
|
||||
|
||||
fingerprint_from_sk( sk, fpr, &fprlen );
|
||||
if ( !buffer ) {
|
||||
bufsize = 1+fprlen*2+1+4+1+1;
|
||||
buffer = gcry_xmalloc( bufsize );
|
||||
}
|
||||
if ( bufsize < 1+fprlen*2+1+4+1+1 ) {
|
||||
/* Hmmm, that should be sufficiend also not very nice */
|
||||
if ( bufsize )
|
||||
*buffer = 0;
|
||||
return buffer;
|
||||
}
|
||||
*buffer = ':';
|
||||
for (i=0; i < fprlen; i++ )
|
||||
sprintf( buffer+1+i*2, "%02X", fpr[i] );
|
||||
sprintf( buffer+1+i*2, ":%d:", (sk->pubkey_algo & 0xff) );
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue