encode paseto payloads as json (#1146)
This commit is contained in:
parent
1013246eda
commit
af14366a2e
1 changed files with 11 additions and 2 deletions
|
@ -72,7 +72,10 @@ impl Encryption for PASETO_V4 {
|
||||||
let assertions = Assertions::from(ad).encode();
|
let assertions = Assertions::from(ad).encode();
|
||||||
|
|
||||||
// build the payload and encrypt the token
|
// build the payload and encrypt the token
|
||||||
let payload = general_purpose::URL_SAFE_NO_PAD.encode(data.0);
|
let payload = serde_json::to_string(&AtuinPayload {
|
||||||
|
data: general_purpose::URL_SAFE_NO_PAD.encode(data.0),
|
||||||
|
})
|
||||||
|
.expect("json encoding can't fail");
|
||||||
let nonce = DataKey::<32>::try_new_random().expect("could not source from random");
|
let nonce = DataKey::<32>::try_new_random().expect("could not source from random");
|
||||||
let nonce = PasetoNonce::<V4, LocalPurpose>::from(&nonce);
|
let nonce = PasetoNonce::<V4, LocalPurpose>::from(&nonce);
|
||||||
|
|
||||||
|
@ -104,7 +107,8 @@ impl Encryption for PASETO_V4 {
|
||||||
)
|
)
|
||||||
.context("could not decrypt entry")?;
|
.context("could not decrypt entry")?;
|
||||||
|
|
||||||
let data = general_purpose::URL_SAFE_NO_PAD.decode(payload)?;
|
let payload: AtuinPayload = serde_json::from_str(&payload)?;
|
||||||
|
let data = general_purpose::URL_SAFE_NO_PAD.decode(payload.data)?;
|
||||||
Ok(DecryptedData(data))
|
Ok(DecryptedData(data))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,6 +150,11 @@ impl PASETO_V4 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize)]
|
||||||
|
struct AtuinPayload {
|
||||||
|
data: String,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
/// Well-known footer claims for decrypting. This is not encrypted but is stored in the record.
|
/// Well-known footer claims for decrypting. This is not encrypted but is stored in the record.
|
||||||
/// <https://github.com/paseto-standard/paseto-spec/blob/master/docs/02-Implementation-Guide/04-Claims.md#optional-footer-claims>
|
/// <https://github.com/paseto-standard/paseto-spec/blob/master/docs/02-Implementation-Guide/04-Claims.md#optional-footer-claims>
|
||||||
|
|
Loading…
Reference in a new issue