From c65b7fde1b92fc7227e530fe38647376938edebd Mon Sep 17 00:00:00 2001 From: jsing <> Date: Wed, 15 Dec 2021 17:30:20 +0000 Subject: Provide CBS_get_u64(). This will be used in the libcrypto certificate transparency code. ok tb@ --- src/lib/libssl/bs_cbs.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/lib/libssl/bs_cbs.c') diff --git a/src/lib/libssl/bs_cbs.c b/src/lib/libssl/bs_cbs.c index 627c609bb9..97b0163f3f 100644 --- a/src/lib/libssl/bs_cbs.c +++ b/src/lib/libssl/bs_cbs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bs_cbs.c,v 1.22 2021/12/15 17:23:34 jsing Exp $ */ +/* $OpenBSD: bs_cbs.c,v 1.23 2021/12/15 17:30:20 jsing Exp $ */ /* * Copyright (c) 2014, Google Inc. * @@ -190,6 +190,23 @@ CBS_get_u32(CBS *cbs, uint32_t *out) return cbs_get_u(cbs, out, 4); } +int +CBS_get_u64(CBS *cbs, uint64_t *out) +{ + uint32_t a, b; + + if (cbs->len < 8) + return 0; + + if (!CBS_get_u32(cbs, &a)) + return 0; + if (!CBS_get_u32(cbs, &b)) + return 0; + + *out = (uint64_t)a << 32 | b; + return 1; +} + int CBS_get_last_u8(CBS *cbs, uint8_t *out) { -- cgit v1.2.3-55-g6feb