sodium.cr/spec/sodium/kdf_spec.cr

33 lines
738 B
Crystal
Raw Permalink Normal View History

2019-05-28 23:31:31 +02:00
require "../spec_helper"
require "../../src/sodium/kdf"
2019-05-28 23:31:31 +02:00
CONTEXT = "8_bytess"
describe Sodium::Kdf do
2019-05-28 23:31:31 +02:00
it "generates master key" do
kdf1 = Sodium::Kdf.random
2019-05-28 23:31:31 +02:00
# verify loading saved key
2021-06-22 02:54:23 +02:00
kdf2 = kdf1.key.readonly do |kslice|
Sodium::Kdf.copy_key_from kslice.dup
2021-06-22 02:54:23 +02:00
end
kdf1.key.should eq kdf2.key
2019-05-28 23:31:31 +02:00
# verify generated subkey's are the same after loading
key1_s1 = kdf1.derive CONTEXT, 0, 16
key2_s1 = kdf2.derive CONTEXT, 0, 16
2019-05-28 23:31:31 +02:00
key1_s1.should eq key2_s1
end
it "generates different keys" do
kdf1 = Sodium::Kdf.random
subkey1 = kdf1.derive CONTEXT, 0, 16
subkey2 = kdf1.derive CONTEXT, 1, 16
2019-05-28 23:31:31 +02:00
subkey1.should_not eq subkey2
end
2019-06-28 02:20:02 +02:00
# TODO: test exceptions
# TODO: test wipe
2019-05-28 23:31:31 +02:00
end