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