Skip to content
This repository has been archived by the owner on Aug 26, 2022. It is now read-only.

Commit

Permalink
Extract and update parameter tests and convert to modern expect format
Browse files Browse the repository at this point in the history
  • Loading branch information
grempe committed May 14, 2016
1 parent 9705b45 commit a276db9
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 66 deletions.
45 changes: 45 additions & 0 deletions spec/parameters_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# encoding: utf-8
require 'spec_helper'

describe SIRP do
# Test predefined values for N and g.
# Values are from vectors listed in RFC 5054 Appendix B.
#
context 'parameters' do
it 'should raise an error on unknown verifier group size' do
expect { SIRP::Verifier.new(1234) }.to raise_error(NotImplementedError, 'unknown group size')
end

before :all do
@params = [
{ group: 1024, generator: 2, hash: Digest::SHA1, hash_nn: '0995b627385b26f55dc1fe18de984252e0357b9f2c884d8d3f9fd9f2de32f408' },
{ group: 1536, generator: 2, hash: Digest::SHA1, hash_nn: 'ba36a6059669d1d9eb4125d63eeca771bb7bb54efa14cb5ef8efd07ef8bf2094' },
{ group: 2048, generator: 2, hash: Digest::SHA256, hash_nn: 'ef88b43c555c005c89f9c32dbd2ced49b0bb57e2cd1f2b5e9eca181afdf09c56' },
{ group: 3072, generator: 5, hash: Digest::SHA256, hash_nn: '30a45e27c3a0a6f934cd558e88e937625082b19bd435f74f04d7500e5032d88e' },
{ group: 4096, generator: 5, hash: Digest::SHA256, hash_nn: '233836aba654664fc65121b25f1760c0e72456e834bc42315fa21d38ade81cac' },
{ group: 6144, generator: 5, hash: Digest::SHA256, hash_nn: 'b84b67a0c9b0d7870cedf59880bed18dff60d4e965fe0f82ee70618861cc0a07' },
{ group: 8192, generator: 19, hash: Digest::SHA256, hash_nn: 'a408aa7fd5e69ae6886c3b3fd50051efc417d62cf224cebf8d8aeb49654185ed' }
]
end

it 'should be correct when accessed through a SIRP::Verifier' do
@params.each do |p|
v = SIRP::Verifier.new(p[:group])
expect(('%b' % v.N).length).to eq(p[:group])
expect(Digest::SHA256.hexdigest(('%x' % v.N))).to eq(p[:hash_nn])
expect(v.g).to eq(p[:generator])
expect(v.hash).to eq(p[:hash])
end
end

it 'should be correct when accessed through a SIRP.Ng' do
@params.each do |p|
nn, g, h = SIRP.Ng(p[:group])
expect(('%b' % nn).length).to eq(p[:group])
expect(Digest::SHA256.hexdigest(('%x' % nn))).to eq(p[:hash_nn])
expect(g).to eq(p[:generator])
expect(h).to eq(p[:hash])
end
end
end
end
66 changes: 0 additions & 66 deletions spec/sirp_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,72 +117,6 @@
end
end

### Test predefined values for N and g.
### Values are from vectors listed in RFC 5054 Appendix B.
###
context '@predefined-Ng' do
it 'should raise an error on unknown verifier group size' do
expect { SIRP::Verifier.new(1234) }.to raise_error(NotImplementedError, 'unknown group size')
end

it 'should be 1024 bits' do
verifier = SIRP::Verifier.new(1024)
nn = verifier.N
('%x' % nn).should == 'eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3'
('%b' % nn).length.should == 1024
verifier.g.should == 2
verifier.hash.should == Digest::SHA1
end

it 'should be 1536 bits' do
verifier = SIRP::Verifier.new(1536)
nn = verifier.N
('%b' % nn).length.should == 1536
verifier.g.should == 2
verifier.hash.should == Digest::SHA1
end

it 'should be 2048 bits' do
verifier = SIRP::Verifier.new(2048)
nn = verifier.N
('%b' % nn).length.should == 2048
verifier.g.should == 2
verifier.hash.should == Digest::SHA256
end

it 'should be 3072 bits' do
verifier = SIRP::Verifier.new(3072)
nn = verifier.N
('%b' % nn).length.should == 3072
verifier.g.should == 5
verifier.hash.should == Digest::SHA256
end

it 'should be 4096 bits' do
verifier = SIRP::Verifier.new(4096)
nn = verifier.N
('%b' % nn).length.should == 4096
verifier.g.should == 5
verifier.hash.should == Digest::SHA256
end

it 'should be 6144 bits' do
verifier = SIRP::Verifier.new(6144)
nn = verifier.N
('%b' % nn).length.should == 6144
verifier.g.should == 5
verifier.hash.should == Digest::SHA256
end

it 'should be 8192 bits' do
verifier = SIRP::Verifier.new(8192)
nn = verifier.N
('%b' % nn).length.should == 8192
verifier.g.should == 19 # decimal, is 13 (hex) in jsrp lib which is 19 decimal
verifier.hash.should == Digest::SHA256
end
end

### Test server-side Verifier.
### Values are from http://srp.stanford.edu/demo/demo.html
### using 1024 bit values.
Expand Down

0 comments on commit a276db9

Please sign in to comment.