xref: /aosp_15_r20/external/tink/java_src/tools/refaster/java/com/google/tinkuser/TinkUser.java_expected (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15////////////////////////////////////////////////////////////////////////////////
16
17package com.google.tinkuser;
18
19import com.google.crypto.tink.Aead;
20import com.google.crypto.tink.BinaryKeysetReader;
21import com.google.crypto.tink.KeysetHandle;
22import com.google.crypto.tink.KeysetReader;
23import com.google.crypto.tink.TinkProtoKeysetFormat;
24import com.google.crypto.tink.aead.AeadKeyTemplates;
25import com.google.crypto.tink.aead.PredefinedAeadParameters;
26import com.google.crypto.tink.daead.DeterministicAeadKeyTemplates;
27import com.google.crypto.tink.daead.PredefinedDeterministicAeadParameters;
28import com.google.crypto.tink.mac.MacKeyTemplates;
29import com.google.crypto.tink.mac.PredefinedMacParameters;
30import com.google.crypto.tink.streamingaead.PredefinedStreamingAeadParameters;
31import com.google.crypto.tink.streamingaead.StreamingAeadKeyTemplates;
32import java.io.IOException;
33import java.security.GeneralSecurityException;
34
35/** Example user code */
36public final class TinkUser {
37  public Aead useReadNoSecret(byte[] b) throws GeneralSecurityException {
38    return TinkProtoKeysetFormat.parseKeysetWithoutSecret(b).getPrimitive(Aead.class);
39  }
40  public Aead useBinaryReader(byte[] b) throws GeneralSecurityException, IOException {
41    return TinkProtoKeysetFormat.parseKeysetWithoutSecret(b).getPrimitive(Aead.class);
42  }
43  public Aead useAnyReader(KeysetReader r) throws GeneralSecurityException, IOException {
44    return TinkProtoKeysetFormat.parseKeysetWithoutSecret(r.read().toByteArray()).getPrimitive(Aead.class);
45  }
46
47  public void macKeyTemplateUser() throws Exception {
48    Object a = KeysetHandle.generateNew(PredefinedMacParameters.HMAC_SHA256_128BITTAG);
49    Object b = KeysetHandle.generateNew(PredefinedMacParameters.HMAC_SHA256_256BITTAG);
50    Object c = KeysetHandle.generateNew(PredefinedMacParameters.HMAC_SHA512_256BITTAG);
51    Object d = KeysetHandle.generateNew(PredefinedMacParameters.HMAC_SHA512_512BITTAG);
52    Object e = KeysetHandle.generateNew(PredefinedMacParameters.AES_CMAC);
53  }
54
55  public void aeadKeyTemplateUser() throws Exception {
56    Object a = KeysetHandle.generateNew(PredefinedAeadParameters.AES128_GCM);
57    Object b = KeysetHandle.generateNew(PredefinedAeadParameters.AES256_GCM);
58    Object c = KeysetHandle.generateNew(PredefinedAeadParameters.AES128_EAX);
59    Object d = KeysetHandle.generateNew(PredefinedAeadParameters.AES256_EAX);
60    Object e = KeysetHandle.generateNew(PredefinedAeadParameters.AES128_CTR_HMAC_SHA256);
61    Object f = KeysetHandle.generateNew(PredefinedAeadParameters.AES256_CTR_HMAC_SHA256);
62    Object g = KeysetHandle.generateNew(PredefinedAeadParameters.CHACHA20_POLY1305);
63    Object h = KeysetHandle.generateNew(PredefinedAeadParameters.XCHACHA20_POLY1305);
64  }
65
66  public void deterministicAeadKeyTemplateUser() throws Exception {
67    Object a = KeysetHandle.generateNew(PredefinedDeterministicAeadParameters.AES256_SIV);
68  }
69
70  public void streamingAeadKeyTemplateUser() throws Exception {
71    Object a = KeysetHandle.generateNew(PredefinedStreamingAeadParameters.AES128_CTR_HMAC_SHA256_4KB);
72    Object b = KeysetHandle.generateNew(PredefinedStreamingAeadParameters.AES128_CTR_HMAC_SHA256_1MB);
73    Object c = KeysetHandle.generateNew(PredefinedStreamingAeadParameters.AES256_CTR_HMAC_SHA256_4KB);
74    Object d = KeysetHandle.generateNew(PredefinedStreamingAeadParameters.AES256_CTR_HMAC_SHA256_1MB);
75    Object e = KeysetHandle.generateNew(PredefinedStreamingAeadParameters.AES128_GCM_HKDF_4KB);
76    Object f = KeysetHandle.generateNew(PredefinedStreamingAeadParameters.AES128_GCM_HKDF_1MB);
77    Object g = KeysetHandle.generateNew(PredefinedStreamingAeadParameters.AES256_GCM_HKDF_4KB);
78    Object h = KeysetHandle.generateNew(PredefinedStreamingAeadParameters.AES256_GCM_HKDF_1MB);
79  }
80}
81