zora-cli 0.1.2__tar.gz → 0.1.4__tar.gz
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.
- {zora_cli-0.1.2/zora_cli.egg-info → zora_cli-0.1.4}/PKG-INFO +67 -70
- {zora_cli-0.1.2 → zora_cli-0.1.4}/README.md +65 -69
- {zora_cli-0.1.2 → zora_cli-0.1.4}/pyproject.toml +3 -2
- zora_cli-0.1.4/zora/__init__.py +1 -0
- {zora_cli-0.1.2 → zora_cli-0.1.4}/zora/cli.py +104 -25
- zora_cli-0.1.4/zora/update.py +72 -0
- {zora_cli-0.1.2 → zora_cli-0.1.4/zora_cli.egg-info}/PKG-INFO +67 -70
- {zora_cli-0.1.2 → zora_cli-0.1.4}/zora_cli.egg-info/SOURCES.txt +1 -0
- {zora_cli-0.1.2 → zora_cli-0.1.4}/zora_cli.egg-info/requires.txt +1 -0
- zora_cli-0.1.2/zora/__init__.py +0 -1
- {zora_cli-0.1.2 → zora_cli-0.1.4}/LICENSE +0 -0
- {zora_cli-0.1.2 → zora_cli-0.1.4}/setup.cfg +0 -0
- {zora_cli-0.1.2 → zora_cli-0.1.4}/zora_cli.egg-info/dependency_links.txt +0 -0
- {zora_cli-0.1.2 → zora_cli-0.1.4}/zora_cli.egg-info/entry_points.txt +0 -0
- {zora_cli-0.1.2 → zora_cli-0.1.4}/zora_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: zora-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Cryptographically secure generator of random keys with tons of options and customizations.
|
|
5
5
|
Author: zscopuv
|
|
6
6
|
License: ZORA SOURCE-AVAILABLE LICENSE
|
|
@@ -224,10 +224,11 @@ Requires-Python: >=3.9
|
|
|
224
224
|
Description-Content-Type: text/markdown
|
|
225
225
|
License-File: LICENSE
|
|
226
226
|
Requires-Dist: colorama==0.4.6
|
|
227
|
+
Requires-Dist: packaging>=24.0
|
|
227
228
|
Dynamic: license-file
|
|
228
229
|
|
|
229
|
-
# 
|
|
230
|
-
> **Early release (`v0.1.
|
|
230
|
+
# 
|
|
231
|
+
> **Early release (`v0.1.4`)**
|
|
231
232
|
|
|
232
233
|
Zora generates random keys using Python's cryptographically secure
|
|
233
234
|
`secrets` module by default. It supports customizable character sets,
|
|
@@ -257,19 +258,32 @@ output, entropy estimation, and an optional deterministic PRNG mode.
|
|
|
257
258
|
- 🤫 **Quiet mode** for scripting
|
|
258
259
|
- 📋 **Charset preset listing**
|
|
259
260
|
|
|
261
|
+
## Installation
|
|
262
|
+
|
|
263
|
+
### Requirements
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
pip install zora-cli
|
|
267
|
+
````
|
|
268
|
+
|
|
269
|
+
Run Zora:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
zora 32
|
|
273
|
+
```
|
|
260
274
|
|
|
261
275
|
# Usage
|
|
262
276
|
|
|
263
277
|
Basic usage:
|
|
264
278
|
|
|
265
279
|
```bash
|
|
266
|
-
|
|
280
|
+
zora LENGTH [OPTIONS]
|
|
267
281
|
```
|
|
268
282
|
|
|
269
283
|
For example:
|
|
270
284
|
|
|
271
285
|
```bash
|
|
272
|
-
|
|
286
|
+
zora 32
|
|
273
287
|
```
|
|
274
288
|
|
|
275
289
|
Example output:
|
|
@@ -293,7 +307,7 @@ Generator: CSPRNG
|
|
|
293
307
|
The length of the random portion of the generated key.
|
|
294
308
|
|
|
295
309
|
```bash
|
|
296
|
-
|
|
310
|
+
zora 32
|
|
297
311
|
```
|
|
298
312
|
|
|
299
313
|
The value must be greater than `0`.
|
|
@@ -305,7 +319,7 @@ The value must be greater than `0`.
|
|
|
305
319
|
Select the character set used to generate keys.
|
|
306
320
|
|
|
307
321
|
```bash
|
|
308
|
-
|
|
322
|
+
zora 32 --charset @digits
|
|
309
323
|
```
|
|
310
324
|
|
|
311
325
|
By default:
|
|
@@ -323,7 +337,7 @@ Zora supports both predefined charset presets and literal characters.
|
|
|
323
337
|
Use `--charset-list` to display all available presets:
|
|
324
338
|
|
|
325
339
|
```bash
|
|
326
|
-
|
|
340
|
+
zora --charset-list
|
|
327
341
|
```
|
|
328
342
|
|
|
329
343
|
Currently available presets:
|
|
@@ -346,7 +360,7 @@ Currently available presets:
|
|
|
346
360
|
Presets can be combined:
|
|
347
361
|
|
|
348
362
|
```bash
|
|
349
|
-
|
|
363
|
+
zora 32 --charset @letters@digits
|
|
350
364
|
```
|
|
351
365
|
|
|
352
366
|
This creates an alphanumeric character set.
|
|
@@ -354,7 +368,7 @@ This creates an alphanumeric character set.
|
|
|
354
368
|
Multiple presets can be combined:
|
|
355
369
|
|
|
356
370
|
```bash
|
|
357
|
-
|
|
371
|
+
zora 32 --charset @upper@lower@digits
|
|
358
372
|
```
|
|
359
373
|
|
|
360
374
|
Duplicate characters are automatically removed.
|
|
@@ -376,7 +390,7 @@ Literal characters can be included alongside presets.
|
|
|
376
390
|
For example:
|
|
377
391
|
|
|
378
392
|
```bash
|
|
379
|
-
|
|
393
|
+
zora 32 --charset @hexXYZ
|
|
380
394
|
```
|
|
381
395
|
|
|
382
396
|
This means:
|
|
@@ -388,7 +402,7 @@ This means:
|
|
|
388
402
|
Another example:
|
|
389
403
|
|
|
390
404
|
```bash
|
|
391
|
-
|
|
405
|
+
zora 32 --charset XYZ@hex
|
|
392
406
|
```
|
|
393
407
|
|
|
394
408
|
means:
|
|
@@ -406,7 +420,7 @@ This allows arbitrary character sets without needing to add a new preset.
|
|
|
406
420
|
Display the available charset presets:
|
|
407
421
|
|
|
408
422
|
```bash
|
|
409
|
-
|
|
423
|
+
zora --charset-list
|
|
410
424
|
```
|
|
411
425
|
|
|
412
426
|
Example:
|
|
@@ -437,13 +451,13 @@ Use as:
|
|
|
437
451
|
Use `-n` or `--count`:
|
|
438
452
|
|
|
439
453
|
```bash
|
|
440
|
-
|
|
454
|
+
zora 32 --count 10
|
|
441
455
|
```
|
|
442
456
|
|
|
443
457
|
or:
|
|
444
458
|
|
|
445
459
|
```bash
|
|
446
|
-
|
|
460
|
+
zora 32 -n 10
|
|
447
461
|
```
|
|
448
462
|
|
|
449
463
|
Zora generates each key independently.
|
|
@@ -458,7 +472,7 @@ cryptographically secure random generator.
|
|
|
458
472
|
Add a prefix:
|
|
459
473
|
|
|
460
474
|
```bash
|
|
461
|
-
|
|
475
|
+
zora 32 --prefix "AUTH_"
|
|
462
476
|
```
|
|
463
477
|
|
|
464
478
|
Example:
|
|
@@ -470,13 +484,13 @@ AUTH_GxKqTnJpYwRzLhBcVfQmNsXeUaPkTdWr
|
|
|
470
484
|
Add a suffix:
|
|
471
485
|
|
|
472
486
|
```bash
|
|
473
|
-
|
|
487
|
+
zora 32 --suffix "_KEY"
|
|
474
488
|
```
|
|
475
489
|
|
|
476
490
|
Both can be used together:
|
|
477
491
|
|
|
478
492
|
```bash
|
|
479
|
-
|
|
493
|
+
zora 32 --prefix "AUTH_" --suffix "_KEY"
|
|
480
494
|
```
|
|
481
495
|
|
|
482
496
|
> Prefixes and suffixes are not random and therefore do not contribute to
|
|
@@ -491,7 +505,7 @@ Use `--group` to insert a separator every N characters.
|
|
|
491
505
|
For example:
|
|
492
506
|
|
|
493
507
|
```bash
|
|
494
|
-
|
|
508
|
+
zora 32 --group 4
|
|
495
509
|
```
|
|
496
510
|
|
|
497
511
|
Output:
|
|
@@ -509,7 +523,7 @@ The default separator is:
|
|
|
509
523
|
Use `--sep` to change it:
|
|
510
524
|
|
|
511
525
|
```bash
|
|
512
|
-
|
|
526
|
+
zora 32 --group 4 --sep ":"
|
|
513
527
|
```
|
|
514
528
|
|
|
515
529
|
Output:
|
|
@@ -528,7 +542,7 @@ entropy.
|
|
|
528
542
|
Use `-o` or `--output` to write generated keys to a file:
|
|
529
543
|
|
|
530
544
|
```bash
|
|
531
|
-
|
|
545
|
+
zora 32 -n 10 --output keys.txt
|
|
532
546
|
```
|
|
533
547
|
|
|
534
548
|
The generated keys are written one per line.
|
|
@@ -551,7 +565,7 @@ This is the recommended mode when generating authentication tokens,
|
|
|
551
565
|
API keys, secrets, or other security-sensitive random values.
|
|
552
566
|
|
|
553
567
|
```bash
|
|
554
|
-
|
|
568
|
+
zora 32
|
|
555
569
|
```
|
|
556
570
|
|
|
557
571
|
The output will report:
|
|
@@ -567,7 +581,7 @@ Generator: CSPRNG
|
|
|
567
581
|
Use:
|
|
568
582
|
|
|
569
583
|
```bash
|
|
570
|
-
|
|
584
|
+
zora 32 --unsafe
|
|
571
585
|
```
|
|
572
586
|
|
|
573
587
|
to use Python's normal pseudo-random number generator instead of the
|
|
@@ -602,7 +616,7 @@ This is intentional.
|
|
|
602
616
|
The following will fail:
|
|
603
617
|
|
|
604
618
|
```bash
|
|
605
|
-
|
|
619
|
+
zora 32 --seed example
|
|
606
620
|
```
|
|
607
621
|
|
|
608
622
|
because Zora's secure generator should not be made deterministic through
|
|
@@ -611,7 +625,7 @@ the normal CLI.
|
|
|
611
625
|
Instead:
|
|
612
626
|
|
|
613
627
|
```bash
|
|
614
|
-
|
|
628
|
+
zora 32 --unsafe --seed example
|
|
615
629
|
```
|
|
616
630
|
|
|
617
631
|
A seed can be useful for testing reproducibility.
|
|
@@ -619,7 +633,7 @@ A seed can be useful for testing reproducibility.
|
|
|
619
633
|
For example:
|
|
620
634
|
|
|
621
635
|
```bash
|
|
622
|
-
|
|
636
|
+
zora 32 --unsafe --seed test
|
|
623
637
|
```
|
|
624
638
|
|
|
625
639
|
will produce the same deterministic sequence when run with the same
|
|
@@ -635,7 +649,7 @@ rather than being reseeded for every key.
|
|
|
635
649
|
Use `-q` or `--quiet` to suppress non-essential output:
|
|
636
650
|
|
|
637
651
|
```bash
|
|
638
|
-
|
|
652
|
+
zora 32 --quiet
|
|
639
653
|
```
|
|
640
654
|
|
|
641
655
|
This is useful when using Zora inside scripts or shell pipelines.
|
|
@@ -643,7 +657,7 @@ This is useful when using Zora inside scripts or shell pipelines.
|
|
|
643
657
|
For example:
|
|
644
658
|
|
|
645
659
|
```bash
|
|
646
|
-
|
|
660
|
+
zora 32 --quiet > key.txt
|
|
647
661
|
```
|
|
648
662
|
|
|
649
663
|
---
|
|
@@ -675,13 +689,13 @@ entropy.
|
|
|
675
689
|
For example:
|
|
676
690
|
|
|
677
691
|
```bash
|
|
678
|
-
|
|
692
|
+
zora 32 --prefix "AUTH_"
|
|
679
693
|
```
|
|
680
694
|
|
|
681
695
|
has the same theoretical entropy as:
|
|
682
696
|
|
|
683
697
|
```bash
|
|
684
|
-
|
|
698
|
+
zora 32
|
|
685
699
|
```
|
|
686
700
|
|
|
687
701
|
assuming the same charset and length.
|
|
@@ -724,103 +738,103 @@ PRNG
|
|
|
724
738
|
### Basic key
|
|
725
739
|
|
|
726
740
|
```bash
|
|
727
|
-
|
|
741
|
+
zora 32
|
|
728
742
|
```
|
|
729
743
|
|
|
730
744
|
### Digits only
|
|
731
745
|
|
|
732
746
|
```bash
|
|
733
|
-
|
|
747
|
+
zora 32 --charset @digits
|
|
734
748
|
```
|
|
735
749
|
|
|
736
750
|
### Lowercase only
|
|
737
751
|
|
|
738
752
|
```bash
|
|
739
|
-
|
|
753
|
+
zora 32 --charset @lower
|
|
740
754
|
```
|
|
741
755
|
|
|
742
756
|
### Uppercase only
|
|
743
757
|
|
|
744
758
|
```bash
|
|
745
|
-
|
|
759
|
+
zora 32 --charset @upper
|
|
746
760
|
```
|
|
747
761
|
|
|
748
762
|
### Alphanumeric
|
|
749
763
|
|
|
750
764
|
```bash
|
|
751
|
-
|
|
765
|
+
zora 32 --charset @letters@digits
|
|
752
766
|
```
|
|
753
767
|
|
|
754
768
|
### Hexadecimal
|
|
755
769
|
|
|
756
770
|
```bash
|
|
757
|
-
|
|
771
|
+
zora 32 --charset @hex
|
|
758
772
|
```
|
|
759
773
|
|
|
760
774
|
### Hexadecimal plus custom characters
|
|
761
775
|
|
|
762
776
|
```bash
|
|
763
|
-
|
|
777
|
+
zora 32 --charset @hexXYZ
|
|
764
778
|
```
|
|
765
779
|
|
|
766
780
|
### Uppercase, lowercase and digits
|
|
767
781
|
|
|
768
782
|
```bash
|
|
769
|
-
|
|
783
|
+
zora 32 --charset @upper@lower@digits
|
|
770
784
|
```
|
|
771
785
|
|
|
772
786
|
### Symbols
|
|
773
787
|
|
|
774
788
|
```bash
|
|
775
|
-
|
|
789
|
+
zora 32 --charset @special
|
|
776
790
|
```
|
|
777
791
|
|
|
778
792
|
### Group the output
|
|
779
793
|
|
|
780
794
|
```bash
|
|
781
|
-
|
|
795
|
+
zora 32 --group 4
|
|
782
796
|
```
|
|
783
797
|
|
|
784
798
|
### Custom separator
|
|
785
799
|
|
|
786
800
|
```bash
|
|
787
|
-
|
|
801
|
+
zora 32 --group 4 --sep ":"
|
|
788
802
|
```
|
|
789
803
|
|
|
790
804
|
### Generate multiple keys
|
|
791
805
|
|
|
792
806
|
```bash
|
|
793
|
-
|
|
807
|
+
zora 32 -n 10
|
|
794
808
|
```
|
|
795
809
|
|
|
796
810
|
### Save to a file
|
|
797
811
|
|
|
798
812
|
```bash
|
|
799
|
-
|
|
813
|
+
zora 32 -n 100 -o keys.txt
|
|
800
814
|
```
|
|
801
815
|
|
|
802
816
|
### Prefix
|
|
803
817
|
|
|
804
818
|
```bash
|
|
805
|
-
|
|
819
|
+
zora 32 --prefix "AUTH_"
|
|
806
820
|
```
|
|
807
821
|
|
|
808
822
|
### Secure generation
|
|
809
823
|
|
|
810
824
|
```bash
|
|
811
|
-
|
|
825
|
+
zora 32
|
|
812
826
|
```
|
|
813
827
|
|
|
814
828
|
### Reproducible testing
|
|
815
829
|
|
|
816
830
|
```bash
|
|
817
|
-
|
|
831
|
+
zora 32 --unsafe --seed test
|
|
818
832
|
```
|
|
819
833
|
|
|
820
834
|
### Quiet output
|
|
821
835
|
|
|
822
836
|
```bash
|
|
823
|
-
|
|
837
|
+
zora 32 --quiet
|
|
824
838
|
```
|
|
825
839
|
|
|
826
840
|
---
|
|
@@ -889,7 +903,7 @@ However, entropy alone does not prove that a generator is secure.
|
|
|
889
903
|
For example:
|
|
890
904
|
|
|
891
905
|
```bash
|
|
892
|
-
|
|
906
|
+
zora 32 --unsafe
|
|
893
907
|
```
|
|
894
908
|
|
|
895
909
|
can still report a high entropy value because the theoretical output
|
|
@@ -924,42 +938,25 @@ pip install -r requirements.txt
|
|
|
924
938
|
Run:
|
|
925
939
|
|
|
926
940
|
```bash
|
|
927
|
-
|
|
941
|
+
zora 32
|
|
928
942
|
```
|
|
929
943
|
|
|
930
944
|
---
|
|
931
945
|
|
|
932
|
-
# Project structure
|
|
933
|
-
|
|
934
|
-
A minimal installation currently looks like:
|
|
935
|
-
|
|
936
|
-
```text
|
|
937
|
-
Zora/
|
|
938
|
-
├── zora.py
|
|
939
|
-
├── zora.jpg
|
|
940
|
-
├── LICENSE
|
|
941
|
-
├── README.md
|
|
942
|
-
└── requirements.txt
|
|
943
|
-
```
|
|
944
|
-
|
|
945
|
-
Future versions may introduce a package structure and automated tests.
|
|
946
|
-
|
|
947
|
-
---
|
|
948
|
-
|
|
949
946
|
# Roadmap
|
|
950
947
|
|
|
951
948
|
Possible future improvements include:
|
|
952
949
|
|
|
950
|
+
* [x] More charset presets
|
|
951
|
+
* [x] Improved documentation
|
|
952
|
+
* [x] Installation through `pip`
|
|
953
|
+
* [x] Packaging with `pyproject.toml`
|
|
953
954
|
* [ ] Automated test suite
|
|
954
|
-
* [ ] More charset presets
|
|
955
955
|
* [ ] Better charset parsing errors
|
|
956
956
|
* [ ] Configuration files
|
|
957
|
-
* [ ] Packaging with `pyproject.toml`
|
|
958
|
-
* [ ] Installation through `pip`
|
|
959
957
|
* [ ] Shell completion
|
|
960
958
|
* [ ] More output formats
|
|
961
959
|
* [ ] Benchmarking mode
|
|
962
|
-
* [ ] Improved documentation
|
|
963
960
|
* [ ] Cross-platform terminal improvements
|
|
964
961
|
* [ ] API/library usage
|
|
965
962
|
* [ ] More extensive security testing
|