fn try_from()

in akd_client/src/ecvrf.rs [202:223]


    fn try_from(bytes: &[u8]) -> Result<Proof, Self::Error> {
        let mut c_buf = [0u8; 32];
        c_buf[..16].copy_from_slice(&bytes[32..48]);
        let mut s_buf = [0u8; 32];
        s_buf.copy_from_slice(&bytes[48..]);

        let pk_point = match CompressedEdwardsY::from_slice(&bytes[..32]).decompress() {
            Some(pt) => pt,
            None => {
                return Err(VerificationError::build(
                    Some(VerificationErrorType::Vrf),
                    Some("Failed to decompress public key into Edwards point".to_string()),
                ))
            }
        };

        Ok(Proof {
            gamma: pk_point,
            c: ed25519_Scalar::from_bits(c_buf),
            s: ed25519_Scalar::from_bits(s_buf),
        })
    }