Compare commits

...

89 Commits

Author SHA1 Message Date
4df5ce9e9b Update Rust crate clap to 4.5.37
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-19 00:30:49 +00:00
71ae8f2dd8 Update Rust crate clap to 4.5.36
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-12 00:30:07 +00:00
dd548bbee6 Update Rust crate clap to 4.5.35
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-02 00:38:59 +00:00
796b375e7f Update Rust crate totp_rfc6238 to 0.6.1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-30 02:24:15 +00:00
b8dc7b4c1b Update Rust crate clap to 4.5.34
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-29 23:00:41 +00:00
4a511fb265 Update Rust crate base32 to 0.5.1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-29 18:16:52 +00:00
47b20b2b38 Update renovate.json
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-29 17:33:55 +00:00
24f864ef2a Merge pull request 'Update Rust crate clap to v4.5.34' (#40) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #40
2025-03-29 12:53:13 +00:00
b2860f7b12 Update renovate.json
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-29 09:04:24 +00:00
04a82117d9 Update Rust crate clap to v4.5.34
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-03-29 00:33:56 +00:00
83306b0e6b Merge pull request 'Update Rust crate clap to v4.5.33' (#39) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #39
2025-03-28 15:31:37 +00:00
5ea9ca7d46 Update Rust crate clap to v4.5.33
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-03-27 00:26:49 +00:00
fe4f77ed17 Merge pull request 'Update Rust crate clap to v4.5.32' (#38) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #38
2025-03-13 15:31:22 +00:00
bd37d628f2 Update Rust crate clap to v4.5.32
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-03-12 00:23:12 +00:00
e21b95f117 Merge pull request 'Update Rust crate clap to v4.5.27' (#37) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #37
2025-03-11 13:16:31 +00:00
9ccbe5c360 Update Rust crate clap to v4.5.27
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-01-24 00:26:53 +00:00
e003330d0f Merge pull request 'Update Rust crate clap to v4.5.26' (#36) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #36
2025-01-23 20:31:28 +00:00
42e571daae Update Rust crate clap to v4.5.26
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-01-20 00:27:22 +00:00
723a3e6264 Merge pull request 'Update Rust crate clap to v4.5.24' (#35) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #35
2025-01-19 22:12:47 +00:00
bd8a79e7b6 Update Rust crate clap to v4.5.24
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-01-08 00:29:34 +00:00
ab29f00c34 Merge pull request 'Update Rust crate clap to v4.5.23' (#34) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #34
2024-12-16 10:02:14 +00:00
d85b1b0fe5 Update Rust crate clap to v4.5.23
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-12-14 00:08:43 +00:00
2ee01cc620 Merge pull request 'Update Rust crate clap to v4.5.22' (#33) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #33
2024-12-13 19:34:18 +00:00
3bcdb33baf Update Rust crate clap to v4.5.22
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-12-04 00:26:11 +00:00
566194ab0d Merge pull request 'Update Rust crate clap to v4.5.18' (#32) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #32
2024-12-03 20:58:51 +00:00
6b8cff9e6f Update Rust crate clap to v4.5.18
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-09-21 00:34:19 +00:00
7f652fb787 Merge pull request 'Update Rust crate clap to v4.5.17' (#31) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #31
2024-09-17 09:30:24 +00:00
f174c868a4 Update Rust crate clap to v4.5.17
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-09-12 00:35:02 +00:00
7d402cc61f Merge pull request 'Update Rust crate clap to v4.5.9' (#28) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #28
2024-08-22 07:12:30 +00:00
e5c67714d7 Merge pull request 'Update Rust crate base32 to v0.5.1' (#29) from renovate/base32-0.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #29
2024-08-22 07:12:23 +00:00
fefc731d23 Merge pull request 'Update Rust crate totp_rfc6238 to 0.6.0' (#30) from renovate/totp_rfc6238-0.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #30
2024-08-22 07:12:11 +00:00
8dfb87ca13 Update Rust crate totp_rfc6238 to 0.6.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-08-15 15:19:52 +00:00
ce0e88e7a7 Update Rust crate base32 to v0.5.1
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-07-19 00:10:11 +00:00
9cd7e3389a Update Rust crate clap to v4.5.9
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-07-10 00:10:40 +00:00
7d85ccea36 Merge pull request 'Update Rust crate clap to v4.5.8' (#27) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #27
2024-06-29 08:41:30 +00:00
43e6702739 Update Rust crate clap to v4.5.8
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-06-29 00:18:35 +00:00
47120d583b Merge pull request 'Update Rust crate clap to v4.5.7' (#26) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #26
2024-06-18 16:25:00 +00:00
77aedb04c1 Update Rust crate clap to v4.5.7
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-06-16 00:16:19 +00:00
c52be03e6d Merge pull request 'Update Rust crate clap to v4.5.6' (#25) from renovate/clap-4.x-lockfile into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #25
2024-06-15 08:31:09 +00:00
7a4335b2c6 Update Rust crate clap to v4.5.6
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-06-07 00:14:30 +00:00
e80edcdfb3 Update Rust crate base32 to 0.5.0 (#24)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [base32](https://github.com/andreasots/base32) | dependencies | minor | `0.4.0` -> `0.5.0` |

---

### Release Notes

<details>
<summary>andreasots/base32 (base32)</summary>

### [`v0.5.0`](https://github.com/andreasots/base32/compare/v0.4.0...v0.5.0)

[Compare Source](https://github.com/andreasots/base32/compare/v0.4.0...v0.5.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMCIsInVwZGF0ZWRJblZlciI6IjM3LjM2OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #24
2024-05-23 09:34:15 +00:00
0152c8adcb Merge pull request 'Update Rust crate clap to 4.5.4' (#22) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #22
2024-04-05 05:51:53 +00:00
8fc1f4f5e6 Merge pull request 'Update Rust crate totp_rfc6238 to 0.5.3' (#23) from renovate/totp_rfc6238-0.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #23
2024-04-05 05:51:43 +00:00
01cf374b79 Update Rust crate totp_rfc6238 to 0.5.3
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-04-05 00:08:03 +00:00
8ec3401e4f Update Rust crate clap to 4.5.4
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-03-26 00:29:17 +00:00
0745f9236d Merge pull request 'Update Rust crate clap to 4.5.3' (#21) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #21
2024-03-22 10:45:54 +00:00
8c2b462303 Update Rust crate clap to 4.5.3
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-03-16 00:09:59 +00:00
9a1cfb4375 Merge pull request 'Update Rust crate clap to 4.4.0' (#20) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #20
2024-03-15 13:34:43 +00:00
d956fd0f9c Update Rust crate clap to 4.4.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-25 00:43:00 +00:00
9f34f50485 Merge pull request 'Update Rust crate clap to 4.3.19' (#19) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #19
2023-08-05 08:26:12 +00:00
69eab48eb7 Update Rust crate clap to 4.3.19
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-07-22 00:41:06 +00:00
dbcd9db70c Merge pull request 'Update Rust crate clap to 4.3.17' (#18) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #18
2023-07-20 06:57:14 +00:00
f3989f598b Update Rust crate clap to 4.3.17
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-07-20 00:19:33 +00:00
4039f347c1 Merge pull request 'Update Rust crate clap to 4.3.11' (#17) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #17
2023-07-06 17:07:46 +00:00
d4226b9890 Update Rust crate clap to 4.3.11
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-07-06 00:12:24 +00:00
9305b99565 Merge pull request 'Update Rust crate clap to 4.3.10' (#16) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #16
2023-07-04 16:40:44 +00:00
4077c74853 Update Rust crate clap to 4.3.10
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-07-01 00:11:30 +00:00
a13eebbf27 Merge pull request 'Update Rust crate clap to 4.3.5' (#15) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #15
2023-06-21 16:18:27 +00:00
9b08053d82 Update Rust crate clap to 4.3.5
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-06-21 00:18:49 +00:00
2375366d3b Merge pull request 'Update Rust crate clap to 4.3.4' (#14) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #14
2023-06-15 13:30:30 +00:00
11aced0f58 Update Rust crate clap to 4.3.4
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-06-15 00:28:33 +00:00
d6d56be51e Merge pull request 'Update Rust crate clap to 4.3.3' (#13) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #13
2023-06-14 06:41:57 +00:00
1d1fda952c Update Rust crate clap to 4.3.3
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-06-10 00:27:30 +00:00
c433f636e5 Merge pull request 'Update Rust crate clap to 4.3.2' (#12) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #12
2023-06-06 06:34:33 +00:00
7ea8916096 Update Rust crate clap to 4.3.2
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-06-06 00:27:49 +00:00
2241db1fa8 Merge pull request 'Update Rust crate clap to 4.3.0' (#11) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #11
2023-05-23 11:36:43 +00:00
d0be0c3e11 Update Rust crate clap to 4.3.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-05-23 09:52:42 +00:00
d373f95abe Merge pull request 'Update Rust crate clap to 4.2.7' (#10) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #10
2023-05-16 09:56:50 +00:00
3e75ea81d6 Update Rust crate clap to 4.2.7
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-05-16 00:34:57 +00:00
27b6822a9c Merge pull request 'Update Rust crate clap to 4.2.4' (#9) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #9
2023-05-01 08:26:19 +00:00
fde09dd726 Update Rust crate clap to 4.2.5
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-04-28 00:26:17 +00:00
decb99074a Add drone CI pipeline
All checks were successful
continuous-integration/drone Build is passing
2023-03-19 20:45:16 +01:00
20b421a486 Update dependencies to their latest versions 2023-03-19 20:44:29 +01:00
fd2ae7f3e6 Add first unit test 2023-03-19 20:43:39 +01:00
f0bcdced6b Merge pull request 'Update Rust crate clap to 3.2.22' (#5) from renovate/clap-3.x into master
Reviewed-on: #5
2022-10-01 07:45:29 +00:00
fe6e9692a9 Update Rust crate clap to 3.2.22 2022-09-17 00:34:16 +00:00
465ee05148 Merge pull request 'Update Rust crate clap to 3.2.17' (#4) from renovate/clap-3.x into master
Reviewed-on: #4
2022-09-01 07:56:17 +00:00
4d98b16d6a Update Rust crate clap to 3.2.19 2022-09-01 00:27:07 +00:00
25bc57dda5 Merge pull request 'Update Rust crate clap to 3.1.18' (#3) from renovate/clap-3.x into master
Reviewed-on: pierre/TOPT-Generator#3
2022-06-13 12:58:24 +00:00
617d1f4565 Update Rust crate clap to 3.1.18 2022-05-13 00:12:26 +00:00
d4ff309844 Merge pull request 'Update Rust crate clap to 3.1.9' (#2) from renovate/clap-3.x into master
Reviewed-on: pierre/TOPT-Generator#2
2022-04-18 17:18:03 +02:00
drone
a7741a2361 Update Rust crate clap to 3.1.9 2022-04-18 00:17:15 +00:00
d86b0a12a7 Merge pull request 'Configure Renovate' (#1) from renovate/configure into master
Reviewed-on: pierre/TOPT-Generator#1
2022-04-17 17:22:29 +02:00
drone
d09015e37a Add renovate.json 2022-03-23 12:27:51 +00:00
3794c4d175 Add setup instructions 2022-03-21 14:05:34 +01:00
ac9f033656 Add subcommands 2022-03-21 13:56:52 +01:00
5350b380e2 Show code lifetime 2022-03-21 12:24:47 +01:00
84d1a3cc9b Remove useless dependency 2022-03-21 12:09:23 +01:00
96656afdae Managed to generate a first secret 2022-03-21 12:08:58 +01:00
5 changed files with 352 additions and 239 deletions

14
.drone.yml Normal file
View File

@ -0,0 +1,14 @@
---
kind: pipeline
type: docker
name: default
steps:
- name: cargo_check
image: rust
commands:
- rustup component add clippy
- cargo clippy -- -D warnings
- cargo test

466
Cargo.lock generated
View File

@ -1,47 +1,69 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
version = 4
[[package]]
name = "atty"
version = "0.2.14"
name = "anstream"
version = "0.6.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
dependencies = [
"hermit-abi",
"libc",
"winapi",
"anstyle",
"anstyle-parse",
"anstyle-query",
"anstyle-wincon",
"colorchoice",
"utf8parse",
]
[[package]]
name = "autocfg"
version = "1.1.0"
name = "anstyle"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
[[package]]
name = "base64"
version = "0.13.0"
name = "anstyle-parse"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
dependencies = [
"utf8parse",
]
[[package]]
name = "bitflags"
version = "1.3.2"
name = "anstyle-query"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "bumpalo"
version = "3.9.1"
name = "anstyle-wincon"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
dependencies = [
"anstyle",
"windows-sys 0.52.0",
]
[[package]]
name = "cc"
version = "1.0.73"
name = "base32"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
checksum = "022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076"
[[package]]
name = "block-buffer"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
dependencies = [
"generic-array",
]
[[package]]
name = "cfg-if"
@ -51,338 +73,346 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "3.1.6"
version = "4.5.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123"
checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071"
dependencies = [
"atty",
"bitflags",
"clap_builder",
"clap_derive",
"indexmap",
"lazy_static",
"os_str_bytes",
]
[[package]]
name = "clap_builder"
version = "4.5.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2"
dependencies = [
"anstream",
"anstyle",
"clap_lex",
"strsim",
"termcolor",
"textwrap",
]
[[package]]
name = "clap_derive"
version = "3.1.4"
version = "4.5.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16"
checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7"
dependencies = [
"heck",
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "hashbrown"
version = "0.11.2"
name = "clap_lex"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
[[package]]
name = "heck"
version = "0.4.0"
name = "colorchoice"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "hermit-abi"
version = "0.1.19"
name = "cpufeatures"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
dependencies = [
"libc",
]
[[package]]
name = "indexmap"
version = "1.8.0"
name = "crypto-common"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [
"autocfg",
"hashbrown",
"generic-array",
"typenum",
]
[[package]]
name = "js-sys"
version = "0.3.56"
name = "digest"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"wasm-bindgen",
"block-buffer",
"crypto-common",
"subtle",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
name = "generic-array"
version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
]
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hmac"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
"digest",
]
[[package]]
name = "libc"
version = "0.2.121"
version = "0.2.155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
[[package]]
name = "log"
version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
dependencies = [
"cfg-if",
]
[[package]]
name = "memchr"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
[[package]]
name = "once_cell"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
[[package]]
name = "os_str_bytes"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
dependencies = [
"memchr",
]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"syn",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
[[package]]
name = "proc-macro2"
version = "1.0.36"
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
dependencies = [
"unicode-xid",
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.16"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4af2ec4714533fcdf07e886f17025ace8b997b9ce51204ee69b6da831c3da57"
checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ring"
version = "0.16.20"
name = "sha1"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [
"cc",
"libc",
"once_cell",
"spin",
"untrusted",
"web-sys",
"winapi",
"cfg-if",
"cpufeatures",
"digest",
]
[[package]]
name = "spin"
version = "0.5.2"
name = "sha2"
version = "0.10.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
dependencies = [
"cfg-if",
"cpufeatures",
"digest",
]
[[package]]
name = "strsim"
version = "0.10.0"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
[[package]]
name = "subtle"
version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
version = "1.0.89"
version = "2.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54"
checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
"unicode-ident",
]
[[package]]
name = "termcolor"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
dependencies = [
"winapi-util",
]
[[package]]
name = "textwrap"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
[[package]]
name = "totp_generator"
version = "0.1.0"
dependencies = [
"base64",
"base32",
"clap",
"totp_rfc6238",
]
[[package]]
name = "totp_rfc6238"
version = "0.5.0"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e7d63d8bc3098dd14e5f1a107979a38e06b3263f1230a3cd717615fab4e615e"
checksum = "1329a48ffb99a7257f792c0db25d989248c552dc15073dd24ab70752f74c5b1f"
dependencies = [
"ring",
"hmac",
"sha1",
"sha2",
]
[[package]]
name = "unicode-xid"
version = "0.2.2"
name = "typenum"
version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]]
name = "untrusted"
version = "0.7.1"
name = "unicode-ident"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
[[package]]
name = "utf8parse"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "version_check"
version = "0.9.4"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "wasm-bindgen"
version = "0.2.79"
name = "windows-sys"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
"windows-targets 0.48.0",
]
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.79"
name = "windows-sys"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
"bumpalo",
"lazy_static",
"log",
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-shared",
"windows-targets 0.52.4",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.79"
name = "windows-targets"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01"
checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
"windows_aarch64_gnullvm 0.48.0",
"windows_aarch64_msvc 0.48.0",
"windows_i686_gnu 0.48.0",
"windows_i686_msvc 0.48.0",
"windows_x86_64_gnu 0.48.0",
"windows_x86_64_gnullvm 0.48.0",
"windows_x86_64_msvc 0.48.0",
]
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.79"
name = "windows-targets"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc"
checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
dependencies = [
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
"windows_aarch64_gnullvm 0.52.4",
"windows_aarch64_msvc 0.52.4",
"windows_i686_gnu 0.52.4",
"windows_i686_msvc 0.52.4",
"windows_x86_64_gnu 0.52.4",
"windows_x86_64_gnullvm 0.52.4",
"windows_x86_64_msvc 0.52.4",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.79"
name = "windows_aarch64_gnullvm"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2"
checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
[[package]]
name = "web-sys"
version = "0.3.56"
name = "windows_aarch64_gnullvm"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb"
dependencies = [
"js-sys",
"wasm-bindgen",
]
checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
[[package]]
name = "winapi"
version = "0.3.9"
name = "windows_aarch64_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
name = "windows_aarch64_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
[[package]]
name = "winapi-util"
version = "0.1.5"
name = "windows_i686_gnu"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
"winapi",
]
checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
name = "windows_i686_gnu"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
[[package]]
name = "windows_i686_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
[[package]]
name = "windows_i686_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"

View File

@ -6,6 +6,6 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
totp_rfc6238 = "0.5.0"
base64 = "0.13.0"
clap = { version = "3.1.6", features = ["derive"] }
totp_rfc6238 = "0.6.1"
base32 = "0.5.1"
clap = { version = "4.5.37", features = ["derive"] }

3
renovate.json Normal file
View File

@ -0,0 +1,3 @@
{
"extends": ["local>renovate/presets"]
}

View File

@ -1,34 +1,100 @@
use clap::Parser;
use std::time::{SystemTime, UNIX_EPOCH};
use base32::Alphabet;
use clap::{Parser, Subcommand};
use totp_rfc6238::{HashAlgorithm, TotpGenerator};
/// Get the current time since epoch
pub fn time() -> u64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_secs()
}
/// TOTP - One Time Password generator
#[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)]
struct Args {
/// The secret to use
#[clap(short, long)]
secret: String,
#[clap(subcommand)]
command: SubCommands,
}
/// Interval between two numbers generation
#[clap(short, long, default_value_t = 30)]
topt_step: u64,
#[derive(Subcommand, Debug)]
enum SubCommands {
/// Setup configuration
Setup,
/// Size of generated secret
#[clap(short, long, default_value_t = 6)]
len: usize,
/// Get a TOTP code
#[clap(arg_required_else_help = true)]
Code {
/// The secret to use
#[clap(short, long)]
secret: String,
/// Interval between two numbers generation
#[clap(short, long, default_value_t = 30)]
topt_step: u64,
/// Size of generated secret
#[clap(short, long, default_value_t = 6)]
len: usize,
},
}
fn main() {
let args: Args = Args::parse();
let totp_generator = TotpGenerator::new()
.set_digit(args.len).unwrap()
.set_step(args.topt_step).unwrap()
.set_hash_algorithm(HashAlgorithm::SHA1)
.build();
match args.command {
SubCommands::Setup => {
println!("To configure TOPT :");
println!("1. Please open https://mysignins.microsoft.com/security-info");
println!("2. Click on \"Add method\"");
println!(
"3. On the popup that appears, choose \"Authenticator app\" and click \"Add\"."
);
println!(
"4. Click on \"I want to use a different authenticator app\" and click \"Next\""
);
println!("5. Click on \"Can't save image ?\" and copy the \"Secret key\"");
println!(
"6. Re-run this program running {} code --secret <SECRET>",
std::env::args().next().unwrap()
);
println!("7. Back on the browser, click Next and paste copied code");
}
let key = base64::decode(args.secret).unwrap();
let code = totp_generator.get_code(&key);
SubCommands::Code {
secret,
topt_step,
len,
} => {
let totp_generator = TotpGenerator::new()
.set_digit(len)
.unwrap()
.set_step(topt_step)
.unwrap()
.set_hash_algorithm(HashAlgorithm::SHA1)
.build();
println!("Secret len = {}", code);
let key = base32::decode(Alphabet::Rfc4648 { padding: true }, &secret).unwrap();
let code = totp_generator.get_code(&key);
let next_update = totp_generator.get_next_update_time().unwrap();
println!("Secret = {}", code);
println!("Next update = {} seconds", next_update - time());
}
}
}
#[cfg(test)]
mod test {
use crate::Args;
#[test]
fn verify_cli() {
use clap::CommandFactory;
Args::command().debug_assert()
}
}