diff --git a/spec/sodium/nonce_spec.cr b/spec/sodium/nonce_spec.cr new file mode 100644 index 0000000..1420beb --- /dev/null +++ b/spec/sodium/nonce_spec.cr @@ -0,0 +1,31 @@ +require "../spec_helper" +require "../../src/sodium/nonce" + +zero = Bytes.new(Sodium::Nonce::NONCE_SIZE) +one = Bytes.new(Sodium::Nonce::NONCE_SIZE).dup +one[0] = 1_u8 + +describe Sodium::Nonce do + it "generates a random nonce" do + nonce = Sodium::Nonce.random + nonce.should_not eq zero + end + + it "loads an existing nonce" do + nonce = Sodium::Nonce.new one + nonce.to_slice.should eq one + end + + it "zero nonce with increment" do + nonce = Sodium::Nonce.zero + nonce.to_slice.should eq zero + + nonce.used?.should be_false + nonce.used! + nonce.used?.should be_true + + nonce.increment + nonce.to_slice.should eq one + nonce.used?.should be_false + end +end