Esempio n. 1
0
/**
 * cdk_keygen_free: free the keygen object
 * @hd: the keygen object
 *
 **/
void
cdk_keygen_free( cdk_keygen_ctx_t hd )
{
    if( hd ) {
        _cdk_free_pubkey( hd->key[0].pk );
        _cdk_free_pubkey( hd->key[1].pk );
        _cdk_free_seckey( hd->key[0].sk );
        _cdk_free_seckey( hd->key[1].sk );
        _cdk_free_userid( hd->id );
        _cdk_free_signature( hd->sig );
        cdk_free( hd->sym_prefs );
        cdk_free( hd->hash_prefs );
        cdk_free( hd->zip_prefs );
        _cdk_sec_free( hd->pass, hd->pass_len );
        _cdk_free_mpibuf( hd->key[0].n, hd->key[0].resarr );
        _cdk_free_mpibuf( hd->key[1].n, hd->key[1].resarr );
        cdk_free( hd );
    }
}
Esempio n. 2
0
static void free_pubkey_enc(cdk_pkt_pubkey_enc_t enc)
{
	size_t nenc;

	if (!enc)
		return;

	nenc = cdk_pk_get_nenc(enc->pubkey_algo);
	_cdk_free_mpibuf(nenc, enc->mpi);
	cdk_free(enc);
}
Esempio n. 3
0
void cdk_pk_release(cdk_pubkey_t pk)
{
	size_t npkey;

	if (!pk)
		return;

	npkey = cdk_pk_get_npkey(pk->pubkey_algo);
	_cdk_free_userid(pk->uid);
	pk->uid = NULL;
	cdk_free(pk->prefs);
	pk->prefs = NULL;
	_cdk_free_mpibuf(npkey, pk->mpi);
	cdk_free(pk);
}
Esempio n. 4
0
void cdk_sk_release(cdk_seckey_t sk)
{
	size_t nskey;

	if (!sk)
		return;

	nskey = cdk_pk_get_nskey(sk->pubkey_algo);
	_cdk_free_mpibuf(nskey, sk->mpi);
	cdk_free(sk->encdata);
	sk->encdata = NULL;
	cdk_pk_release(sk->pk);
	sk->pk = NULL;
	cdk_s2k_free(sk->protect.s2k);
	sk->protect.s2k = NULL;
	cdk_free(sk);
}
Esempio n. 5
0
void _cdk_free_signature(cdk_pkt_signature_t sig)
{
	cdk_desig_revoker_t r;
	size_t nsig;

	if (!sig)
		return;

	nsig = cdk_pk_get_nsig(sig->pubkey_algo);
	_cdk_free_mpibuf(nsig, sig->mpi);

	cdk_subpkt_free(sig->hashed);
	sig->hashed = NULL;
	cdk_subpkt_free(sig->unhashed);
	sig->unhashed = NULL;
	while (sig->revkeys) {
		r = sig->revkeys->next;
		cdk_free(sig->revkeys);
		sig->revkeys = r;
	}
	cdk_free(sig);
}