summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Avdey <eiri@eiri.ca>2020-04-24 10:55:05 -0300
committerEric Avdey <eiri@eiri.ca>2020-04-24 10:55:05 -0300
commit539e0383e9ada1f193b1dfea5705d1d7e9a17fab (patch)
treeb5f2beb0fe7c88ba37587232893570298c0270bd
parentb69263d72742b2e0d529db0917c269b4e44ae200 (diff)
downloadcouchdb-aegis_key_cache.tar.gz
Change arity for open_dbaegis_key_cache
-rw-r--r--src/aegis/src/aegis.erl6
-rw-r--r--src/aegis/src/aegis_key_manager.erl4
-rw-r--r--src/aegis/src/aegis_noop_key_manager.erl4
-rw-r--r--src/aegis/src/aegis_server.erl24
-rw-r--r--src/aegis/test/aegis_server_test.erl34
-rw-r--r--src/fabric/src/fabric2_fdb.erl2
6 files changed, 30 insertions, 44 deletions
diff --git a/src/aegis/src/aegis.erl b/src/aegis/src/aegis.erl
index 8e591ba81..e8a0b4bfb 100644
--- a/src/aegis/src/aegis.erl
+++ b/src/aegis/src/aegis.erl
@@ -19,7 +19,7 @@
-export([
init_db/2,
- open_db/2,
+ open_db/1,
decrypt/2,
decrypt/3,
@@ -33,9 +33,9 @@ init_db(#{} = Db, Options) ->
}.
-open_db(#{} = Db, Options) ->
+open_db(#{} = Db) ->
Db#{
- is_encrypted => aegis_server:open_db(Db, Options)
+ is_encrypted => aegis_server:open_db(Db)
}.
diff --git a/src/aegis/src/aegis_key_manager.erl b/src/aegis/src/aegis_key_manager.erl
index 4564f4d74..aa9e3429a 100644
--- a/src/aegis/src/aegis_key_manager.erl
+++ b/src/aegis/src/aegis_key_manager.erl
@@ -19,6 +19,4 @@
DbOptions :: list()) -> {ok, binary()} | false.
--callback open_db(
- Db :: #{},
- DbOptions :: list()) -> {ok, binary()} | false.
+-callback open_db(Db :: #{}) -> {ok, binary()} | false.
diff --git a/src/aegis/src/aegis_noop_key_manager.erl b/src/aegis/src/aegis_noop_key_manager.erl
index 786f04a0c..2b61f1d29 100644
--- a/src/aegis/src/aegis_noop_key_manager.erl
+++ b/src/aegis/src/aegis_noop_key_manager.erl
@@ -18,7 +18,7 @@
-export([
init_db/2,
- open_db/2
+ open_db/1
]).
@@ -27,5 +27,5 @@ init_db(#{} = _Db, _Options) ->
false.
-open_db(#{} = _Db, _Options) ->
+open_db(#{} = _Db) ->
false.
diff --git a/src/aegis/src/aegis_server.erl b/src/aegis/src/aegis_server.erl
index fb0fb5162..be8202ced 100644
--- a/src/aegis/src/aegis_server.erl
+++ b/src/aegis/src/aegis_server.erl
@@ -24,7 +24,7 @@
-export([
start_link/0,
init_db/2,
- open_db/2,
+ open_db/1,
encrypt/3,
decrypt/3
]).
@@ -66,11 +66,11 @@ init_db(#{uuid := UUID} = Db, Options) ->
end.
--spec open_db(Db :: #{}, Options :: list()) -> boolean().
-open_db(#{} = Db, Options) ->
+-spec open_db(Db :: #{}) -> boolean().
+open_db(#{} = Db) ->
process_flag(sensitive, true),
- case do_open_db(Db, Options) of
+ case do_open_db(Db) of
{ok, _DbKey} ->
true;
false ->
@@ -211,20 +211,8 @@ code_change(_OldVsn, St, _Extra) ->
%% private functions
-do_open_db(#{} = Db) ->
- #{
- uuid := UUID,
- user_ctx := UserCtx,
- db_options := Options0
- } = Db,
-
- %% put back elements removed in fabric2_fdb:open/2
- Options = [{uuid, UUID}, {user_ctx, UserCtx} | Options0],
- do_open_db(Db, Options).
-
-
-do_open_db(#{uuid := UUID} = Db, Options) ->
- case ?AEGIS_KEY_MANAGER:open_db(Db, Options) of
+do_open_db(#{uuid := UUID} = Db) ->
+ case ?AEGIS_KEY_MANAGER:open_db(Db) of
{ok, DbKey} ->
gen_server:call(?MODULE, {insert_key, UUID, DbKey}),
{ok, DbKey};
diff --git a/src/aegis/test/aegis_server_test.erl b/src/aegis/test/aegis_server_test.erl
index c23c36c9f..0f23a3fd9 100644
--- a/src/aegis/test/aegis_server_test.erl
+++ b/src/aegis/test/aegis_server_test.erl
@@ -15,7 +15,7 @@
-include_lib("eunit/include/eunit.hrl").
-include_lib("couch/include/couch_eunit.hrl").
--define(DB, #{uuid => <<0:64>>, db_options => [], user_ctx => []}).
+-define(DB, #{uuid => <<0:64>>}).
-define(VALUE, <<0:8>>).
-define(ENCRYPTED, <<1,155,242,89,190,54,112,151,18,145,25,251,217,
49,147,125,14,162,146,201,189,100,232,38,239,111,163,84,25,60,
@@ -51,7 +51,7 @@ setup() ->
Ctx = test_util:start_couch([fabric]),
meck:new([?AEGIS_KEY_MANAGER], [passthrough]),
ok = meck:expect(?AEGIS_KEY_MANAGER, init_db, 2, {ok, <<0:256>>}),
- ok = meck:expect(?AEGIS_KEY_MANAGER, open_db, 2, {ok, <<0:256>>}),
+ ok = meck:expect(?AEGIS_KEY_MANAGER, open_db, 1, {ok, <<0:256>>}),
Ctx.
@@ -66,8 +66,8 @@ test_init_db() ->
test_open_db() ->
- ?assert(aegis_server:open_db(?DB, [])),
- ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 2)).
+ ?assert(aegis_server:open_db(?DB)),
+ ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 1)).
test_init_db_cache() ->
@@ -85,9 +85,9 @@ test_init_db_cache() ->
test_open_db_cache() ->
- ?assertEqual(0, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 2)),
+ ?assertEqual(0, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 1)),
- ?assert(aegis_server:open_db(?DB, [])),
+ ?assert(aegis_server:open_db(?DB)),
lists:foreach(fun(I) ->
Encrypted = aegis_server:encrypt(?DB, <<I:64>>, ?VALUE),
@@ -95,26 +95,26 @@ test_open_db_cache() ->
?assertMatch(<<1:8, _/binary>>, Encrypted)
end, lists:seq(1, 12)),
- ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 2)).
+ ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 1)).
test_encrypt_cache() ->
- ?assertEqual(0, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 2)),
+ ?assertEqual(0, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 1)),
Encrypted = aegis_server:encrypt(?DB, <<1:64>>, ?VALUE),
?assertNotEqual(?VALUE, Encrypted),
?assertMatch(<<1:8, _/binary>>, Encrypted),
- ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 2)).
+ ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 1)).
test_decrypt_cache() ->
- ?assertEqual(0, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 2)),
+ ?assertEqual(0, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 1)),
Decrypted = aegis_server:decrypt(?DB, <<1:64>>, ?ENCRYPTED),
?assertEqual(<<0>>, Decrypted),
- ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 2)).
+ ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 1)).
@@ -125,8 +125,8 @@ disabled_test_() ->
Ctx = setup(),
ok = meck:delete(?AEGIS_KEY_MANAGER, init_db, 2),
ok = meck:expect(?AEGIS_KEY_MANAGER, init_db, 2, false),
- ok = meck:delete(?AEGIS_KEY_MANAGER, open_db, 2),
- ok = meck:expect(?AEGIS_KEY_MANAGER, open_db, 2, false),
+ ok = meck:delete(?AEGIS_KEY_MANAGER, open_db, 1),
+ ok = meck:expect(?AEGIS_KEY_MANAGER, open_db, 1, false),
Ctx
end,
fun teardown/1,
@@ -149,17 +149,17 @@ test_disabled_init_db() ->
test_disabled_open_db() ->
- ?assertNot(aegis_server:open_db(?DB, [])),
- ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 2)).
+ ?assertNot(aegis_server:open_db(?DB)),
+ ?assertEqual(1, meck:num_calls(?AEGIS_KEY_MANAGER, open_db, 1)).
test_disabled_encrypt() ->
- Db = ?DB#{is_encrypted => aegis_server:open_db(?DB, [])},
+ Db = ?DB#{is_encrypted => aegis_server:open_db(?DB)},
Encrypted = aegis:encrypt(Db, <<1:64>>, ?VALUE),
?assertEqual(?VALUE, Encrypted).
test_disabled_decrypt() ->
- Db = ?DB#{is_encrypted => aegis_server:open_db(?DB, [])},
+ Db = ?DB#{is_encrypted => aegis_server:open_db(?DB)},
Decrypted = aegis:decrypt(Db, <<1:64>>, ?ENCRYPTED),
?assertEqual(?ENCRYPTED, Decrypted).
diff --git a/src/fabric/src/fabric2_fdb.erl b/src/fabric/src/fabric2_fdb.erl
index bb5afcd64..a78f073f7 100644
--- a/src/fabric/src/fabric2_fdb.erl
+++ b/src/fabric/src/fabric2_fdb.erl
@@ -281,7 +281,7 @@ open(#{} = Db0, Options) ->
},
Db3 = load_config(Db2),
- Db4 = aegis:open_db(Db3, Options),
+ Db4 = aegis:open_db(Db3),
case {UUID, Db4} of
{undefined, _} -> ok;