universa_tools 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.idea/workspace.xml +57 -46
- data/lib/universa_tools/crypto_record.rb +7 -0
- data/lib/universa_tools/keyring.rb +27 -5
- data/lib/universa_tools/uniring.rb +16 -3
- data/lib/universa_tools/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 323439c54ed7fc37c7f277101f3182e48ed47604948b184ad35a095adaf72f53
|
4
|
+
data.tar.gz: 5e15fda5d3daa545b347a173ba16fdc92f7bf591830e9a6a392287b457476d4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e00a703e837bb3300aebb2b390c3d313597af1bb68dd00e965055a77dcca91ba0f19a2eb292e7748e5f0c06d7e6624912bab757cec1835294b797ea732c829c5
|
7
|
+
data.tar.gz: 3a175349bb5c75fee62db57e6884d8291f3ef4ec71a191618c45fb061a35df820052cfa5b273a7bdc0cdbb3299a253631c162fd61744f64232b8cff68dc4bde7
|
data/.gitignore
CHANGED
data/.idea/workspace.xml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<project version="4">
|
3
3
|
<component name="ChangeListManager">
|
4
|
-
<list default="true" id="b5de240c-a3f4-4e4f-a942-24748bb7a400" name="Default Changelist" comment="
|
4
|
+
<list default="true" id="b5de240c-a3f4-4e4f-a942-24748bb7a400" name="Default Changelist" comment="">
|
5
|
+
<change afterPath="$PROJECT_DIR$/spec/fixtures/old_keyring/uniring.unirecord" afterDir="false" />
|
6
|
+
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
|
5
7
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
6
|
-
<change beforePath="$PROJECT_DIR$/lib/universa_tools/
|
7
|
-
<change beforePath="$PROJECT_DIR$/lib/universa_tools/
|
8
|
-
<change beforePath="$PROJECT_DIR$/lib/universa_tools/
|
8
|
+
<change beforePath="$PROJECT_DIR$/lib/universa_tools/crypto_record.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/universa_tools/crypto_record.rb" afterDir="false" />
|
9
|
+
<change beforePath="$PROJECT_DIR$/lib/universa_tools/keyring.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/universa_tools/keyring.rb" afterDir="false" />
|
10
|
+
<change beforePath="$PROJECT_DIR$/lib/universa_tools/uniring.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/universa_tools/uniring.rb" afterDir="false" />
|
9
11
|
<change beforePath="$PROJECT_DIR$/lib/universa_tools/version.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/universa_tools/version.rb" afterDir="false" />
|
10
|
-
<change beforePath="$PROJECT_DIR$/spec/
|
11
|
-
<change beforePath="$PROJECT_DIR$/spec/uns_spec.rb" beforeDir="false" afterPath="$PROJECT_DIR$/spec/uns_spec.rb" afterDir="false" />
|
12
|
-
<change beforePath="$PROJECT_DIR$/universa_tools.gemspec" beforeDir="false" afterPath="$PROJECT_DIR$/universa_tools.gemspec" afterDir="false" />
|
12
|
+
<change beforePath="$PROJECT_DIR$/spec/keying_spec.rb" beforeDir="false" afterPath="$PROJECT_DIR$/spec/keying_spec.rb" afterDir="false" />
|
13
13
|
</list>
|
14
14
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
15
15
|
<option name="SHOW_DIALOG" value="false" />
|
@@ -44,7 +44,7 @@
|
|
44
44
|
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
45
45
|
<property name="nodejs_package_manager_path" value="npm" />
|
46
46
|
<property name="restartRequiresConfirmation" value="false" />
|
47
|
-
<property name="settings.editor.selected.configurable" value="
|
47
|
+
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
|
48
48
|
</component>
|
49
49
|
<component name="RecentsManager">
|
50
50
|
<key name="CopyFile.RECENT_KEYS">
|
@@ -66,26 +66,40 @@
|
|
66
66
|
</option>
|
67
67
|
</component>
|
68
68
|
<component name="RunManager" selected="RSpec.All specs in spec: universa_tools">
|
69
|
-
<configuration name="
|
69
|
+
<configuration name="All specs in spec: universa_tools" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
70
70
|
<module name="universa_tools" />
|
71
|
-
<
|
72
|
-
<
|
73
|
-
<
|
74
|
-
<
|
75
|
-
<
|
76
|
-
<
|
71
|
+
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
72
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
73
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
74
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
75
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
76
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
77
|
+
<envs>
|
78
|
+
<env name="JRUBY_OPTS" value="-X+O" />
|
79
|
+
</envs>
|
80
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
77
81
|
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
78
82
|
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov">
|
79
83
|
<COVERAGE_PATTERN ENABLED="true">
|
80
84
|
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
81
85
|
</COVERAGE_PATTERN>
|
82
86
|
</EXTENSION>
|
83
|
-
<
|
84
|
-
<
|
85
|
-
<
|
87
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="$MODULE_DIR$/spec" />
|
88
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
|
89
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
90
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="'**/*_spec.rb'" />
|
91
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
92
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="ALL_IN_FOLDER" />
|
93
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
94
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
95
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
96
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
97
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
98
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
99
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
86
100
|
<method v="2" />
|
87
101
|
</configuration>
|
88
|
-
<configuration name="
|
102
|
+
<configuration name="KeyRing changes password" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true" nameIsGenerated="true">
|
89
103
|
<module name="universa_tools" />
|
90
104
|
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
91
105
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
@@ -103,12 +117,12 @@
|
|
103
117
|
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
104
118
|
</COVERAGE_PATTERN>
|
105
119
|
</EXTENSION>
|
106
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="
|
107
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
|
120
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
121
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/keying_spec.rb" />
|
108
122
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
109
123
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="'**/*_spec.rb'" />
|
110
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
111
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="
|
124
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="KeyRing changes password" />
|
125
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
112
126
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
113
127
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
114
128
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
@@ -118,7 +132,7 @@
|
|
118
132
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
119
133
|
<method v="2" />
|
120
134
|
</configuration>
|
121
|
-
<configuration name="
|
135
|
+
<configuration name="KeyRing has fingerprint" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true" nameIsGenerated="true">
|
122
136
|
<module name="universa_tools" />
|
123
137
|
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
124
138
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
@@ -137,10 +151,10 @@
|
|
137
151
|
</COVERAGE_PATTERN>
|
138
152
|
</EXTENSION>
|
139
153
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
140
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
154
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/keying_spec.rb" />
|
141
155
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
142
156
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="'**/*_spec.rb'" />
|
143
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="
|
157
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="KeyRing has fingerprint" />
|
144
158
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
145
159
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
146
160
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
@@ -220,10 +234,10 @@
|
|
220
234
|
<recent_temporary>
|
221
235
|
<list>
|
222
236
|
<item itemvalue="RSpec.All specs in spec: universa_tools" />
|
237
|
+
<item itemvalue="RSpec.KeyRing changes password" />
|
238
|
+
<item itemvalue="RSpec.KeyRing has fingerprint" />
|
223
239
|
<item itemvalue="RSpec.u_wallet pays uns" />
|
224
240
|
<item itemvalue="RSpec.u_wallet constructs" />
|
225
|
-
<item itemvalue="IRB console.IRB console: universa_tools" />
|
226
|
-
<item itemvalue="RSpec.UNS reduces" />
|
227
241
|
</list>
|
228
242
|
</recent_temporary>
|
229
243
|
</component>
|
@@ -249,7 +263,8 @@
|
|
249
263
|
<workItem from="1567801865613" duration="9803000" />
|
250
264
|
<workItem from="1568079682395" duration="4917000" />
|
251
265
|
<workItem from="1568278985272" duration="260000" />
|
252
|
-
<workItem from="1570002431639" duration="
|
266
|
+
<workItem from="1570002431639" duration="1461000" />
|
267
|
+
<workItem from="1571653188595" duration="8080000" />
|
253
268
|
</task>
|
254
269
|
<task id="LOCAL-00001" summary="initial">
|
255
270
|
<created>1566484458753</created>
|
@@ -356,7 +371,14 @@
|
|
356
371
|
<option name="project" value="LOCAL" />
|
357
372
|
<updated>1568079790194</updated>
|
358
373
|
</task>
|
359
|
-
<
|
374
|
+
<task id="LOCAL-00016" summary="Supplimantary version to provide coorrected UNS.reduce only">
|
375
|
+
<created>1570002794767</created>
|
376
|
+
<option name="number" value="00016" />
|
377
|
+
<option name="presentableId" value="LOCAL-00016" />
|
378
|
+
<option name="project" value="LOCAL" />
|
379
|
+
<updated>1570002794767</updated>
|
380
|
+
</task>
|
381
|
+
<option name="localTasksCounter" value="17" />
|
360
382
|
<servers />
|
361
383
|
</component>
|
362
384
|
<component name="TypeScriptGeneratedFilesManager">
|
@@ -391,25 +413,13 @@
|
|
391
413
|
<MESSAGE value="initial reduce implementation" />
|
392
414
|
<MESSAGE value="initial reduce implementation, improved" />
|
393
415
|
<MESSAGE value="corrected UNS.reduce tables, after voting for цяb subst" />
|
394
|
-
<
|
395
|
-
|
396
|
-
<component name="XDebuggerManager">
|
397
|
-
<breakpoint-manager>
|
398
|
-
<breakpoints>
|
399
|
-
<line-breakpoint enabled="true" type="ruby-line">
|
400
|
-
<url>file://$PROJECT_DIR$/lib/universa_tools/keyring.rb</url>
|
401
|
-
<line>48</line>
|
402
|
-
<properties a="-1">
|
403
|
-
<option name="block-ordinal" value="-1" />
|
404
|
-
</properties>
|
405
|
-
<option name="timeStamp" value="6" />
|
406
|
-
</line-breakpoint>
|
407
|
-
</breakpoints>
|
408
|
-
</breakpoint-manager>
|
416
|
+
<MESSAGE value="Supplimantary version to provide coorrected UNS.reduce only" />
|
417
|
+
<option name="LAST_COMMIT_MESSAGE" value="Supplimantary version to provide coorrected UNS.reduce only" />
|
409
418
|
</component>
|
410
419
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
411
420
|
<SUITE FILE_PATH="coverage/universa_tools@uniring_utility_shows_help.rcov" NAME="uniring utility shows help Coverage Results" MODIFIED="1567296251788" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
412
421
|
<SUITE FILE_PATH="coverage/universa_tools@UNS.rcov" NAME="UNS Coverage Results" MODIFIED="1567849178662" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
422
|
+
<SUITE FILE_PATH="coverage/universa_tools@KeyRing_changes_password.rcov" NAME="KeyRing changes password Coverage Results" MODIFIED="1571662161223" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
413
423
|
<SUITE FILE_PATH="coverage/universa_tools@uniring_spec.rcov" NAME="uniring_spec Coverage Results" MODIFIED="1567371103192" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
414
424
|
<SUITE FILE_PATH="coverage/universa_tools@UniversaTools_makes_pbkdf2_KR.rcov" NAME="UniversaTools makes pbkdf2 KR Coverage Results" MODIFIED="1567166457196" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
415
425
|
<SUITE FILE_PATH="coverage/universa_tools@uniring_utility_creates_emp___.rcov" NAME="uniring utility creates emp... Coverage Results" MODIFIED="1567296357954" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
@@ -417,11 +427,12 @@
|
|
417
427
|
<SUITE FILE_PATH="coverage/universa_tools@UniversaTools_suports_readonly.rcov" NAME="UniversaTools suports readonly Coverage Results" MODIFIED="1567256639449" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
418
428
|
<SUITE FILE_PATH="coverage/universa_tools@uniring_utility_creates_emp_____1_.rcov" NAME="uniring utility creates emp... (1) Coverage Results" MODIFIED="1567342698032" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
419
429
|
<SUITE FILE_PATH="coverage/universa_tools@u_wallet_pays_uns.rcov" NAME="u_wallet pays uns Coverage Results" MODIFIED="1568189575664" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
420
|
-
<SUITE FILE_PATH="coverage/universa_tools@All_specs_in_spec__universa_tools.rcov" NAME="All specs in spec: universa_tools Coverage Results" MODIFIED="
|
430
|
+
<SUITE FILE_PATH="coverage/universa_tools@All_specs_in_spec__universa_tools.rcov" NAME="All specs in spec: universa_tools Coverage Results" MODIFIED="1571663115755" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
421
431
|
<SUITE FILE_PATH="coverage/universa_tools@UniversaTools_can_create_UN___.rcov" NAME="UniversaTools can create UN... Coverage Results" MODIFIED="1567848976512" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
422
432
|
<SUITE FILE_PATH="coverage/universa_tools@keying_spec.rcov" NAME="keying_spec Coverage Results" MODIFIED="1567466681075" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
423
433
|
<SUITE FILE_PATH="coverage/universa_tools@fix.rcov" NAME="fix Coverage Results" MODIFIED="1566936576002" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Nextcloud/xchange support cases/0001-2019-01-Dimmao" MODULE_NAME="universa_tools" />
|
424
434
|
<SUITE FILE_PATH="coverage/universa_tools@IRB_console__universa_tools.rcov" NAME="IRB console: universa_tools Coverage Results" MODIFIED="1568080543716" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
435
|
+
<SUITE FILE_PATH="coverage/universa_tools@KeyRing_has_fingerprint.rcov" NAME="KeyRing has fingerprint Coverage Results" MODIFIED="1571657202439" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
425
436
|
<SUITE FILE_PATH="coverage/universa_tools@uniring.rcov" NAME="uniring Coverage Results" MODIFIED="1566914082799" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib/universa_tools" MODULE_NAME="universa_tools" />
|
426
437
|
<SUITE FILE_PATH="coverage/universa_tools@uniring_utility_add_keys.rcov" NAME="uniring utility add keys Coverage Results" MODIFIED="1567367228624" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
427
438
|
<SUITE FILE_PATH="coverage/universa_tools@UniversaTools_creates_new_ring.rcov" NAME="UniversaTools creates new ring Coverage Results" MODIFIED="1567256636642" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="universa_tools" />
|
@@ -104,6 +104,13 @@ class Pbkdf2CryptoRecord < CryptoRecord
|
|
104
104
|
derive_key(password).eta_decrypt(@ciphertext)
|
105
105
|
end
|
106
106
|
|
107
|
+
def try_decrypt(password)
|
108
|
+
decrypt(password)
|
109
|
+
rescue Farcall::RemoteError
|
110
|
+
nil
|
111
|
+
end
|
112
|
+
|
113
|
+
|
107
114
|
protected
|
108
115
|
|
109
116
|
def derive_key(password)
|
@@ -19,7 +19,7 @@ module UniversaTools
|
|
19
19
|
|
20
20
|
include Commons
|
21
21
|
|
22
|
-
attr :keys
|
22
|
+
attr :keys, :fingerprint
|
23
23
|
|
24
24
|
# The record class that hold key, tag and associated information inside the ring
|
25
25
|
KeyRecord = Struct.new(:tag, :key, :data, :file_name) do
|
@@ -34,6 +34,12 @@ module UniversaTools
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
def system_config
|
38
|
+
@system_config ||= begin
|
39
|
+
YAML.load_file File.expand_path("~/.universa/keyring_config.yml") rescue nil
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
37
43
|
# Create or open key ring at the specified path.
|
38
44
|
#
|
39
45
|
# @param [String] path to open from/create at
|
@@ -151,6 +157,13 @@ module UniversaTools
|
|
151
157
|
FileUtils.rm_f record.file_name
|
152
158
|
end
|
153
159
|
|
160
|
+
def change_password new_password
|
161
|
+
will_write!
|
162
|
+
@main_record = Pbkdf2CryptoRecord.new(hint: 'main password', salt: 42.random_alnums)
|
163
|
+
@main_record.encrypt(new_password, @main_key.pack)
|
164
|
+
write_config()
|
165
|
+
end
|
166
|
+
|
154
167
|
private
|
155
168
|
|
156
169
|
def find(tag_or_address)
|
@@ -188,7 +201,6 @@ module UniversaTools
|
|
188
201
|
|
189
202
|
def write_config
|
190
203
|
will_write!
|
191
|
-
# todo: safe overwrite
|
192
204
|
delete_file(backup_file_name)
|
193
205
|
FileUtils.mv(config_file_name, backup_file_name) if File.exists?(config_file_name)
|
194
206
|
open(config_file_name, 'wb') { |x|
|
@@ -223,7 +235,12 @@ module UniversaTools
|
|
223
235
|
def read_config
|
224
236
|
try_read(config_file_name)
|
225
237
|
@main_record or raise IOError("main key not found")
|
226
|
-
|
238
|
+
unpacked = nil
|
239
|
+
if (pwd=system_config&.dig("keyrings", @fingerprint, "password")) != nil
|
240
|
+
unpacked = @main_record.try_decrypt(pwd)
|
241
|
+
end
|
242
|
+
unpacked ||= @main_record.decrypt(request_password("password to open repository"))
|
243
|
+
@main_key = Universa::SymmetricKey.new(unpacked)
|
227
244
|
rescue IOError
|
228
245
|
# potentially recoverable
|
229
246
|
puts error_style("failed to open keyring: #$!")
|
@@ -240,6 +257,10 @@ module UniversaTools
|
|
240
257
|
@crypto_records = CryptoRecord.unpack_all(parser.get)
|
241
258
|
@main_record = @crypto_records.find { |r| r.is_a?(Pbkdf2CryptoRecord) }
|
242
259
|
}
|
260
|
+
@fingerprint = @header['fingerprint']&.freeze or begin
|
261
|
+
@header['fingerprint'] = @fingerprint = 31.random_alnums.freeze
|
262
|
+
write_config()
|
263
|
+
end
|
243
264
|
end
|
244
265
|
|
245
266
|
# creates new record if no exist. Does not wipe existing ring.
|
@@ -250,9 +271,10 @@ module UniversaTools
|
|
250
271
|
FileUtils.chmod(0700, @root_path)
|
251
272
|
|
252
273
|
@main_key = Universa::SymmetricKey.new()
|
253
|
-
@main_record = Pbkdf2CryptoRecord.new(hint: 'main password')
|
274
|
+
@main_record = Pbkdf2CryptoRecord.new(hint: 'main password', salt: 42.random_alnums)
|
254
275
|
@main_record.encrypt request_password("main password for the new keyring"), @main_key.pack
|
255
|
-
@
|
276
|
+
@fingerprint = 31.random_alnums.freeze
|
277
|
+
@header = {tag: 'uniring', version: '0.1.0', fingerprint: @fingerprint}
|
256
278
|
write_config()
|
257
279
|
end
|
258
280
|
|
@@ -58,9 +58,9 @@ Usage:
|
|
58
58
|
End
|
59
59
|
opts.separator ""
|
60
60
|
|
61
|
-
opts.on("--term-with SIZE", "
|
62
|
-
|
63
|
-
}
|
61
|
+
# opts.on("--term-with SIZE", "override terminal width to specified size when formatting output, default is taken from the terminal and is currently #@term_width.") { |size|
|
62
|
+
# @term_width = size
|
63
|
+
# }
|
64
64
|
|
65
65
|
opts.on("--all", "allow delete/update more than one key at a time") {
|
66
66
|
@allow_all = true
|
@@ -111,6 +111,7 @@ Usage:
|
|
111
111
|
keyring # this may ask for password so do it first
|
112
112
|
puts "--" * 40
|
113
113
|
puts ANSI.yellow { "KeyRing v.#{keyring.version.to_s}: " } + ANSI.bold { @keyring_path }
|
114
|
+
puts ANSI.yellow { "fingerprint: " } + ANSI.bold{ ANSI.green { keyring.fingerprint } }
|
114
115
|
puts "--" * 40
|
115
116
|
keyring.keys.sort_by { |x| x&.tag || '' }.each(&method(:show_record))
|
116
117
|
if (keyring.keys.size > 0)
|
@@ -122,6 +123,18 @@ Usage:
|
|
122
123
|
}
|
123
124
|
}
|
124
125
|
|
126
|
+
opts.on("-x", "--change-password [NEW_PASSWORD]",
|
127
|
+
"change password. if the password it not specified, it ",
|
128
|
+
"will be requested. Don't forget to use -- to separate",
|
129
|
+
"this option from the repository name when needed") { |np|
|
130
|
+
task {
|
131
|
+
kr = keyring
|
132
|
+
new_password = np || request_password2("enter new password")
|
133
|
+
kr.change_password new_password
|
134
|
+
puts "password has been changed"
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
125
138
|
opts.on("--init", "-i", "initialize new keyring. Does not change any existing keyring") {
|
126
139
|
task {
|
127
140
|
@keyring = KeyRing.new(@keyring_path, password: @password, password_proc: ->(x) { self.request_password2 x },
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: universa_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sergeych
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: universa
|