starkbank-ecdsa 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd555b4cfa7381d2bb5474787e015bda8ef7bd9be0c1fcc925ad0e2fc6af1a71
4
- data.tar.gz: 0bfbbb53624ff2237906a00b05ef4b236213317463c52189f1ad493bd1fc5dec
3
+ metadata.gz: 5e63c03244cb43717832696cc0567614e40d1812791f6d1aef90627c4f01a054
4
+ data.tar.gz: ac8cfa030831acaa46edd0fb8d0b34ed4b05230657042edf1b3c8bc19df04b83
5
5
  SHA512:
6
- metadata.gz: 5c3020d41382cb1024d2bcccf72eed5d901ee3359b360145714d4e1007af097515fef6380a28696b3c0a04daf13400061bd0474b79024ad3ecace07f50c23ca3
7
- data.tar.gz: c4bd3860f3f9a2df3f4894407a48e6f47be4ab76b008e9a755bd9c8d1039a5ec436a885ba05c5513bf2a8aad2eb7f7b6ffb23d10e324d5c89047286968f43d82
6
+ metadata.gz: cd480ea49374c8c573116f1b6283700cc1f6798b20aca5319b75d29f3cab67409532f95590d40a4846808e4a6ae78f4c8af7095efbe7fcbf83a1f21cb5a09a43
7
+ data.tar.gz: c422e3a7453b412fe8718c7494256a7c0485f84556a76baa6062cc04917b50ec5e75cfae6a39b7baa20eab3b28faa605412444b21b892b2c8a7996917ba6251a
@@ -3,26 +3,30 @@ require 'openssl'
3
3
  require 'signature'
4
4
 
5
5
 
6
- module Ecdsa
6
+ module EllipticCurve
7
7
 
8
- def self.sign(message, privateKey, hashfunc=nil)
9
- if hashfunc.nil?
10
- message = Digest::SHA256.digest(message)
11
- else
12
- message = hashfunc(message)
13
- end
8
+ module Ecdsa
14
9
 
15
- signature = privateKey.openSslPrivateKey.dsa_sign_asn1(message)
16
- return Signature.new(signature)
17
- end
10
+ def self.sign(message, privateKey, hashfunc=nil)
11
+ if hashfunc.nil?
12
+ message = Digest::SHA256.digest(message)
13
+ else
14
+ message = hashfunc(message)
15
+ end
18
16
 
19
- def self.verify(message, signature, publicKey, hashfunc=nil)
20
- if hashfunc.nil?
21
- message = Digest::SHA256.digest(message)
22
- else
23
- message = hashfunc(message)
17
+ signature = privateKey.openSslPrivateKey.dsa_sign_asn1(message)
18
+ return Signature.new(signature)
24
19
  end
25
- return publicKey.openSslPublicKey.dsa_verify_asn1(message, signature.toDer())
20
+
21
+ def self.verify(message, signature, publicKey, hashfunc=nil)
22
+ if hashfunc.nil?
23
+ message = Digest::SHA256.digest(message)
24
+ else
25
+ message = hashfunc(message)
26
+ end
27
+ return publicKey.openSslPublicKey.dsa_verify_asn1(message, signature.toDer())
28
+ end
29
+
26
30
  end
27
31
 
28
- end
32
+ end
@@ -3,47 +3,51 @@ require "base64"
3
3
  require_relative "publickey"
4
4
 
5
5
 
6
- class PrivateKey
6
+ module EllipticCurve
7
7
 
8
- def initialize(curve="secp256k1", openSslKey=nil)
9
- if openSslKey.nil?
10
- @openSslPrivateKey = OpenSSL::PKey::EC.new(curve)
11
- @openSslPrivateKey.generate_key
12
- else
13
- @openSslPrivateKey = openSslKey
8
+ class PrivateKey
9
+
10
+ def initialize(curve="secp256k1", openSslKey=nil)
11
+ if openSslKey.nil?
12
+ @openSslPrivateKey = OpenSSL::PKey::EC.new(curve)
13
+ @openSslPrivateKey.generate_key
14
+ else
15
+ @openSslPrivateKey = openSslKey
16
+ end
14
17
  end
15
- end
16
18
 
17
- attr_reader :openSslPrivateKey
19
+ attr_reader :openSslPrivateKey
18
20
 
19
- def publicKey
20
- dupKey = OpenSSL::PKey::EC.new(@openSslPrivateKey.to_der())
21
- dupKey.private_key = nil
22
- return PublicKey.new(dupKey)
23
- end
21
+ def publicKey
22
+ dupKey = OpenSSL::PKey::EC.new(@openSslPrivateKey.to_der())
23
+ dupKey.private_key = nil
24
+ return PublicKey.new(dupKey)
25
+ end
24
26
 
25
- def toString
26
- return Base64.encode64(self.toDer())
27
- end
27
+ def toString
28
+ return Base64.encode64(self.toDer())
29
+ end
28
30
 
29
- def toDer
30
- return @openSslPrivateKey.to_der()
31
- end
31
+ def toDer
32
+ return @openSslPrivateKey.to_der()
33
+ end
32
34
 
33
- def toPem
34
- return @openSslPrivateKey.to_pem()
35
- end
35
+ def toPem
36
+ return @openSslPrivateKey.to_pem()
37
+ end
36
38
 
