From a63a5c88f7b6b91d9c9bfd2dadd681979f03b3d6 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Mon, 3 May 1999 16:51:03 +0000 Subject: [PATCH] add flags to _hdb_{fetch,store} git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6088 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/hdb/common.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/hdb/common.c b/lib/hdb/common.c index 5a0de29b1..9341b8246 100644 --- a/lib/hdb/common.c +++ b/lib/hdb/common.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997 Kungliga Tekniska Högskolan + * Copyright (c) 1997-1999 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -104,7 +104,7 @@ hdb_value2entry(krb5_context context, krb5_data *value, hdb_entry *ent) } krb5_error_code -_hdb_fetch(krb5_context context, HDB *db, hdb_entry *entry) +_hdb_fetch(krb5_context context, HDB *db, unsigned flags, hdb_entry *entry) { krb5_data key, value; int code; @@ -115,23 +115,22 @@ _hdb_fetch(krb5_context context, HDB *db, hdb_entry *entry) if(code) return code; hdb_value2entry(context, &value, entry); - if (db->master_key_set) - hdb_unseal_keys (entry, db->master_key); + if (db->master_key_set && (flags & HDB_F_DECRYPT)) + hdb_unseal_keys (db, entry); krb5_data_free(&value); return 0; } krb5_error_code -_hdb_store(krb5_context context, HDB *db, int replace, hdb_entry *entry) +_hdb_store(krb5_context context, HDB *db, unsigned flags, hdb_entry *entry) { krb5_data key, value; int code; hdb_principal2key(context, entry->principal, &key); - if (db->master_key_set) - hdb_seal_keys(entry, db->master_key); + hdb_seal_keys(db, entry); hdb_entry2value(context, entry, &value); - code = db->_put(context, db, replace, key, value); + code = db->_put(context, db, flags & HDB_F_REPLACE, key, value); krb5_data_free(&value); krb5_data_free(&key); return code;