class WebAuthn::AttestationStatement::FidoU2f::PublicKey

def self.uncompressed_point?(data)

def self.uncompressed_point?(data)
  data.size &&
    data.length == UNCOMPRESSED_FORM_INDICATOR.length + COORDINATE_LENGTH * 2 &&
    data[0] == UNCOMPRESSED_FORM_INDICATOR
end

def cose_key

def cose_key
  @cose_key ||= COSE::Key::EC2.deserialize(data)
end

def initialize(data)

def initialize(data)
  @data = data
end

def to_uncompressed_point

def to_uncompressed_point
  UNCOMPRESSED_FORM_INDICATOR + cose_key.x + cose_key.y
end

def valid?

def valid?
  data.size >= COORDINATE_LENGTH * 2 &&
    cose_key.x.length == COORDINATE_LENGTH &&
    cose_key.y.length == COORDINATE_LENGTH &&
    cose_key.alg == COSE::Algorithm.by_name("ES256").id
end