mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
backup
This commit is contained in:
parent
4ec1775f3e
commit
ea4b6f9db7
5 changed files with 236 additions and 238 deletions
95
g10/import.c
95
g10/import.c
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue