pplcdid 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/AUTHORS +1 -0
  3. data/LICENSE +201 -0
  4. data/README.md +2 -0
  5. data/VERSION +1 -0
  6. data/lib/ppldid/basic.rb +278 -0
  7. data/lib/ppldid/didcomm.rb +120 -0
  8. data/lib/ppldid/log.rb +394 -0
  9. data/lib/ppldid.rb +739 -0
  10. data/spec/input/basic/arrays.json +8 -0
  11. data/spec/input/basic/french.json +6 -0
  12. data/spec/input/basic/sample2_get_location.doc +1 -0
  13. data/spec/input/basic/sample2_retrieve_document.doc +1 -0
  14. data/spec/input/basic/sample3_retrieve_document.doc +1 -0
  15. data/spec/input/basic/sample4_retrieve_document.doc +1 -0
  16. data/spec/input/basic/sample5_retrieve_document.doc +1 -0
  17. data/spec/input/basic/sample_dec.doc +1 -0
  18. data/spec/input/basic/sample_enc.doc +1 -0
  19. data/spec/input/basic/sample_get_location.doc +1 -0
  20. data/spec/input/basic/sample_hash.doc +1 -0
  21. data/spec/input/basic/sample_invalid2_readkey.doc +1 -0
  22. data/spec/input/basic/sample_invalid2_verify.doc +1 -0
  23. data/spec/input/basic/sample_invalid3_readkey.doc +1 -0
  24. data/spec/input/basic/sample_invalid3_verify.doc +1 -0
  25. data/spec/input/basic/sample_invalid_privkey.doc +1 -0
  26. data/spec/input/basic/sample_invalid_readkey.doc +1 -0
  27. data/spec/input/basic/sample_invalid_sign.doc +1 -0
  28. data/spec/input/basic/sample_invalid_verify.doc +1 -0
  29. data/spec/input/basic/sample_key.doc +1 -0
  30. data/spec/input/basic/sample_readkey.doc +1 -0
  31. data/spec/input/basic/sample_retrieve_document.doc +1 -0
  32. data/spec/input/basic/sample_sign.doc +1 -0
  33. data/spec/input/basic/sample_valid_privkey.doc +1 -0
  34. data/spec/input/basic/sample_verify.doc +1 -0
  35. data/spec/input/basic/structures.json +8 -0
  36. data/spec/input/basic/unicode.json +3 -0
  37. data/spec/input/basic/values.json +5 -0
  38. data/spec/input/basic/wierd.json +11 -0
  39. data/spec/input/basic/zQmaBZTghn.doc +1 -0
  40. data/spec/input/log/sample0_dag2array.doc +1 -0
  41. data/spec/input/log/sample0_dag_did.doc +1 -0
  42. data/spec/input/log/sample1_dag_did.doc +1 -0
  43. data/spec/input/log/sample1_dag_update.doc +1 -0
  44. data/spec/input/log/sample2_dag_did.doc +1 -0
  45. data/spec/input/log/sample2_dag_update.doc +1 -0
  46. data/spec/input/log/sample2_retrieve_log.doc +1 -0
  47. data/spec/input/log/sample3_dag_did.doc +1 -0
  48. data/spec/input/log/sample3_dag_update.doc +1 -0
  49. data/spec/input/log/sample3_retrieve_log.doc +1 -0
  50. data/spec/input/log/sample4_dag_did.doc +1 -0
  51. data/spec/input/log/sample4_dag_update.doc +1 -0
  52. data/spec/input/log/sample4_retrieve_log.doc +1 -0
  53. data/spec/input/log/sample5_dag_update.doc +1 -0
  54. data/spec/input/log/sample5_retrieve_log.doc +1 -0
  55. data/spec/input/log/sample6_dag_update.doc +1 -0
  56. data/spec/input/log/sample6_retrieve_log.doc +1 -0
  57. data/spec/input/log/sample7_dag_update.doc +1 -0
  58. data/spec/input/log/sample7_retrieve_log.doc +1 -0
  59. data/spec/input/log/sample8_dag_update.doc +1 -0
  60. data/spec/input/log/sample_addhash.doc +1 -0
  61. data/spec/input/log/sample_dag_update.doc +1 -0
  62. data/spec/input/log/sample_match_log.doc +1 -0
  63. data/spec/input/log/sample_op1_addhash.doc +1 -0
  64. data/spec/input/log/sample_retrieve_log.doc +1 -0
  65. data/spec/input/main/sample0_read.doc +1 -0
  66. data/spec/output/basic/arrays.json +1 -0
  67. data/spec/output/basic/french.json +1 -0
  68. data/spec/output/basic/sample2_get_location.doc +1 -0
  69. data/spec/output/basic/sample2_retrieve_document.doc +1 -0
  70. data/spec/output/basic/sample3_retrieve_document.doc +1 -0
  71. data/spec/output/basic/sample4_retrieve_document.doc +1 -0
  72. data/spec/output/basic/sample5_retrieve_document.doc +1 -0
  73. data/spec/output/basic/sample_dec.doc +1 -0
  74. data/spec/output/basic/sample_enc.doc +1 -0
  75. data/spec/output/basic/sample_get_location.doc +1 -0
  76. data/spec/output/basic/sample_hash.doc +1 -0
  77. data/spec/output/basic/sample_invalid2_readkey.doc +1 -0
  78. data/spec/output/basic/sample_invalid2_verify.doc +1 -0
  79. data/spec/output/basic/sample_invalid3_readkey.doc +1 -0
  80. data/spec/output/basic/sample_invalid3_verify.doc +1 -0
  81. data/spec/output/basic/sample_invalid_privkey.doc +1 -0
  82. data/spec/output/basic/sample_invalid_readkey.doc +1 -0
  83. data/spec/output/basic/sample_invalid_sign.doc +1 -0
  84. data/spec/output/basic/sample_invalid_verify.doc +1 -0
  85. data/spec/output/basic/sample_key.doc +1 -0
  86. data/spec/output/basic/sample_readkey.doc +1 -0
  87. data/spec/output/basic/sample_retrieve_document.doc +1 -0
  88. data/spec/output/basic/sample_sign.doc +1 -0
  89. data/spec/output/basic/sample_valid_privkey.doc +1 -0
  90. data/spec/output/basic/sample_verify.doc +1 -0
  91. data/spec/output/basic/structures.json +1 -0
  92. data/spec/output/basic/unicode.json +1 -0
  93. data/spec/output/basic/values.json +1 -0
  94. data/spec/output/basic/wierd.json +1 -0
  95. data/spec/output/log/sample0_dag2array.doc +1 -0
  96. data/spec/output/log/sample0_dag_did.doc +1 -0
  97. data/spec/output/log/sample1_dag_did.doc +1 -0
  98. data/spec/output/log/sample1_dag_update.doc +1 -0
  99. data/spec/output/log/sample2_dag_did.doc +1 -0
  100. data/spec/output/log/sample2_dag_update.doc +1 -0
  101. data/spec/output/log/sample2_retrieve_log.doc +1 -0
  102. data/spec/output/log/sample3_dag_did.doc +1 -0
  103. data/spec/output/log/sample3_dag_update.doc +1 -0
  104. data/spec/output/log/sample3_retrieve_log.doc +1 -0
  105. data/spec/output/log/sample4_dag_did.doc +1 -0
  106. data/spec/output/log/sample4_dag_update.doc +1 -0
  107. data/spec/output/log/sample4_retrieve_log.doc +1 -0
  108. data/spec/output/log/sample5_dag_update.doc +1 -0
  109. data/spec/output/log/sample5_retrieve_log.doc +1 -0
  110. data/spec/output/log/sample6_dag_update.doc +1 -0
  111. data/spec/output/log/sample6_retrieve_log.doc +1 -0
  112. data/spec/output/log/sample7_dag_update.doc +1 -0
  113. data/spec/output/log/sample7_retrieve_log.doc +1 -0
  114. data/spec/output/log/sample8_dag_update.doc +1 -0
  115. data/spec/output/log/sample_addhash.doc +1 -0
  116. data/spec/output/log/sample_dag_update.doc +1 -0
  117. data/spec/output/log/sample_match_log.doc +1 -0
  118. data/spec/output/log/sample_op1_addhash.doc +1 -0
  119. data/spec/output/log/sample_retrieve_log.doc +1 -0
  120. data/spec/output/main/sample0_read.doc +1 -0
  121. data/spec/ppldid_spec.rb +170 -0
  122. data/spec/spec_helper.rb +31 -0
  123. metadata +420 -0
