ltec 0.1.1 → 0.1.2

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: f8d26733395b3b78dc2ec834297af2fe7773acf8f4f3b9de6681f226b4d82fa3
4
- data.tar.gz: 1f37579b78dde51aa930d1cac9511837ee399dfd3924344e9f2ebff4f0032065
3
+ metadata.gz: fb6af2beec7f8bbecdf9ab6f626f7241ab135a750cb0d9149a681f11b88c13cf
4
+ data.tar.gz: b13e8e025bffa6da9e2820b64758f85491da2b4c987ef76b81e7f200a9ee5e07
5
5
  SHA512:
6
- metadata.gz: ff58f4e4698ca7f495627db0763cba642dbe60abd32583feb653dbbdc14e0cfa447c4d27ffc56977331cfe24098a5eec33cdd6f4b1f2a8d6df99551b583c2751
7
- data.tar.gz: 9d3b5eb65fd5bab11c43dafda2e83aa6586c0fa9038e5b05c79af41e9df5d1856b7702b50ad0f3f31c214c95452090e42774ea0052f46540f3c06ea842c6bd8b
6
+ metadata.gz: 315ddf7858cb471ff3ef415e05c464519da4417bea2a74084cea74344cb3df9ee961359b262289e8f0f38ba3134a8ddc0e4ceaca79260ea9847e5ea6b02e9cd7
7
+ data.tar.gz: 2d7919deac25120018c9a75b6e3ec65350837f95bb86038702143f56851a0096db9047fe6f484e5271bb26eaf0df16f35f7733f720a378bd7fdc3065fe126516
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ltec (0.1.0)
4
+ ltec (0.1.1)
5
5
  base64 (~> 0.1.0)
6
6
  openssl (~> 2.2.0)
7
7
  salsa20 (~> 0.1.3)
@@ -9,8 +9,10 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- base64 (0.1.0)
13
- openssl (2.2.0)
12
+ base64 (0.1.1)
13
+ ipaddr (1.2.4)
14
+ openssl (2.2.1)
15
+ ipaddr
14
16
  rake (13.0.3)
15
17
  salsa20 (0.1.3)
16
18
 
data/lib/ltec/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ltec
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
data/lib/ltec.rb CHANGED
@@ -3,7 +3,6 @@
3
3
  require_relative "ltec/version"
4
4
  require 'openssl'
5
5
  require "base64"
6
- require 'salsa20'
7
6
 
8
7
  module Ltec
9
8
  class Error < StandardError; end
@@ -65,24 +64,35 @@ module Ltec
65
64
 
66
65
  dhHash = OpenSSL::Digest.digest("SHA512", ptX)
67
66
 
68
- nonce = OpenSSL::Random.random_bytes(8)
69
- encryptor = Salsa20.new(dhHash[0...32], nonce)
70
- encrypted_text = encryptor.encrypt(msg)
71
-
67
+ nonce = OpenSSL::Random.random_bytes(16)
68
+
69
+ encryptor = OpenSSL::Cipher::AES256.new(:CBC)
70
+ encryptor.encrypt
71
+ encryptor.key = dhHash[0...32]
72
+ encryptor.iv = nonce
73
+
74
+
75
+ # encryptor = Salsa20.new(dhHash[0...32], nonce)
76
+ encrypted_text = encryptor.update(msg) + encryptor.final
77
+ puts 1123
72
78
  dataforMac = nonce + empherPub + encrypted_text
73
79
  mac = OpenSSL::HMAC.digest('sha256', dhHash[32,64], dataforMac)
74
80
 
75
81
  #
76
- return base64(fromHex('0300080020002100') + nonce + mac + empherPub + encrypted_text)
82
+ return base64(fromHex('0100100020002100') + nonce + mac + empherPub + encrypted_text)
77
83
 
78
84
  end
79
85
 
80
86
  def EC.decrypt(secKey,base64Cipher)
81
87
  encResult = base64Decode(base64Cipher)
82
- nonce = encResult[8...16]
83
- mac = encResult[16...48]
84
- tmpPub = encResult[48...81]
85
- dataEnc = encResult[81...encResult.length]
88
+ start = 8
89
+ nonce = encResult[start...(start + 16)]
90
+ start = start + 16;
91
+ mac = encResult[start...(start + 32)]
92
+ start = start + 32;
93
+ tmpPub = encResult[start...(start + 33)]
94
+ start = start + 33;
95
+ dataEnc = encResult[start...(encResult.length)]
86
96
 
87
97
  tmpPubHex = toHex(tmpPub)
88
98
  ec = OpenSSL::PKey::EC.new(SECP256K1)
@@ -105,9 +115,13 @@ module Ltec
105
115
  if mac2 != mac
106
116
  raise 'Mac not Fit,the privateKey is not fit'
107
117
  end
108
-
109
- encryptor = Salsa20.new(key, nonce)
110
- txt = encryptor.decrypt(dataEnc)
118
+ # encryptor = Salsa20.new(key, nonce)
119
+ # txt = encryptor.decrypt(dataEnc)
120
+ encryptor = OpenSSL::Cipher::AES256.new(:CBC)
121
+ encryptor.decrypt
122
+ encryptor.key = key
123
+ encryptor.iv = nonce
124
+ txt = encryptor.update(dataEnc) + encryptor.final
111
125
  return txt
112
126
  end
113
127
  end
data/lib/test.rb ADDED
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "ltec"
4
+
5
+ kp = Ltec::EC.generateKeyPair()
6
+ puts kp
7
+ msg = "hello"
8
+ msg2 = "hello world3"
9
+
10
+ enc1 = Ltec::EC.encrypt(kp['pubkey'],msg)
11
+ dec1 = Ltec::EC.decrypt(kp['seckey'],enc1)
12
+ puts enc1
13
+ puts dec1
14
+
15
+
16
+
17
+ enc2 = Ltec::EC.encrypt(kp['pubkey'],msg2)
18
+ dec2 = Ltec::EC.decrypt(kp['seckey'],enc2)
19
+ puts enc2
20
+ puts dec2
data/ltec.gemspec CHANGED
@@ -35,7 +35,6 @@ Gem::Specification.new do |spec|
35
35
 
36
36
  spec.add_dependency "openssl", "~> 2.2.0"
37
37
  spec.add_dependency "base64", "~> 0.1.0"
38
- spec.add_dependency "salsa20", "~> 0.1.3"
39
38
 
40
39
 
41
40
  # For more information and examples about making a new gem, check out our
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ltec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - vitock
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-13 00:00:00.000000000 Z
11
+ date: 2022-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: openssl
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.1.0
41
- - !ruby/object:Gem::Dependency
42
- name: salsa20
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.1.3
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.1.3
55
41
  description: 'using ECC to enrypt private message with ruby ,the curve is SECP256k1 '
56
42
  email:
57
43
  - ''
@@ -67,6 +53,7 @@ files:
67
53
  - exe/ltectool
68
54
  - lib/ltec.rb
69
55
  - lib/ltec/version.rb
56
+ - lib/test.rb
70
57
  - ltec.gemspec
71
58
  - sig/ltec.rbs
72
59
  homepage: https://github.com/vitock/ltec_rb.git