Sha256: 674defa481575de4256ca23c2f9c48cb108b9b43547f009d1dc845bee64c33a0
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
require 'spec_helper' describe BitPay::KeyUtils do let(:key_utils) {BitPay::KeyUtils} describe '.generate_pem' do it 'should generate a pem string' do regex = /BEGIN\ EC\ PRIVATE\ KEY/ expect(regex.match(key_utils.generate_pem)).to be_truthy end end describe '.get_public_key_from_pem' do it 'should generate the right public key' do expect(key_utils.get_public_key_from_pem(PEM)).to eq(PUB_KEY) end it 'should get pem from the env if none is passed' do expect(key_utils.get_public_key_from_pem(PEM)).to eq(PUB_KEY) end end describe '.generate_sin_from_pem' do let(:pem){PEM} let(:sin){CLIENT_ID} it 'will return the right sin for the right pem' do expect(key_utils.generate_sin_from_pem(pem)).to eq sin end end describe '.sign_with_pem' do it "should provide a valid signature" do message = "hello cincinatti" digest = Digest::SHA256.digest(message) pem = PEM signature = key_utils.sign_with_pem pem, message priv= OpenSSL::PKey::EC.new(pem).private_key.to_i group = ECDSA::Group::Secp256k1 pk = group.generator.multiply_by_scalar(priv) decoded = ECDSA::Format::SignatureDerString.decode(signature.to_i(16).to_bn.to_s(2)) valid = ECDSA.valid_signature?(pk, digest, decoded) expect(valid).to be(true) end end context "errors when priv_key is not provided" do it 'will not retrieve public key' do expect{key_utils.get_public_key_from_pem(nil)}.to raise_error(BitPay::BitPayError) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bitpay-key-utils-2.2.1905 | spec/key_utils_spec.rb |
bitpay-key-utils-2.0.1 | spec/key_utils_spec.rb |