CCF
Loading...
Searching...
No Matches
key_wrap.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
7
8#include <cstddef>
9#include <cstdint>
10#include <vector>
11
12namespace ccf::crypto
13{
19 std::vector<uint8_t> ckm_rsa_pkcs_oaep_wrap(
20 RSAPublicKeyPtr wrapping_key,
21 const std::vector<uint8_t>& unwrapped,
22 const std::optional<std::vector<uint8_t>>& label = {});
23
29 std::vector<uint8_t> ckm_rsa_pkcs_oaep_wrap(
30 const Pem& wrapping_key,
31 const std::vector<uint8_t>& unwrapped,
32 const std::optional<std::vector<uint8_t>>& label = {});
33
39 std::vector<uint8_t> ckm_rsa_pkcs_oaep_unwrap(
40 RSAKeyPairPtr wrapping_key,
41 const std::vector<uint8_t>& wrapped,
42 const std::optional<std::vector<uint8_t>>& label = {});
43
49 std::vector<uint8_t> ckm_rsa_pkcs_oaep_unwrap(
50 const Pem& wrapping_key,
51 const std::vector<uint8_t>& wrapped,
52 const std::optional<std::vector<uint8_t>>& label = {});
53
58 std::vector<uint8_t> ckm_aes_key_wrap_pad(
59 const std::vector<uint8_t>& wrapping_key,
60 const std::vector<uint8_t>& unwrapped);
61
66 std::vector<uint8_t> ckm_aes_key_unwrap_pad(
67 const std::vector<uint8_t>& wrapping_key,
68 const std::vector<uint8_t>& wrapped);
69
76 std::vector<uint8_t> ckm_rsa_aes_key_wrap(
77 size_t aes_key_size,
78 RSAPublicKeyPtr wrapping_key,
79 const std::vector<uint8_t>& unwrapped,
80 const std::optional<std::vector<uint8_t>>& label = {});
81
88 std::vector<uint8_t> ckm_rsa_aes_key_wrap(
89 size_t aes_key_size,
90 const Pem& wrapping_key,
91 const std::vector<uint8_t>& unwrapped,
92 const std::optional<std::vector<uint8_t>>& label = {});
93
99 std::vector<uint8_t> ckm_rsa_aes_key_unwrap(
100 RSAKeyPairPtr wrapping_key,
101 const std::vector<uint8_t>& wrapped,
102 const std::optional<std::vector<uint8_t>>& label = {});
103
109 std::vector<uint8_t> ckm_rsa_aes_key_unwrap(
110 const Pem& wrapping_key,
111 const std::vector<uint8_t>& wrapped,
112 const std::optional<std::vector<uint8_t>>& label = {});
113}
Definition base64.h:10
std::vector< uint8_t > ckm_rsa_aes_key_wrap(size_t aes_key_size, RSAPublicKeyPtr wrapping_key, const std::vector< uint8_t > &unwrapped, const std::optional< std::vector< uint8_t > > &label={})
Definition key_wrap.cpp:80
std::vector< uint8_t > ckm_rsa_pkcs_oaep_unwrap(RSAKeyPairPtr wrapping_key, const std::vector< uint8_t > &wrapped, const std::optional< std::vector< uint8_t > > &label={})
Definition key_wrap.cpp:39
std::vector< uint8_t > ckm_aes_key_unwrap_pad(const std::vector< uint8_t > &wrapping_key, const std::vector< uint8_t > &wrapped)
Definition key_wrap.cpp:64
std::vector< uint8_t > ckm_rsa_aes_key_unwrap(RSAKeyPairPtr wrapping_key, const std::vector< uint8_t > &wrapped, const std::optional< std::vector< uint8_t > > &label={})
Definition key_wrap.cpp:127
std::vector< uint8_t > ckm_aes_key_wrap_pad(const std::vector< uint8_t > &wrapping_key, const std::vector< uint8_t > &unwrapped)
Definition key_wrap.cpp:56
std::shared_ptr< RSAKeyPair > RSAKeyPairPtr
Definition rsa_key_pair.h:90
std::shared_ptr< RSAPublicKey > RSAPublicKeyPtr
Definition rsa_key_pair.h:89
std::vector< uint8_t > ckm_rsa_pkcs_oaep_wrap(RSAPublicKeyPtr wrapping_key, const std::vector< uint8_t > &unwrapped, const std::optional< std::vector< uint8_t > > &label={})
Definition key_wrap.cpp:22