ltec 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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