summaryrefslogtreecommitdiff
path: root/crypto/elliptic_curve_key.cc
blob: 53741d094411f686aec5a531e9c0c0aeac2477cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* Copyright 2023 The ChromiumOS Authors
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#include "crypto/elliptic_curve_key.h"
#include "openssl/ec_key.h"
#include "openssl/mem.h"
#include "openssl/obj_mac.h"

bssl::UniquePtr<EC_KEY> generate_elliptic_curve_key()
{
	bssl::UniquePtr<EC_KEY> key(
		EC_KEY_new_by_curve_name(NID_X9_62_prime256v1));
	if (key == nullptr) {
		return nullptr;
	}

	if (EC_KEY_generate_key(key.get()) != 1) {
		return nullptr;
	}

	return key;
}