Commit Graph

163 Commits

Author SHA1 Message Date
timvisee 39e0d16d5b
Add TOTP::from_url_unchecked variant with uses TOTP::new_unchecked 2023-01-03 11:58:59 +01:00
timvisee 505569fa22
Remove issuer and account name colon check in TOTP::new method 2023-01-03 11:52:43 +01:00
timvisee 6bdbd5912f
Add TOTP::new_unchecked methods 2023-01-03 11:49:10 +01:00
Cléo REBERT d460bd229d
Fix CHANGELOG.md
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2022-12-29 15:09:20 +01:00
Cléo REBERT 3013f916c4
Updated CHANGELOG.md
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2022-12-29 15:03:30 +01:00
Cléo REBERT 8b5f5c5019
Add CHANGELOG.md
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2022-12-29 14:36:22 +01:00
Cléo REBERT 4a8b2552c7
Add CHANGELOG.md
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2022-12-29 14:35:06 +01:00
Cléo REBERT b58a666af9
Bump version to 4.0
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2022-12-29 14:16:19 +01:00
Cléo Rebert cf017a9b67
Zeroize secret 2022-12-22 17:06:52 +01:00
Cléo Rebert cf6029aaf3
Drop generic support 2022-12-22 16:53:41 +01:00
Cléo Rebert 608b6f2896
Merge pull request #40 from tmpfs/zeroize
Support zeroize feature.
2022-12-22 16:40:19 +01:00
constantoine 3f4e1d336a Merge branch 'master' of github.com:constantoine/totp-rs 2022-11-03 10:29:19 +01:00
constantoine d5468ef00f Bump version to 3.1.0
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-11-03 10:28:03 +01:00
Cléo Rebert 45dfa56eb5
Merge pull request #42 from constantoine/better_error_handling
Better error handling
2022-11-03 10:06:55 +01:00
constantoine fb9ada36c2
cargo fmt
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-11-02 11:33:26 +01:00
constantoine d901803ce5
Better error handling
-Implement Display for TOTP
-Make get_qr() Error type be a string

Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-11-02 11:32:10 +01:00
constantoine d241e00fcf
Implement std::error::Error for totp-rs error types
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-11-02 11:29:04 +01:00
muji 28ebb0e97c
Support zeroize feature. 2022-11-02 11:14:18 +08:00
Cléo Rebert c36b3a9507
Merge pull request #39 from constantoine/add_test_coverage
Add coverage for rfc.rs
2022-10-10 11:20:01 +02:00
constantoine 0f917c4aac
Fix warning
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-10 11:15:57 +02:00
constantoine 0131d7e077
Cargo fmt
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-10 11:12:44 +02:00
constantoine 60514fde9a
Add tests
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-10 11:08:40 +02:00
constantoine 9a202c20ec
Fix coverage for secret.rs
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-10 10:34:52 +02:00
constantoine b308f7455d
Add tests for secret.rs
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-10 10:22:52 +02:00
constantoine 3f39b3a1ba
Add coverage for rfc.rs
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-05 17:32:31 +02:00
Cléo Rebert d68f1608db
Merge pull request #38 from constantoine/better_style
Fix clippy warnings
2022-10-05 12:03:21 +02:00
constantoine 0f0e7d6032
Cargo fmt
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-05 11:55:37 +02:00
constantoine 4d9e41ee68
Fix clippy warnings
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-05 11:45:21 +02:00
Cléo Rebert fd1ee7f517
Merge pull request #34 from alexanderkjall/replace-sha-1-with-sha1
replace the sha-1 crate with sha1
2022-10-05 11:27:22 +02:00
Cléo Rebert 48fe98c0dd Merge branch 'replace-sha-1-with-sha1' of github.com:alexanderkjall/totp-rs into replace-sha-1-with-sha1 2022-10-05 11:22:21 +02:00
Alexander Kjäll 27a27d8002 replace the sha-1 crate with sha1, as RustCrypto have migrated to the new crate name, ref https://github.com/RustCrypto/hashes#crate-names 2022-10-05 11:21:56 +02:00
Cléo Rebert fd52f4a6c5
Merge pull request #37 from constantoine/raw_canvas
Fix QR unit tests
2022-10-05 11:17:25 +02:00
constantoine edf3db0263
Add raw canvas private method in order to test the canvas raw data, and not the encoded png data
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-10-04 16:41:50 +02:00
Alexander Kjäll a9ebfdc6e6
replace the sha-1 crate with sha1, as RustCrypto have migrated to the new crate name, ref https://github.com/RustCrypto/hashes#crate-names 2022-10-01 16:54:01 +02:00
Cléo Rebert d0b60892b2
Merge pull request #32 from constantoine/coverage
Changed coverage tools to better represent coverage
2022-08-26 10:49:48 +02:00
constantoine ec0e7f3625
Fix rust.yml
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-26 10:44:46 +02:00
constantoine 28d72bc368
Download grcov instead of recompiling
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-26 10:41:36 +02:00
constantoine 03188bfd5b
Changed coverage tools to better represent coverage
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-26 10:33:14 +02:00
Cléo Rebert fcd90cf76f
Merge pull request #31 from constantoine/constantoine-patch-1
Update tarpaulin version
2022-08-26 10:02:42 +02:00
Cléo Rebert 65214998e9
Update tarpaulin version
Tarpaulin is the tool used for coverage
2022-08-26 09:58:28 +02:00
Cléo Rebert 2807545153
Merge pull request #30 from Dev380/patch-1
Fixed spelling in README.md
2022-08-26 09:55:05 +02:00
Dev380 6498e55208
Fixed spelling in README.md
It should be "summary" not "summarry"
2022-08-25 23:47:41 +00:00
Cléo Rebert 26416df28b
Fix totp_url export
* base32 unexported
* Secret comparison is now constant_time
2022-08-13 11:23:03 +02:00
Cléo Rebert 5abd752db8
Merge pull request #28 from constantoine/refinement
Make otpauth fields optionnal
2022-08-09 11:22:36 +02:00
constantoine b6295ae878
Fix doc tests
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-09 11:13:55 +02:00
Cléo Rebert 7a3967f9a9
Fix Workflow 2022-08-09 11:09:46 +02:00
constantoine 537350ad8b
Prepare for release and update Workflow
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-09 11:06:25 +02:00
constantoine 994efb7214
Updated README and added a summary with updated examples
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-09 11:06:07 +02:00
constantoine cd903afbd7
Make otpauth fields only appear with otpauth feature
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-09 11:05:36 +02:00
constantoine 0103e7a6e5
Add test to secret.rs
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-09 11:04:11 +02:00
Cléo Rebert 6b9f13f6a2
Merge pull request #25 from steven89/secret
Improve secret handling
2022-08-08 20:54:16 +02:00
Steven Salaun 991a07bb8f fix doc example 2022-08-08 20:50:09 +02:00
Steven Salaun ab7bde0866
Merge branch 'master' into secret 2022-08-08 20:28:51 +02:00
Cléo Rebert 2207859e2c
Merge pull request #27 from constantoine/error_handling
Refactor error handling
2022-08-08 20:26:55 +02:00
constantoine e5f152210a
test formatter
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-08 20:23:24 +02:00
Steven Salaun 584b7aa8a7 Merge branch 'secret' of github.com:steven89/totp-rs into secret 2022-08-08 20:19:07 +02:00
Steven Salaun 3d61027d52 Change Secret: Plain to Raw & Base32 to Encoded 2022-08-08 20:19:04 +02:00
Steven Salaun ba130aaafc
Merge branch 'master' into secret 2022-08-08 20:15:31 +02:00
constantoine 8e890ac14d
Refactor error handling
Closes #23

Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-08 19:52:54 +02:00
Cléo Rebert 2cb5ec2b7a
Merge pull request #26 from steven89/rfc
Rfc6238 struct
2022-08-08 17:56:32 +02:00
Steven Salaun fe2363c77b TOTP::new checks digits value compliance to rfc 2022-08-08 17:30:27 +02:00
Steven Salaun eb9b04433f fix build for serde_support feature 2022-08-08 14:17:23 +02:00
Steven Salaun fcfebe1417 clippy 2022-08-08 14:10:39 +02:00
Cléo Rebert f3719db878
Merge pull request #24 from steven89/ttl
add `ttl` to TOTP
2022-08-08 11:44:21 +02:00
Steven Salaun f65a2e840a add `Secret` enum & `gen_secret` feature
- Make the distinction between encoded/non-encoded secret clear,
and allows for easy transformation betwen the two formats
- add `gen_secret` feature to allow easy generation of CSPRNG secret,
also add function to generate rfc recommended length secret
2022-08-06 23:04:50 +02:00
Steven Salaun 3bdb91fad7 clarifies doc for `secret`: should be non-encoded 2022-08-06 22:58:57 +02:00
Steven Salaun 40196c5ed9 add `ttl` to TOTP 2022-08-06 17:49:40 +02:00
Steven Salaun 6623af9d3e Rfc6238 struct 2022-08-06 17:31:11 +02:00
Cléo Rebert 181d17edcc
Merge pull request #22 from constantoine/21-bug-issuer-error
Fix url related bugs
2022-06-16 11:56:00 +02:00
constantoine 263299be14
Fix url related bugs
* Bug where your issuer would be incorrectly prefixed with a /, and comparison with the issuer parameter would fail
* Bug where the issuer and account name in path would not be correctly url decoded in path, but correctly decoded in url query

Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-06-16 11:48:34 +02:00
Cléo Rebert e8ba6fe083
Merge pull request #20 from constantoine/v2
V2
2022-05-30 21:59:27 +02:00
constantoine 4f32055d8b
Add next_step and next_step_current methods
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-05-20 17:43:39 +02:00
constantoine ff6f562ab7
The return of otpauth
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-20 15:00:12 +02:00
Cléo Rebert eba97c0ffa
Finish work on v2
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-15 13:41:19 +02:00
constantoine d6d08b1a1e
Start working on v2
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-13 14:06:25 +02:00
constantoine a3b51eea3d
Update version
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-06 15:42:55 +02:00
constantoine 1010772cfb
Update license
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-06 15:41:47 +02:00
Cléo Rebert 49f672d4a3
Merge pull request #19 from wyhaya/master
Add TOTP::from_url
2022-05-06 15:33:51 +02:00
wyhaya 905a119c10 Update README 2022-05-06 20:49:33 +08:00
wyhaya 3233669847 Add TOTP::from_url 2022-05-06 20:36:43 +08:00
Cléo Rebert 733c27970e
Merge pull request #18 from constantoine/add_tests
Add tests for generate_current and check_current
2022-05-06 12:46:00 +02:00
constantoine 6c19202404
Add tests for generate_current and check_current
Also updated docs to reflect those changes

Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-06 12:41:30 +02:00
Cléo Rebert 2c75d046ec
Merge pull request #17 from wyhaya/master
Support generating and checking token from the current system time
2022-05-06 12:10:45 +02:00
wyhaya 1e54605808 Add check_current 2022-05-06 17:55:31 +08:00
wyhaya d54f86592c Support generate token from the current time 2022-05-06 17:35:49 +08:00
constantoine 64225f5acd
Disable image default features
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-05 12:48:52 +02:00
Cléo Rebert 1f10c8c738
Merge pull request #16 from constantoine/change_qr_lib
Switch to qrcodegen, and update image dependency
2022-05-05 12:10:13 +02:00
constantoine 9b541817a3
Up version
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-05 12:03:41 +02:00
constantoine bacf1c4fb4 Switch to qrcodegen, and update image dependency
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-05 12:00:30 +02:00
Cléo Rebert 7ecdf7d440
Merge pull request #15 from constantoine/constant_time_eq
Add constant-time token comparison and partialEq trait
2022-04-24 16:48:30 +02:00
Cleo Rebert 1f1e1a6fe7 Add constant-time token comparison and partialEq trait
Add PartialEq for TOTP<T> and PartialEq+Eq for Algorithm
2022-04-24 16:41:56 +02:00
constantoine ba925c2442
Update to 1.0
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-04-15 15:08:41 +02:00
Cléo Rebert 0f245d26cc
Merge pull request #12 from ironhaven/patch-1
Use last byte of HMAC output for truncating
2022-04-08 20:31:05 +02:00
ironhaven c30d02b512
Use last byte of HMAC output for truncating
This is to use the least significant byte of the HMAC regardless of size. RFC 6328 (TOTP) Section 1.2 says you can use SHA-1 SHA-256 or SHA-512 with the same algorithm of RFC 4226 (HTOP). This seems ok until you realize that all the new HMACs have different output sizes and HTOP only expects a 20 byte fixed MAC. It is not completely clear if RFC 4226 Section 5.3 means "get the bottom 4 bits from byte at offset 19" or "get the 4 least significant bits". Other implementations (6568c1a83a/src/pyotp/otp.py (L28)) and Wikipedia read the "Dynamic Truncation" algorithm to be the last 4 bits of the MAC, so I think this implementation should follow the others.
2022-03-07 23:10:31 -06:00
constantoine d1d6fc0411 Bump version 2022-02-10 11:25:41 +01:00
Cléo Rebert 4ef27bd616
Merge pull request #11 from tmpfs/doc-comment-warning
Warn about silent fallback to SHA1
2022-02-10 10:37:40 +01:00
Cléo Rebert 8db59df6c8
Update README.md 2022-02-10 10:34:28 +01:00
muji 9888507d16
Add notes to doc comments. 2022-02-10 17:00:33 +08:00
constantoine 4b486b5aa6 Removed byteorder dependency 2022-01-20 17:58:27 +01:00
constantoine 2ed419a83e Merge branch 'master' of github.com:constantoine/totp-rs 2022-01-13 22:04:34 +01:00