1*e7b1675dSTing-Kang Chang# Copyright 2022 Google LLC 2*e7b1675dSTing-Kang Chang# 3*e7b1675dSTing-Kang Chang# Licensed under the Apache License, Version 2.0 (the "License"); 4*e7b1675dSTing-Kang Chang# you may not use this file except in compliance with the License. 5*e7b1675dSTing-Kang Chang# You may obtain a copy of the License at 6*e7b1675dSTing-Kang Chang# 7*e7b1675dSTing-Kang Chang# http://www.apache.org/licenses/LICENSE-2.0 8*e7b1675dSTing-Kang Chang# 9*e7b1675dSTing-Kang Chang# Unless required by applicable law or agreed to in writing, software 10*e7b1675dSTing-Kang Chang# distributed under the License is distributed on an "AS-IS" BASIS, 11*e7b1675dSTing-Kang Chang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*e7b1675dSTing-Kang Chang# See the License for the specific language governing permissions and 13*e7b1675dSTing-Kang Chang# limitations under the License. 14*e7b1675dSTing-Kang Chang"""Example to showcase how to create a keyset.""" 15*e7b1675dSTing-Kang Chang# [START tink_walkthrough_create_keyset] 16*e7b1675dSTing-Kang Changimport tink 17*e7b1675dSTing-Kang Changfrom tink import aead 18*e7b1675dSTing-Kang Chang 19*e7b1675dSTing-Kang Chang 20*e7b1675dSTing-Kang Changdef CreateAead128GcmKeyset() -> tink.KeysetHandle: 21*e7b1675dSTing-Kang Chang """Creates a keyset with a single AES128-GCM key and return a handle to it. 22*e7b1675dSTing-Kang Chang 23*e7b1675dSTing-Kang Chang Prerequisites: 24*e7b1675dSTing-Kang Chang - Register AEAD implementations of Tink. 25*e7b1675dSTing-Kang Chang 26*e7b1675dSTing-Kang Chang Returns: 27*e7b1675dSTing-Kang Chang A handle to the created keyset. 28*e7b1675dSTing-Kang Chang 29*e7b1675dSTing-Kang Chang Raises: 30*e7b1675dSTing-Kang Chang tink.TinkError in case of errors. 31*e7b1675dSTing-Kang Chang """ 32*e7b1675dSTing-Kang Chang # Tink provides pre-baked templates. For example, we generate a key template 33*e7b1675dSTing-Kang Chang # for AES128-GCM. 34*e7b1675dSTing-Kang Chang key_template = aead.aead_key_templates.AES128_GCM 35*e7b1675dSTing-Kang Chang # This will generate a new keyset with only *one* key and return a keyset 36*e7b1675dSTing-Kang Chang # handle to it. 37*e7b1675dSTing-Kang Chang return tink.new_keyset_handle(key_template) 38*e7b1675dSTing-Kang Chang 39*e7b1675dSTing-Kang Chang 40*e7b1675dSTing-Kang Chang# [END tink_walkthrough_create_keyset] 41