From 4c14806f36328f783943b04c742e33fb6ad1bfab Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Thu, 31 May 2018 20:33:53 +0900 Subject: [PATCH] add realm --- zomp/lib/otpr/zx/0.1.0/src/zx_key.erl | 16 ++++++++-------- zomp/lib/otpr/zx/0.1.0/src/zx_lib.erl | 3 ++- zomp/lib/otpr/zx/0.1.0/src/zx_local.erl | 8 ++++---- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/zomp/lib/otpr/zx/0.1.0/src/zx_key.erl b/zomp/lib/otpr/zx/0.1.0/src/zx_key.erl index ca59de2..8eac4f2 100644 --- a/zomp/lib/otpr/zx/0.1.0/src/zx_key.erl +++ b/zomp/lib/otpr/zx/0.1.0/src/zx_key.erl @@ -12,7 +12,7 @@ -copyright("Craig Everett "). -license("GPL-3.0"). --export([ensure_keypair/1, have_key/2, keypath/2, +-export([ensure_keypair/1, have_key/2, path/2, prompt_keygen/0, generate_rsa/1, load/2, verify/3]). @@ -51,19 +51,19 @@ ensure_keypair(KeyID = {Realm, KeyName}) -> %% Determine whether the indicated key is present. have_key(Type, KeyID) -> - filelib:is_regular(keypath(Type, KeyID)). + filelib:is_regular(path(Type, KeyID)). --spec keypath(Type, KeyID) -> Path +-spec path(Type, KeyID) -> Path when Type :: public | private, KeyID :: zx:key_id(), Path :: file:filename(). %% @private %% Given KeyID, return the path to the key type indicated. -keypath(public, {Realm, KeyName}) -> +path(public, {Realm, KeyName}) -> filename:join(zx_lib:path(key, Realm), KeyName ++ ".pub.der"); -keypath(private, {Realm, KeyName}) -> +path(private, {Realm, KeyName}) -> filename:join(zx_lib:path(key, Realm), KeyName ++ ".key.der"). @@ -116,8 +116,8 @@ prompt_keygen() -> generate_rsa(KeyID = {Realm, KeyName}) -> PemFile = filename:join(zx_lib:path(key, Realm), KeyName ++ ".pub.pem"), - KeyFile = keypath(private, KeyID), - PubFile = keypath(public, KeyID), + KeyFile = path(private, KeyID), + PubFile = path(public, KeyID), ok = lists:foreach(fun zx_lib:halt_if_exists/1, [PemFile, KeyFile, PubFile]), ok = log(info, "Generating ~p and ~p. Please be patient...", [KeyFile, PubFile]), ok = gen_p_key(KeyFile), @@ -234,7 +234,7 @@ load(Type, KeyID) -> private -> 'RSAPrivateKey'; public -> 'RSAPublicKey' end, - Path = keypath(Type, KeyID), + Path = path(Type, KeyID), ok = log(info, "Loading key from file ~ts", [Path]), case file:read_file(Path) of {ok, Bin} -> {ok, public_key:der_decode(DerType, Bin)}; diff --git a/zomp/lib/otpr/zx/0.1.0/src/zx_lib.erl b/zomp/lib/otpr/zx/0.1.0/src/zx_lib.erl index e0dc405..a394168 100644 --- a/zomp/lib/otpr/zx/0.1.0/src/zx_lib.erl +++ b/zomp/lib/otpr/zx/0.1.0/src/zx_lib.erl @@ -786,7 +786,8 @@ rm(Path) -> b_to_t(Binary) -> try - binary_to_term(Binary) + Term = binary_to_term(Binary), + {ok, Term} catch error:badarg -> error end. diff --git a/zomp/lib/otpr/zx/0.1.0/src/zx_local.erl b/zomp/lib/otpr/zx/0.1.0/src/zx_local.erl index bbb9a09..985a504 100644 --- a/zomp/lib/otpr/zx/0.1.0/src/zx_local.erl +++ b/zomp/lib/otpr/zx/0.1.0/src/zx_local.erl @@ -464,7 +464,7 @@ add_realm(Path) -> {ok, Data} -> Digest = crypto:hash(sha512, Data), Text = integer_to_list(binary:decode_unsigned(Digest, big), 16), - ok = log(info, "SHA512 of ~ts: ~ts", [Path, Text]), + ok = log(info, "SHA-512 of ~ts: ~ts", [Path, Text]), add_realm2(Data); {error, enoent} -> {error, "Realm bundle (.zrf) does not exist.", 2}; @@ -482,9 +482,9 @@ add_realm2(Data) -> Realm = maps:get(realm, RealmConf), ok = make_realm_dirs(Realm), ConfPath = zx_lib:realm_conf(Realm), - zx_lib:write_terms(ConfPath, maps:to_list(RealmConf)), + ok = zx_lib:write_terms(ConfPath, maps:to_list(RealmConf)), KeyName = maps:get(key, RealmConf), - KeyPath = zx_lib:keypath(public, {Realm, KeyName}), + KeyPath = zx_key:path(public, {Realm, KeyName}), ok = file:write_file(KeyPath, KeyDER), log(info, "Added realm ~tp.", [Realm]); error -> @@ -1050,7 +1050,7 @@ create_realmfile(Realm, Dir) -> {ok, RealmConf} = zx_lib:load_realm_conf(Realm), ok = log(info, "Realm found, creating realm file..."), KeyName = maps:get(key, RealmConf), - PubKeyPath = zx_key:keypath(public, {Realm, KeyName}), + PubKeyPath = zx_key:path(public, {Realm, KeyName}), {ok, PubDER} = file:read_file(PubKeyPath), Blob = term_to_binary({RealmConf, PubDER}), ZRF = filename:join(Dir, Realm ++ ".zrf"),