use serde::{Deserialize, Serialize};
use jose_b64::serde::{Bytes, Secret};
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Ec {
pub crv: EcCurves,
pub x: Bytes,
pub y: Bytes,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub d: Option<Secret>,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[non_exhaustive]
pub enum EcCurves {
#[serde(rename = "P-256")]
P256,
#[serde(rename = "P-384")]
P384,
#[serde(rename = "P-521")]
P521,
#[serde(rename = "secp256k1")]
P256K,
}