aboutsummaryrefslogtreecommitdiff
path: root/cc/secret_key_access_token.h
diff options
context:
space:
mode:
authorwconner <wconner@google.com>2022-05-27 08:34:30 -0700
committerCopybara-Service <copybara-worker@google.com>2022-05-27 08:35:22 -0700
commit83428a56eaafbc33fdb97bd6f382d1ed39ad9845 (patch)
tree385d29d6c6d762163c91e5283f1525d3fb7656d6 /cc/secret_key_access_token.h
parenta633f5c9a11b390742721f456d678e60315c2853 (diff)
downloadtink-83428a56eaafbc33fdb97bd6f382d1ed39ad9845.tar.gz
Add secret key access C++ classes.
PiperOrigin-RevId: 451402322
Diffstat (limited to 'cc/secret_key_access_token.h')
-rw-r--r--cc/secret_key_access_token.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/cc/secret_key_access_token.h b/cc/secret_key_access_token.h
new file mode 100644
index 000000000..1e461ee26
--- /dev/null
+++ b/cc/secret_key_access_token.h
@@ -0,0 +1,41 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#ifndef TINK_SECRET_KEY_ACCESS_TOKEN_H_
+#define TINK_SECRET_KEY_ACCESS_TOKEN_H_
+
+namespace crypto {
+namespace tink {
+
+class SecretKeyAccessToken {
+ public:
+ // Copyable and movable.
+ SecretKeyAccessToken(const SecretKeyAccessToken& other) = default;
+ SecretKeyAccessToken& operator=(const SecretKeyAccessToken& other) = default;
+ SecretKeyAccessToken(SecretKeyAccessToken&& other) = default;
+ SecretKeyAccessToken& operator=(SecretKeyAccessToken&& other) = default;
+
+ private:
+ // `InsecureKeyAccess` class requires access to the constructor.
+ friend class InsecureSecretKeyAccess;
+
+ SecretKeyAccessToken() = default;
+};
+
+} // namespace tink
+} // namespace crypto
+
+#endif // TINK_SECRET_KEY_ACCESS_TOKEN_H_