Commit Graph

91 Commits

Author SHA1 Message Date
Michael Pfaff 43c4eec067
Remove _current methods 2023-05-09 23:59:40 -04:00
Michael Pfaff 542ed7c97f
Allow use without allocation, decouple issuer and account_name from otpauth feature 2023-04-29 13:39:17 -04:00
Cléo REBERT c2ba6d190b
Replace deprecated base64 call
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2023-03-28 10:58:39 +02:00
Cléo REBERT e4e055dedd
5.0
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2023-03-28 10:47:52 +02:00
timvisee 5f676dd3dc
Only add digits and algorithm parameters to URL for non default values 2023-01-14 14:59:25 +01:00
timvisee d2c6ae62d6
Fix unit tests for get_url change 2023-01-14 14:59:25 +01:00
timvisee d866af6b06
Add period to URL if value is not default 2023-01-14 14:59:24 +01:00
timvisee aa719c5d67
Simplify parameter handling in URL generation, fix invalid step in tests 2023-01-14 14:59:24 +01:00
timvisee 1a64130ee9
Decode account name before splitting issuer and account name parts 2023-01-14 13:07:51 +01:00
Cléo REBERT d54bd9e447
chore(FLOW-2123): Add examples
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2023-01-06 14:35:18 +01:00
Cléo REBERT cc1474a7d8
chore(FLOW-2123): Fix tests
Signed-off-by: Cléo REBERT <cleo.rebert-ext@treezor.com>
2023-01-06 11:30:24 +01:00
timvisee 5e61d15432
Do not prefix Steam TOTP account name with Steam 2023-01-05 17:14:06 +01:00
timvisee 068b746a79
Parse otpauth URL with Steam as issuer as Steam TOTP 2023-01-04 16:20:38 +01:00
timvisee c5fd8207fb
Add TOTP::new_steam as custom provider 2023-01-04 13:12:28 +01:00
timvisee 3f7f91299f
Generate proper URLs for Steam algorithm 2023-01-04 13:12:28 +01:00
timvisee a5b97d1f3f
Add Steam algorithm behind 'steam' feature 2023-01-04 13:12:25 +01:00
timvisee d293068353
Add issue and account name colon check back, fix unchecked doctests 2023-01-03 18:04:44 +01:00
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 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 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
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
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
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
Cléo Rebert 26416df28b
Fix totp_url export
* base32 unexported
* Secret comparison is now constant_time
2022-08-13 11:23:03 +02:00
constantoine b6295ae878
Fix doc tests
Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
2022-08-09 11:13:55 +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
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
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
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
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
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
wyhaya 3233669847 Add TOTP::from_url 2022-05-06 20:36:43 +08: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
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 bacf1c4fb4 Switch to qrcodegen, and update image dependency
Signed-off-by: constantoine <cleo.rebert@gmail.com>
2022-05-05 12:00: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
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
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
Cléo Rebert b68dd87ce2 Hash refactor 2022-01-13 21:52:55 +01:00
Cléo Rebert 97695cf26d Updated dependencies, bumped to 2021 edition
- Updated sha2 from a yanked version
- Updated sha-1
- Updated hmac
- Updated byteorder
- Updated base64
2022-01-13 15:55:04 +01:00
Cléo Rebert 981ad64477 Fixed warning about deprecated type alias 2020-11-02 23:21:19 +01:00
evenorog ffe9e4d50f Remove some unnecessary to_vec calls in code 2020-08-09 20:10:44 +02:00
evenorog 61fc895267 Be generic over secret type
Allow to store anything that implement AsRef<[u8]> as secret in TOTP
struct.
2020-08-05 13:24:34 +02:00
Cleo Rebert d7f8790243 Optionnal serde support for smaller builds 2020-07-03 14:34:58 +02:00
Mark Nijboer 2c12f47652 * Changed version to 0.4.0 and updated docs 2020-06-22 16:16:05 +02:00
Mark Nijboer 66ef16fb45 * Added unit tests, replaced String for &str and removed println 2020-06-22 16:09:53 +02:00
Cleo Rebert bb9b5d851c Fixed documentation 2020-06-21 19:08:52 +02:00
hebriel 64faae59f6 Changed a bunch of to_string() to to_owned() 2020-06-21 16:39:00 +02:00
Cléo Rebert 9746793f83
delete test file 2020-06-21 16:03:39 +02:00
Cleo Rebert 32b618c827 Additional feature! 2020-06-21 15:57:16 +02:00
Cleo Rebert bba8e818da Switched from ring to the RustCrypto project 2020-06-16 14:39:08 +02:00
Cleo Rebert 0c19a359c3 Changed dependencies + removed one 2020-04-25 19:20:11 +02:00
Cleo Rebert 9064404264 Implemented serialize and clone fot both TOTP and Algorithm. Only Algorithm is copy 2020-04-14 12:51:44 +02:00
Cleo Rebert c9b81c70c1 Better doc with examples 2020-04-13 22:57:06 +02:00
Cleo Rebert 8a236fbdea fixed typo 2020-04-13 18:09:02 +02:00
Cleo Rebert 7876ca57c7 exported fields to export documentation 2020-04-13 17:59:04 +02:00
Cleo Rebert 6b091b7e08 cargo fmt 2020-04-13 17:02:00 +02:00
Cleo Rebert bf2d753f72 preparations to push to crates.io 2020-04-13 16:59:30 +02:00
Cleo Rebert e4915a6446 Finally, my own library. With a fix on the QR code generation 2020-04-13 16:39:57 +02:00
Cleo Rebert d1e04d7c6e First commit 2020-04-11 21:24:50 +02:00