UNPKG

pooja-docucomb-tink-crypto

Version:

A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

45 lines (39 loc) 1.27 kB
/** * @license * Copyright 2022 Google LLC * SPDX-License-Identifier: Apache-2.0 */ /** * @fileoverview A set of helper functions to deal with deltas between the 1P * and 3P proto APIs. * * This is the open source version. */ import {fromBase64} from '../subtle/bytes'; /** Transforms the bytes field value to a Uint8Array. */ export function bytesAsU8(b: string|Uint8Array): Uint8Array; export function bytesAsU8(b: string|Uint8Array|undefined): Uint8Array|undefined; export function bytesAsU8(b: string|Uint8Array|undefined): Uint8Array| undefined { if (b == null) { return undefined; } if (typeof b === 'string') { return fromBase64(b, true); } return b as Uint8Array; } /** Returns the length of the bytes field. */ export function bytesLength(b: string|Uint8Array): number; export function bytesLength(b: string|Uint8Array|undefined): number|undefined; export function bytesLength(b: string|Uint8Array|undefined): number|undefined { if (b == null) { return undefined; } if (typeof b === 'string') { return fromBase64(b, true).length; } return (b as Uint8Array).length; } /** A type union representing a serialized proto */ export type ProtoBytes = string|Uint8Array;