From d3515e8cbf82039076ec89e89eeba2c4afc87d4a Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Sun, 14 May 2017 21:56:19 -0700 Subject: [PATCH] Add test that decompressing an invalid point with serde fails --- src/curve.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/curve.rs b/src/curve.rs index d191a0f..67f569f 100644 --- a/src/curve.rs +++ b/src/curve.rs @@ -1643,19 +1643,16 @@ mod test { assert_eq!(parsed.compress_edwards(), constants::BASE_CMPRSSD); } - /* - use serde_json; - #[test] - fn serde_json_basepoint_roundtrip() { - let output = serde_json::to_string(&constants::ED25519_BASEPOINT).unwrap(); - println!("{:?}", output); - println!("{:?}", constants::BASE_CMPRSSD); - let parsed: ExtendedPoint = serde_json::from_str(&output).unwrap(); - println!("{:?}", parsed); - panic!(); + #[cfg(feature = "serde")] + fn serde_cbor_decode_invalid_fails() { + let mut output = serde_cbor::to_vec(&constants::ED25519_BASEPOINT).unwrap(); + // CBOR apparently has two bytes of overhead for a 32-byte string. + // Set the low byte of the compressed point to 1 to make it invalid. + output[2] = 1; + let parsed: Result = serde_cbor::from_slice(&output); + assert!(parsed.is_err()); } - */ } // ------------------------------------------------------------------------