#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "device/fido/p256_public_key.h"
#include <utility>
#include "base/memory/raw_ptr_exclusion.h"
#include "components/cbor/writer.h"
#include "components/device_event_log/device_event_log.h"
#include "device/fido/cbor_extract.h"
#include "device/fido/fido_constants.h"
#include "device/fido/public_key.h"
#include "third_party/boringssl/src/include/openssl/bn.h"
#include "third_party/boringssl/src/include/openssl/bytestring.h"
#include "third_party/boringssl/src/include/openssl/ec.h"
#include "third_party/boringssl/src/include/openssl/evp.h"
#include "third_party/boringssl/src/include/openssl/mem.h"
#include "third_party/boringssl/src/include/openssl/obj.h"
IntKey;
Is;
StepOrByte;
Stop;
namespace device {
constexpr size_t kFieldElementLength = …;
constexpr size_t kUncompressedPointLength = …;
namespace {
static std::vector<uint8_t> DERFromEC_POINT(const EC_POINT* point) { … }
}
std::unique_ptr<PublicKey> P256PublicKey::ExtractFromU2fRegistrationResponse(
int32_t algorithm,
base::span<const uint8_t> u2f_data) { … }
std::unique_ptr<PublicKey> P256PublicKey::ExtractFromCOSEKey(
int32_t algorithm,
base::span<const uint8_t> cbor_bytes,
const cbor::Value::MapValue& map) { … }
std::unique_ptr<PublicKey> P256PublicKey::ParseX962Uncompressed(
int32_t algorithm,
base::span<const uint8_t> x962) { … }
std::unique_ptr<PublicKey> P256PublicKey::ParseSpkiDer(
int32_t algorithm,
base::span<const uint8_t> spki_der) { … }
}