SECKEYGetPasswordKey f, void *arg,
SECKEYLowGetPasswordKey f, void *arg,
SECKEY_StoreKeyByPublicKeyAlg(SECKEYKeyDBHandle *handle, 			      SECKEYLowPrivateKey *privkey,			      SECItem *pubKeyData,			      char *nickname,			      SECKEYGetPasswordKey f, void *arg,			      SECOidTag algorithm){    DBT namekey;    SECItem *pwitem = NULL;    SECStatus rv;    if (handle == NULL) {	PORT_SetError(SEC_ERROR_BAD_DATABASE);	return(SECFailure);    }    /* set up db key and data */    namekey.data = pubKeyData->data;    namekey.size = pubKeyData->len;    pwitem = (*f )(arg, handle);    if ( pwitem == NULL ) {	return(SECFailure);    }        /* encrypt the private key */    rv = seckey_put_private_key(handle, &namekey, pwitem, privkey, nickname,				PR_FALSE, algorithm);    SECITEM_ZfreeItem(pwitem, PR_TRUE);        return(rv);}