class WebAuthn::FakeAuthenticator::AuthenticatorData

def cose_credential_public_key

def cose_credential_public_key
  case credential[:public_key]
  when OpenSSL::PKey::RSA
    key = COSE::Key::RSA.from_pkey(credential[:public_key])
    key.alg = -257
  when OpenSSL::PKey::EC::Point
    alg = {
      COSE::Key::Curve.by_name("P-256").id => -7,
      COSE::Key::Curve.by_name("P-384").id => -35,
      COSE::Key::Curve.by_name("P-521").id => -36
    }
    key = COSE::Key::EC2.from_pkey(credential[:public_key])
    key.alg = alg[key.crv]
  when OpenSSL::PKey::PKey
    key = COSE::Key::OKP.from_pkey(credential[:public_key])
    key.alg = -8
  end
  key.serialize
end