37
- def self.fromPem(string)
38
- return PrivateKey.new(nil, OpenSSL::PKey::EC.new(string))
39
- end
39
+ def self.fromPem(string)
40
+ return PrivateKey.new(nil, OpenSSL::PKey::EC.new(string))
41
+ end
40
42
 
41
- def self.fromDer(string)
42
- return PrivateKey.new(nil, OpenSSL::PKey::EC.new(string))
43
- end
43
+ def self.fromDer(string)
44
+ return PrivateKey.new(nil, OpenSSL::PKey::EC.new(string))
45
+ end
46
+
47
+ def self.fromString(string)
48
+ return PrivateKey.new(nil, OpenSSL::PKey::EC.new(Base64.decode64(string)))
49
+ end
44
50
 
45
- def self.fromString(string)
46
- return PrivateKey.new(nil, OpenSSL::PKey::EC.new(Base64.decode64(string)))
47
51
  end
48
52
 
49
- end
53
+ end
@@ -1,33 +1,37 @@
1
- class PublicKey
1
+ module EllipticCurve
2
2
 
3
- def initialize(openSslPublicKey)
4
- @openSslPublicKey = openSslPublicKey
5
- end
3
+ class PublicKey
6
4
 
7
- attr_reader :openSslPublicKey
5
+ def initialize(openSslPublicKey)
6
+ @openSslPublicKey = openSslPublicKey
7
+ end
8
8
 
9
- def toString
10
- return Base64.encode64(self.toDer())
11
- end
9
+ attr_reader :openSslPublicKey
12
10
 
13
- def toDer
14
- @openSslPublicKey.to_der()
15
- end
11
+ def toString
12
+ return Base64.encode64(self.toDer())
13
+ end
16
14
 
17
- def toPem
18
- @openSslPublicKey.to_pem()
19
- end
15
+ def toDer
16
+ @openSslPublicKey.to_der()
17
+ end
20
18
 
21
- def self.fromPem(string)
22
- return PublicKey.new(OpenSSL::PKey::EC.new(string))
23
- end
19
+ def toPem
20
+ @openSslPublicKey.to_pem()
21
+ end
24
22
 
25
- def self.fromDer(string)
26
- return PublicKey.new(OpenSSL::PKey::EC.new(string))
27
- end
23
+ def self.fromPem(string)
24
+ return PublicKey.new(OpenSSL::PKey::EC.new(string))
25
+ end
26
+
27
+ def self.fromDer(string)
28
+ return PublicKey.new(OpenSSL::PKey::EC.new(string))
29
+ end
30
+
31
+ def self.fromString(string)
32
+ return PublicKey.new(OpenSSL::PKey::EC.new(Base64.decode64(string)))
33
+ end
28
34
 
29
- def self.fromString(string)
30
- return PublicKey.new(OpenSSL::PKey::EC.new(Base64.decode64(string)))
31
35
  end
32
36
 
33
- end
37
+ end
@@ -2,31 +2,34 @@ require "base64"
2
2
  require "openssl"
3
3
 
4
4
 
5
- class Signature
5
+ module EllipticCurve
6
6
 
7
- def initialize(der)
8
- @der = der
9
- decoded = OpenSSL::ASN1.decode(der).value
10
- @r = decoded[0].value
11
- @s = decoded[1].value
12
- end
7
+ class Signature
13
8
 
14
- attr_reader :r, :s
9
+ def initialize(der)
10
+ @der = der
11
+ decoded = OpenSSL::ASN1.decode(der).value
12
+ @r = decoded[0].value
13
+ @s = decoded[1].value
14
+ end
15
15
 
16
- def toDer
17
- return @der
18
- end
16
+ attr_reader :r, :s
19
17
 
20
- def toBase64
21
- Base64.encode64(self.toDer()).gsub("\n", "")
22
- end
18
+ def toDer
19
+ return @der
20
+ end
23
21
 
24
- def self.fromDer(string)
25
- return Signature.new(string)
26
- end
22
+ def toBase64
23
+ Base64.encode64(self.toDer()).gsub("\n", "")
24
+ end
27
25
 
28
- def self.fromBase64(string)
29
- self.fromDer(Base64.decode64(string))
30
- end
26
+ def self.fromDer(string)
27
+ return Signature.new(string)
28
+ end
29
+
30
+ def self.fromBase64(string)
31
+ self.fromDer(Base64.decode64(string))
32
+ end
31
33
 
32
- end
34
+ end
35
+ end
@@ -3,17 +3,3 @@ require_relative "publickey"
3
3
  require_relative "privatekey"
4
4
  require_relative "ecdsa"
5
5
  require_relative "utils/file"
6
-
7
-
8
- module EllipticCurve
9
-
10
- Signature = Signature
11
- PublicKey = PublicKey
12
- PrivateKey = PrivateKey
13
- Ecdsa = Ecdsa
14
-
15
- module Utils
16
- File = File
17
- end
18
-
19
- end
@@ -1,10 +1,18 @@
1
- class File
1
+ module EllipticCurve
2
+
3
+ module Utils
4
+
5
+ class File
6
+
7
+ def self.read(path, encoding="ASCII")
8
+ file = ::File.open(path, :encoding => encoding.upcase)
9
+ content = file.read
10
+ file.close
11
+ content
12
+ end
13
+
14
+ end
2
15
 
3
- def self.read(path, encoding="ASCII")
4
- file = File.open(path, :encoding => encoding.upcase)
5
- content = file.read
6
- file.close
7
- return content
8
16
  end
9
17
 
10
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: starkbank-ecdsa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - starkbank