1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00
This commit is contained in:
Werner Koch 1998-01-19 18:54:44 +00:00
parent 4ec1775f3e
commit ea4b6f9db7
5 changed files with 236 additions and 238 deletions

View file

@ -48,99 +48,8 @@
int
import_pubkeys( const char *filename )
{
int rc;
PACKET pkt;
int save_mode;
ulong offset;
IOBUF iobuf = NULL;
init_packet(&pkt);
save_mode = set_packet_list_mode(0);
if( !(iobuf = iobuf_open( filename )) ) {
rc = G10ERR_KEYRING_OPEN;
goto leave;
}
while( !(rc=search_packet(iobuf, &pkt, PKT_PUBLIC_CERT, &offset)) ) {
PKT_public_cert *pkc = pkt.pkt.public_cert;
u32 keyid[2];
int otrust;
assert( pkt.pkttype == PKT_PUBLIC_CERT );
keyid_from_pkc( pkc, keyid );
rc = get_ownertrust( pkc, &otrust );
if( rc && rc != -1 ) {
log_error("error getting otrust of %08lX: %s\n",
keyid[1], g10_errstr(rc) );
}
else if( rc == -1 ) { /* No pubkey in trustDB: Insert */
rc = insert_trust_record( pkc );
if( rc ) {
log_error("failed to insert it into the trustdb: %s\n",
g10_errstr(rc) );
}
else {
rc = get_ownertrust( pkc, &otrust );
if( rc )
log_fatal("failed to reread the pubkey record: %s\n",
g10_errstr(rc) );
log_info("key %08lX inserted in trustdb (localid=%lu)\n",
keyid[1], pkc->local_id );
}
}
else
log_info("key %08lX already in trustdb (localid=%lu)\n",
keyid[1], pkc->local_id );
free_packet(&pkt);
}
iobuf_close(iobuf);
if( !(iobuf = iobuf_open( filename )) ) {
rc = G10ERR_KEYRING_OPEN;
goto leave;
}
while( !(rc=search_packet(iobuf, &pkt, PKT_PUBLIC_CERT, &offset)) ) {
PKT_public_cert *pkc = pkt.pkt.public_cert;
u32 keyid[2];
int trustlevel;
assert( pkt.pkttype == PKT_PUBLIC_CERT );
keyid_from_pkc( pkc, keyid );
rc = check_pkc_trust( pkc, &trustlevel );
if( rc ) {
log_error("error checking trust of %08lX: %s\n",
keyid[1], g10_errstr(rc) );
}
else if( trustlevel & TRUST_NO_PUBKEY ) {
/* No pubkey in trustDB: Insert and check again */
rc = insert_trust_record( pkc );
if( rc ) {
log_error("failed to insert it into the trustdb: %s\n",
g10_errstr(rc) );
}
else {
rc = check_pkc_trust( pkc, &trustlevel );
if( rc )
log_fatal("trust check after insert failed: %s\n",
g10_errstr(rc) );
if( trustlevel & TRUST_NO_PUBKEY )
BUG();
}
}
free_packet(&pkt);
}
leave:
iobuf_close(iobuf);
free_packet(&pkt);
set_packet_list_mode(save_mode);
return rc;
log_fatal("Not yet implemented");
return 0;
}