@@ -0,0 +1,170 @@
1
+ require_relative 'spec_helper'
2
+
3
+ describe "PPLDID handling" do
4
+ # basic functions
5
+ Dir.glob(File.expand_path("../input/basic/*_enc.doc", __FILE__)).each do |input|
6
+ it "encodes #{input.split('/').last}" do
7
+ expected = File.read(input.sub('input', 'output'))
8
+ data = File.read(input)
9
+ expect(pplcdid.encode(data)).to eq expected
10
+ end
11
+ end
12
+ Dir.glob(File.expand_path("../input/basic/*_dec.doc", __FILE__)).each do |input|
13
+ it "decodes #{input.split('/').last}" do
14
+ expected = File.read(input.sub('input', 'output'))
15
+ data = File.read(input)
16
+ expect(pplcdid.decode(data)).to eq expected
17
+ end
18
+ end
19
+ Dir.glob(File.expand_path("../input/basic/*_hash.doc", __FILE__)).each do |input|
20
+ it "hashes #{input.split('/').last}" do
21
+ expected = File.read(input.sub('input', 'output'))
22
+ data = File.read(input)
23
+ expect(pplcdid.hash(data)).to eq expected
24
+ end
25
+ end
26
+ Dir.glob(File.expand_path("../input/basic/*.json", __FILE__)).each do |input|
27
+ it "converts #{input.split('/').last}" do
28
+ expected = File.read(input.sub('input', 'output'))
29
+ data = JSON.parse(File.read(input))
30
+ expect(pplcdid.canonical(data)).to eq expected
31
+ end
32
+ end
33
+ it "converts strings" do
34
+ expected = "\"asdf\""
35
+ data = "asdf"
36
+ expect(pplcdid.canonical(data)).to eq expected
37
+ end
38
+
39
+ # key management
40
+ Dir.glob(File.expand_path("../input/basic/*_key.doc", __FILE__)).each do |input|
41
+ it "generates #{input.split('/').last}" do
42
+ expected = File.read(input.sub('input', 'output'))
43
+ data = File.read(input)
44
+ expect(pplcdid.generate_private_key(data).first).to eq expected
45
+ end
46
+ end
47
+ it "handles unknown key codec" do
48
+ expected = "unknown key codec"
49
+ expect(pplcdid.generate_private_key("", "asdf").last).to eq expected
50
+ end
51
+ it "handles unsupported key codec" do
52
+ expected = "unsupported key codec"
53
+ expect(pplcdid.generate_private_key("", "p256-pub").last).to eq expected
54
+ end
55
+ it "handles random key generation" do
56
+ expected_length = 48
57
+ expect(pplcdid.generate_private_key("").first.length).to eq expected_length
58
+ end
59
+ Dir.glob(File.expand_path("../input/basic/*_privkey.doc", __FILE__)).each do |input|
60
+ it "public key from private key #{input.split('/').last}" do
61
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
62
+ data = File.read(input)
63
+ expect(pplcdid.public_key(data)).to eq expected
64
+ end
65
+ end
66
+ Dir.glob(File.expand_path("../input/basic/*_sign.doc", __FILE__)).each do |input|
67
+ it "signing #{input.split('/').last}" do
68
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
69
+ data = JSON.parse(File.read(input))
70
+ expect(pplcdid.sign(data["message"], data["key"])).to eq expected
71
+ end
72
+ end
73
+ Dir.glob(File.expand_path("../input/basic/*_verify.doc", __FILE__)).each do |input|
74
+ it "verifying #{input.split('/').last}" do
75
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
76
+ data = JSON.parse(File.read(input))
77
+ expect(pplcdid.verify(data["message"], data["signature"], data["public_key"])).to eq expected
78
+ end
79
+ end
80
+ Dir.glob(File.expand_path("../input/basic/*_readkey.doc", __FILE__)).each do |input|
81
+ it "reading private key from file #{input.split('/').last}" do
82
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
83
+ data = File.read(input)
84
+ expect(pplcdid.read_private_key(data)).to eq expected
85
+ end
86
+ end
87
+
88
+ # storage functions
89
+ it "should create 'filename' and put/read 'text'" do
90
+ @buffer = StringIO.new()
91
+ @filename = "filename"
92
+ @content = "text"
93
+ allow(File).to receive(:open).with(@filename,'w').and_yield( @buffer )
94
+ pplcdid.write_private_storage(@content, @filename)
95
+ expect(@buffer.string).to eq(@content)
96
+ allow(File).to receive(:open).with(@filename, 'r').and_yield( StringIO.new(@content) )
97
+ expect(pplcdid.read_private_storage(@filename)).to eq(@content)
98
+ end
99
+
100
+ # document functions
101
+ Dir.glob(File.expand_path("../input/basic/*_get_location.doc", __FILE__)).each do |input|
102
+ it "get location from #{input.split('/').last}" do
103
+ expected = File.read(input.sub('input', 'output'))
104
+ data = File.read(input)
105
+ expect(pplcdid.get_location(data)).to eq expected
106
+ end
107
+ end
108
+ Dir.glob(File.expand_path("../input/basic/*_retrieve_document.doc", __FILE__)).each do |input|
109
+ it "get location from #{input.split('/').last}" do
110
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
111
+ data = JSON.parse(File.read(input))
112
+ expect(pplcdid.retrieve_document(data["doc_hash"], data["doc_file"], data["doc_location"], data["options"])).to eq expected
113
+ end
114
+ end
115
+
116
+ # log functions
117
+ Dir.glob(File.expand_path("../input/log/*_addhash.doc", __FILE__)).each do |input|
118
+ it "adding hash value to log entry #{input.split('/').last}" do
119
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
120
+ data = JSON.parse(File.read(input))
121
+ expect(pplcdid.add_hash(data)).to eq expected
122
+ end
123
+ end
124
+ Dir.glob(File.expand_path("../input/log/*_match_log.doc", __FILE__)).each do |input|
125
+ it "check log entry match #{input.split('/').last}" do
126
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
127
+ data = JSON.parse(File.read(input))
128
+ expect(pplcdid.match_log_did?(data, data["didoc"])).to eq expected
129
+ end
130
+ end
131
+ Dir.glob(File.expand_path("../input/log/*_retrieve_log.doc", __FILE__)).each do |input|
132
+ it "retrieve log #{input.split('/').last}" do
133
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
134
+ data = JSON.parse(File.read(input))
135
+ expect(pplcdid.retrieve_log(data["did_hash"], data["log_file"], data["log_location"], data["options"])).to eq expected
136
+ end
137
+ end
138
+ Dir.glob(File.expand_path("../input/log/*_dag_did.doc", __FILE__)).each do |input|
139
+ it "creates DAG from log #{input.split('/').last}" do
140
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
141
+ data = JSON.parse(File.read(input))
142
+ expect(pplcdid.dag_did(data["log"], data["options"]).last(3)).to eq expected
143
+ end
144
+ end
145
+ Dir.glob(File.expand_path("../input/log/*_dag2array.doc", __FILE__)).each do |input|
146
+ it "process dag2array for #{input.split('/').last}" do
147
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
148
+ data = JSON.parse(File.read(input))
149
+ dag, create_index, terminate_index, msg = pplcdid.dag_did(data["log"], data["options"])
150
+ expect(pplcdid.dag2array(dag, data["log"], create_index, [], data["options"])).to eq expected
151
+ end
152
+ end
153
+ # Dir.glob(File.expand_path("../input/log/*_dag_update.doc", __FILE__)).each do |input|
154
+ # it "process DAG for #{input.split('/').last}" do
155
+ # expected = JSON.parse(File.read(input.sub('input', 'output')))
156
+ # data = JSON.parse(File.read(input))
157
+ # expect(pplcdid.dag_update(data["currentDID"], data["options"])).to eq expected
158
+ # end
159
+ # end
160
+
161
+ # main functionds
162
+ Dir.glob(File.expand_path("../input/main/*_read.doc", __FILE__)).each do |input|
163
+ it "execute read for #{input.split('/').last}" do
164
+ expected = JSON.parse(File.read(input.sub('input', 'output')))
165
+ data = JSON.parse(File.read(input))
166
+ expect(pplcdid.read(data["did"], data["options"])).to eq expected
167
+ end
168
+ end
169
+
170
+ end
@@ -0,0 +1,31 @@
1
+ $:.unshift(File.join("../lib", __FILE__))
2
+
3
+ require "bundler/setup"
4
+ require 'rspec'
5
+
6
+ begin
7
+ require 'simplecov'
8
+ require 'simplecov-lcov'
9
+
10
+ SimpleCov::Formatter::LcovFormatter.config do |config|
11
+ #Coveralls is coverage by default/lcov. Send info results
12
+ config.report_with_single_file = true
13
+ config.single_report_path = 'coverage/lcov.info'
14
+ end
15
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
16
+ SimpleCov::Formatter::HTMLFormatter,
17
+ SimpleCov::Formatter::LcovFormatter
18
+ ])
19
+
20
+ SimpleCov.start do
21
+ add_filter "/spec/"
22
+ end
23
+ rescue LoadError
24
+ end
25
+
26
+ require 'pplcdid'
27
+
28
+ ::RSpec.configure do |c|
29
+ c.filter_run focus: true
30
+ c.run_all_when_everything_filtered = true
31
+ end
metadata ADDED
@@ -0,0 +1,420 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pplcdid
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.3
5
+ platform: ruby
6
+ authors:
7
+ - Jerry Zhang
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-06-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dag
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.9
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.9
27
+ - !ruby/object:Gem::Dependency
28
+ name: jwt
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.4.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.4.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: rbnacl
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 7.1.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 7.1.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: ed25519
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.3.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: httparty
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.20.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.20.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: multibases
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.3.2
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.3.2
97
+ - !ruby/object:Gem::Dependency
98
+ name: multihashes
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.2.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: multicodecs
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.2.1
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.2.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: json-canonicalization
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 0.2.1
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.2.1
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '3.10'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '3.10'
153
+ description: This gem provides the basic methods for managing did:pplc.
154
+ email:
155
+ executables: []
156
+ extensions: []
157
+ extra_rdoc_files: []
158
+ files:
159
+ - AUTHORS
160
+ - LICENSE
161
+ - README.md
162
+ - VERSION
163
+ - lib/ppldid.rb
164
+ - lib/ppldid/basic.rb
165
+ - lib/ppldid/didcomm.rb
166
+ - lib/ppldid/log.rb
167
+ - spec/input/basic/arrays.json
168
+ - spec/input/basic/french.json
169
+ - spec/input/basic/sample2_get_location.doc
170
+ - spec/input/basic/sample2_retrieve_document.doc
171
+ - spec/input/basic/sample3_retrieve_document.doc
172
+ - spec/input/basic/sample4_retrieve_document.doc
173
+ - spec/input/basic/sample5_retrieve_document.doc
174
+ - spec/input/basic/sample_dec.doc
175
+ - spec/input/basic/sample_enc.doc
176
+ - spec/input/basic/sample_get_location.doc
177
+ - spec/input/basic/sample_hash.doc
178
+ - spec/input/basic/sample_invalid2_readkey.doc
179
+ - spec/input/basic/sample_invalid2_verify.doc
180
+ - spec/input/basic/sample_invalid3_readkey.doc
181
+ - spec/input/basic/sample_invalid3_verify.doc
182
+ - spec/input/basic/sample_invalid_privkey.doc
183
+ - spec/input/basic/sample_invalid_readkey.doc
184
+ - spec/input/basic/sample_invalid_sign.doc
185
+ - spec/input/basic/sample_invalid_verify.doc
186
+ - spec/input/basic/sample_key.doc
187
+ - spec/input/basic/sample_readkey.doc
188
+ - spec/input/basic/sample_retrieve_document.doc
189
+ - spec/input/basic/sample_sign.doc
190
+ - spec/input/basic/sample_valid_privkey.doc
191
+ - spec/input/basic/sample_verify.doc
192
+ - spec/input/basic/structures.json
193
+ - spec/input/basic/unicode.json
194
+ - spec/input/basic/values.json
195
+ - spec/input/basic/wierd.json
196
+ - spec/input/basic/zQmaBZTghn.doc
197
+ - spec/input/log/sample0_dag2array.doc
198
+ - spec/input/log/sample0_dag_did.doc
199
+ - spec/input/log/sample1_dag_did.doc
200
+ - spec/input/log/sample1_dag_update.doc
201
+ - spec/input/log/sample2_dag_did.doc
202
+ - spec/input/log/sample2_dag_update.doc
203
+ - spec/input/log/sample2_retrieve_log.doc
204
+ - spec/input/log/sample3_dag_did.doc
205
+ - spec/input/log/sample3_dag_update.doc
206
+ - spec/input/log/sample3_retrieve_log.doc
207
+ - spec/input/log/sample4_dag_did.doc
208
+ - spec/input/log/sample4_dag_update.doc
209
+ - spec/input/log/sample4_retrieve_log.doc
210
+ - spec/input/log/sample5_dag_update.doc
211
+ - spec/input/log/sample5_retrieve_log.doc
212
+ - spec/input/log/sample6_dag_update.doc
213
+ - spec/input/log/sample6_retrieve_log.doc
214
+ - spec/input/log/sample7_dag_update.doc
215
+ - spec/input/log/sample7_retrieve_log.doc
216
+ - spec/input/log/sample8_dag_update.doc
217
+ - spec/input/log/sample_addhash.doc
218
+ - spec/input/log/sample_dag_update.doc
219
+ - spec/input/log/sample_match_log.doc
220
+ - spec/input/log/sample_op1_addhash.doc
221
+ - spec/input/log/sample_retrieve_log.doc
222
+ - spec/input/main/sample0_read.doc
223
+ - spec/output/basic/arrays.json
224
+ - spec/output/basic/french.json
225
+ - spec/output/basic/sample2_get_location.doc
226
+ - spec/output/basic/sample2_retrieve_document.doc
227
+ - spec/output/basic/sample3_retrieve_document.doc
228
+ - spec/output/basic/sample4_retrieve_document.doc
229
+ - spec/output/basic/sample5_retrieve_document.doc
230
+ - spec/output/basic/sample_dec.doc
231
+ - spec/output/basic/sample_enc.doc
232
+ - spec/output/basic/sample_get_location.doc
233
+ - spec/output/basic/sample_hash.doc
234
+ - spec/output/basic/sample_invalid2_readkey.doc
235
+ - spec/output/basic/sample_invalid2_verify.doc
236
+ - spec/output/basic/sample_invalid3_readkey.doc
237
+ - spec/output/basic/sample_invalid3_verify.doc
238
+ - spec/output/basic/sample_invalid_privkey.doc
239
+ - spec/output/basic/sample_invalid_readkey.doc
240
+ - spec/output/basic/sample_invalid_sign.doc
241
+ - spec/output/basic/sample_invalid_verify.doc
242
+ - spec/output/basic/sample_key.doc
243
+ - spec/output/basic/sample_readkey.doc
244
+ - spec/output/basic/sample_retrieve_document.doc
245
+ - spec/output/basic/sample_sign.doc
246
+ - spec/output/basic/sample_valid_privkey.doc
247
+ - spec/output/basic/sample_verify.doc
248
+ - spec/output/basic/structures.json
249
+ - spec/output/basic/unicode.json
250
+ - spec/output/basic/values.json
251
+ - spec/output/basic/wierd.json
252
+ - spec/output/log/sample0_dag2array.doc
253
+ - spec/output/log/sample0_dag_did.doc
254
+ - spec/output/log/sample1_dag_did.doc
255
+ - spec/output/log/sample1_dag_update.doc
256
+ - spec/output/log/sample2_dag_did.doc
257
+ - spec/output/log/sample2_dag_update.doc
258
+ - spec/output/log/sample2_retrieve_log.doc
259
+ - spec/output/log/sample3_dag_did.doc
260
+ - spec/output/log/sample3_dag_update.doc
261
+ - spec/output/log/sample3_retrieve_log.doc
262
+ - spec/output/log/sample4_dag_did.doc
263
+ - spec/output/log/sample4_dag_update.doc
264
+ - spec/output/log/sample4_retrieve_log.doc
265
+ - spec/output/log/sample5_dag_update.doc
266
+ - spec/output/log/sample5_retrieve_log.doc
267
+ - spec/output/log/sample6_dag_update.doc
268
+ - spec/output/log/sample6_retrieve_log.doc
269
+ - spec/output/log/sample7_dag_update.doc
270
+ - spec/output/log/sample7_retrieve_log.doc
271
+ - spec/output/log/sample8_dag_update.doc
272
+ - spec/output/log/sample_addhash.doc
273
+ - spec/output/log/sample_dag_update.doc
274
+ - spec/output/log/sample_match_log.doc
275
+ - spec/output/log/sample_op1_addhash.doc
276
+ - spec/output/log/sample_retrieve_log.doc
277
+ - spec/output/main/sample0_read.doc
278
+ - spec/ppldid_spec.rb
279
+ - spec/spec_helper.rb
280
+ homepage: http://github.com/peoplecarbon/pplcdid
281
+ licenses:
282
+ - Apache
283
+ metadata:
284
+ documentation_uri: https://peoplecarbon.github.io/pplcdid
285
+ bug_tracker_uri: https://github.com/peoplecarbon/pplcdid/issues
286
+ homepage_uri: http://github.com/peoplecarbon/pplcdid
287
+ source_code_uri: http://github.com/peoplecarbon/pplcdid/tree/main/ruby-gem
288
+ post_install_message:
289
+ rdoc_options: []
290
+ require_paths:
291
+ - lib
292
+ required_ruby_version: !ruby/object:Gem::Requirement
293
+ requirements:
294
+ - - ">="
295
+ - !ruby/object:Gem::Version
296
+ version: 2.5.7
297
+ required_rubygems_version: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - ">="
300
+ - !ruby/object:Gem::Version
301
+ version: '0'
302
+ requirements: []
303
+ rubygems_version: 3.1.2
304
+ signing_key:
305
+ specification_version: 4
306
+ summary: Decentralized IDentifier for Carbon Dioxid Removal.
307
+ test_files:
308
+ - spec/spec_helper.rb
309
+ - spec/ppldid_spec.rb
310
+ - spec/input/basic/values.json
311
+ - spec/input/basic/wierd.json
312
+ - spec/input/basic/unicode.json
313
+ - spec/input/basic/french.json
314
+ - spec/input/basic/structures.json
315
+ - spec/input/basic/arrays.json
316
+ - spec/output/basic/values.json
317
+ - spec/output/basic/wierd.json
318
+ - spec/output/basic/unicode.json
319
+ - spec/output/basic/french.json
320
+ - spec/output/basic/structures.json
321
+ - spec/output/basic/arrays.json
322
+ - spec/input/main/sample0_read.doc
323
+ - spec/input/basic/sample_hash.doc
324
+ - spec/input/basic/sample_invalid_sign.doc
325
+ - spec/input/basic/zQmaBZTghn.doc
326
+ - spec/input/basic/sample_invalid_readkey.doc
327
+ - spec/input/basic/sample4_retrieve_document.doc
328
+ - spec/input/basic/sample_invalid2_readkey.doc
329
+ - spec/input/basic/sample2_retrieve_document.doc
330
+ - spec/input/basic/sample_verify.doc
331
+ - spec/input/basic/sample_readkey.doc
332
+ - spec/input/basic/sample_get_location.doc
333
+ - spec/input/basic/sample_key.doc
334
+ - spec/input/basic/sample_valid_privkey.doc
335
+ - spec/input/basic/sample5_retrieve_document.doc
336
+ - spec/input/basic/sample_sign.doc
337
+ - spec/input/basic/sample2_get_location.doc
338
+ - spec/input/basic/sample_invalid2_verify.doc
339
+ - spec/input/basic/sample_enc.doc
340
+ - spec/input/basic/sample3_retrieve_document.doc
341
+ - spec/input/basic/sample_retrieve_document.doc
342
+ - spec/input/basic/sample_dec.doc
343
+ - spec/input/basic/sample_invalid_verify.doc
344
+ - spec/input/basic/sample_invalid3_readkey.doc
345
+ - spec/input/basic/sample_invalid3_verify.doc
346
+ - spec/input/basic/sample_invalid_privkey.doc
347
+ - spec/input/log/sample0_dag_did.doc
348
+ - spec/input/log/sample_op1_addhash.doc
349
+ - spec/input/log/sample2_retrieve_log.doc
350
+ - spec/input/log/sample1_dag_did.doc
351
+ - spec/input/log/sample2_dag_update.doc
352
+ - spec/input/log/sample4_dag_update.doc
353
+ - spec/input/log/sample3_retrieve_log.doc
354
+ - spec/input/log/sample4_dag_did.doc
355
+ - spec/input/log/sample_retrieve_log.doc
356
+ - spec/input/log/sample3_dag_did.doc
357
+ - spec/input/log/sample8_dag_update.doc
358
+ - spec/input/log/sample6_dag_update.doc
359
+ - spec/input/log/sample_match_log.doc
360
+ - spec/input/log/sample4_retrieve_log.doc
361
+ - spec/input/log/sample7_retrieve_log.doc
362
+ - spec/input/log/sample7_dag_update.doc
363
+ - spec/input/log/sample5_retrieve_log.doc
364
+ - spec/input/log/sample_addhash.doc
365
+ - spec/input/log/sample5_dag_update.doc
366
+ - spec/input/log/sample2_dag_did.doc
367
+ - spec/input/log/sample0_dag2array.doc
368
+ - spec/input/log/sample6_retrieve_log.doc
369
+ - spec/input/log/sample_dag_update.doc
370
+ - spec/input/log/sample1_dag_update.doc
371
+ - spec/input/log/sample3_dag_update.doc
372
+ - spec/output/main/sample0_read.doc
373
+ - spec/output/basic/sample_hash.doc
374
+ - spec/output/basic/sample_invalid_sign.doc
375
+ - spec/output/basic/sample_invalid_readkey.doc
376
+ - spec/output/basic/sample4_retrieve_document.doc
377
+ - spec/output/basic/sample_invalid2_readkey.doc
378
+ - spec/output/basic/sample2_retrieve_document.doc
379
+ - spec/output/basic/sample_verify.doc
380
+ - spec/output/basic/sample_readkey.doc
381
+ - spec/output/basic/sample_get_location.doc
382
+ - spec/output/basic/sample_key.doc
383
+ - spec/output/basic/sample_valid_privkey.doc
384
+ - spec/output/basic/sample5_retrieve_document.doc
385
+ - spec/output/basic/sample_sign.doc
386
+ - spec/output/basic/sample2_get_location.doc
387
+ - spec/output/basic/sample_invalid2_verify.doc
388
+ - spec/output/basic/sample_enc.doc
389
+ - spec/output/basic/sample3_retrieve_document.doc
390
+ - spec/output/basic/sample_retrieve_document.doc
391
+ - spec/output/basic/sample_dec.doc
392
+ - spec/output/basic/sample_invalid_verify.doc
393
+ - spec/output/basic/sample_invalid3_readkey.doc
394
+ - spec/output/basic/sample_invalid3_verify.doc
395
+ - spec/output/basic/sample_invalid_privkey.doc
396
+ - spec/output/log/sample0_dag_did.doc
397
+ - spec/output/log/sample_op1_addhash.doc
398
+ - spec/output/log/sample2_retrieve_log.doc
399
+ - spec/output/log/sample1_dag_did.doc
400
+ - spec/output/log/sample2_dag_update.doc
401
+ - spec/output/log/sample4_dag_update.doc
402
+ - spec/output/log/sample3_retrieve_log.doc
403
+ - spec/output/log/sample4_dag_did.doc
404
+ - spec/output/log/sample_retrieve_log.doc
405
+ - spec/output/log/sample3_dag_did.doc
406
+ - spec/output/log/sample8_dag_update.doc
407
+ - spec/output/log/sample6_dag_update.doc
408
+ - spec/output/log/sample_match_log.doc
409
+ - spec/output/log/sample4_retrieve_log.doc
410
+ - spec/output/log/sample7_retrieve_log.doc
411
+ - spec/output/log/sample7_dag_update.doc
412
+ - spec/output/log/sample5_retrieve_log.doc
413
+ - spec/output/log/sample_addhash.doc
414
+ - spec/output/log/sample5_dag_update.doc
415
+ - spec/output/log/sample2_dag_did.doc
416
+ - spec/output/log/sample0_dag2array.doc
417
+ - spec/output/log/sample6_retrieve_log.doc
418
+ - spec/output/log/sample_dag_update.doc
419
+ - spec/output/log/sample1_dag_update.doc
420
+ - spec/output/log/sample3_dag_update.doc