universa_tools 0.1.4 → 0.1.5
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 +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
|