about summary refs log tree commit diff
path: root/indieauth/src/pkce.rs
diff options
context:
space:
mode:
authorVika <vika@fireburn.ru>2025-04-09 23:31:02 +0300
committerVika <vika@fireburn.ru>2025-04-09 23:31:57 +0300
commit8826d9446e6c492db2243b9921e59ce496027bef (patch)
tree63738aa9001cb73b11cb0e974e93129bcdf1adbb /indieauth/src/pkce.rs
parent519cadfbb298f50cbf819dde757037ab56e2863e (diff)
downloadkittybox-8826d9446e6c492db2243b9921e59ce496027bef.tar.zst
cargo fmt
Change-Id: I80e81ebba3f0cdf8c094451c9fe3ee4126b8c888
Diffstat (limited to 'indieauth/src/pkce.rs')
-rw-r--r--indieauth/src/pkce.rs27
1 files changed, 15 insertions, 12 deletions
diff --git a/indieauth/src/pkce.rs b/indieauth/src/pkce.rs
index 8dcf9b1..6233016 100644
--- a/indieauth/src/pkce.rs
+++ b/indieauth/src/pkce.rs
@@ -1,6 +1,6 @@
-use serde::{Serialize, Deserialize};
-use sha2::{Sha256, Digest};
 use data_encoding::BASE64URL;
+use serde::{Deserialize, Serialize};
+use sha2::{Digest, Sha256};
 
 /// Methods to use for PKCE challenges.
 #[derive(PartialEq, Eq, Copy, Clone, Debug, Serialize, Deserialize, Default)]
@@ -10,7 +10,7 @@ pub enum PKCEMethod {
     S256,
     /// Plain string by itself. Please don't use this.
     #[serde(rename = "snake_case")]
-    Plain
+    Plain,
 }
 
 impl PKCEMethod {
@@ -18,7 +18,7 @@ impl PKCEMethod {
     pub fn as_str(&self) -> &'static str {
         match self {
             PKCEMethod::S256 => "S256",
-            PKCEMethod::Plain => "plain"
+            PKCEMethod::Plain => "plain",
         }
     }
 }
@@ -57,7 +57,7 @@ impl PKCEVerifier {
     /// Generate a new PKCE string of 128 bytes in length, using
     /// the provided random number generator.
     pub fn from_rng(rng: &mut (impl rand::CryptoRng + rand::Rng)) -> Self {
-        use rand::{Rng, distributions::Alphanumeric};
+        use rand::{distributions::Alphanumeric, Rng};
 
         let bytes = rng
             .sample_iter(&Alphanumeric)
@@ -65,7 +65,6 @@ impl PKCEVerifier {
             .collect::<Vec<u8>>();
         Self(String::from_utf8(bytes).unwrap())
     }
-
 }
 
 /// A PKCE challenge as described in [RFC7636].
@@ -75,7 +74,7 @@ impl PKCEVerifier {
 pub struct PKCEChallenge {
     code_challenge: String,
     #[serde(rename = "code_challenge_method")]
-    method: PKCEMethod
+    method: PKCEMethod,
 }
 
 impl PKCEChallenge {
@@ -92,10 +91,10 @@ impl PKCEChallenge {
                     challenge.retain(|c| c != '=');
 
                     challenge
-                },
+                }
                 PKCEMethod::Plain => code_verifier.to_string(),
             },
-            method
+            method,
         }
     }
 
@@ -130,17 +129,21 @@ impl PKCEChallenge {
 
 #[cfg(test)]
 mod tests {
-    use super::{PKCEMethod, PKCEVerifier, PKCEChallenge};
+    use super::{PKCEChallenge, PKCEMethod, PKCEVerifier};
 
     #[test]
     /// A snapshot test generated using [Aaron Parecki's PKCE
     /// tools](https://example-app.com/pkce) that checks for a
     /// conforming challenge.
     fn test_pkce_challenge_verification() {
-        let verifier = PKCEVerifier("ec03310e4e90f7bc988af05384060c3c1afeae4bb4d0f648c5c06b63".to_owned());
+        let verifier =
+            PKCEVerifier("ec03310e4e90f7bc988af05384060c3c1afeae4bb4d0f648c5c06b63".to_owned());
 
         let challenge = PKCEChallenge::new(&verifier, PKCEMethod::S256);
 
-        assert_eq!(challenge.as_str(), "aB8OG20Rh8UoQ9gFhI0YvPkx4dDW2MBspBKGXL6j6Wg");
+        assert_eq!(
+            challenge.as_str(),
+            "aB8OG20Rh8UoQ9gFhI0YvPkx4dDW2MBspBKGXL6j6Wg"
+        );
     }
 }