Cybersecurity-Projects/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/crypto/kek_spec.cr

36 lines
898 B
Crystal

# ===================
# ©AngelaMos | 2026
# kek_spec.cr
# ===================
require "../../spec_helper"
require "../../../src/cre/crypto/kek"
describe CRE::Crypto::Kek do
it "loads a 32-byte KEK from env hex" do
hex = "0" * 64
ENV["TEST_KEK_HEX"] = hex
kek = CRE::Crypto::Kek::EnvKek.new("TEST_KEK_HEX", version: 1)
kek.bytes.size.should eq 32
kek.version.should eq 1
kek.source.should eq "env:TEST_KEK_HEX"
ensure
ENV.delete("TEST_KEK_HEX")
end
it "raises on wrong-length hex" do
ENV["BAD_KEK"] = "abcd"
expect_raises(CRE::Crypto::Kek::InvalidKekError) do
CRE::Crypto::Kek::EnvKek.new("BAD_KEK", version: 1)
end
ensure
ENV.delete("BAD_KEK")
end
it "raises on missing env var" do
expect_raises(CRE::Crypto::Kek::InvalidKekError) do
CRE::Crypto::Kek::EnvKek.new("DOES_NOT_EXIST_XYZ_KEK", version: 1)
end
end
end