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