Name Date Size #Lines LOC

..--

.github/H25-Apr-2025-14170

cc/H25-Apr-2025-179,618132,986

cmake/H25-Apr-2025-567511

docs/H25-Apr-2025-2,2811,695

go/H25-Apr-2025-82,14564,337

java_src/H25-Apr-2025-203,166153,525

kokoro/H25-Apr-2025-2,9771,514

proto/H25-Apr-2025-2,9522,540

python/H25-Apr-2025-35,06124,526

testing/H25-Apr-2025-29,64423,949

tools/H25-Apr-2025-3,8352,557

.bazelversionH A D25-Apr-20256 21

.gitignoreH A D25-Apr-2025165 1716

Android.bpH A D25-Apr-2025694 1513

BUILD.bazelH A D25-Apr-2025442 2016

CMakeLists.txtH A D25-Apr-20251.5 KiB3730

LICENSEH A D25-Apr-202511.1 KiB203169

README.mdH A D25-Apr-202510.4 KiB240195

passing_test.shH A D25-Apr-202524 31

tinkey.rbH A D25-Apr-2025556 1710

README.md

1# Tink
2
3*A multi-language, cross-platform library that provides cryptographic APIs that
4are secure, easy to use correctly, and hard(er) to misuse. See also:
5https://developers.google.com/tink*.
6
7> **NOTE**: **Tink is moving!**
8>
9> As part of our roadmap we are splitting Tink into
10> [multiple GitHub repositories][split_repo_roadmap_url] that will be hosted at
11> [github.com/tink-crypto](https://github.com/tink-crypto) and will be
12> independently versioned.
13>
14> Roughly, we are going to create one repository per language, library extension
15> such as KMS (except Tink Python), and tools.
16>
17> A few important highlights:
18>
19> -   The migration will be done gradually over the course of 2023 with a new
20>     release from each of the new repositories. Releases will be announced in
21>     our [mailing list][tink_mailing_list_url].
22> -   We will keep updating each implementation/tool in
23>     [github.com/google/tink](https://github.com/google/tink) for a specified
24>     amount of time; migrated implementations/tools will eventually stop being
25>     updated on [github.com/google/tink](https://github.com/google/tink). The
26>     support window depends on the specific implementation, as shown in the
27>     table below.
28> -   New issues and pull requests should be created in the new repos.
29>
30> Below is the list of resulting repositories, migration timeline and expected
31> end of support.
32>
33> Tink implementation/extension         | New repository                                                                            | Migration status               | End of support in google/tink
34> ------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------ | -----------------------------
35> Tink Java                             | [tink-crypto/tink-java](https://github.com/tink-crypto/tink-java)                         | Complete (Q1 2023)             | Q3 2023
36> Tink Java AWS KMS extension           | [tink-crypto/tink-java-awskms](https://github.com/tink-crypto/tink-java-awskms)           | Complete (Q1 2023)             | Q3 2023
37> Tink Java Google Cloud KMS extension  | [tink-crypto/tink-java-gcpkms](https://github.com/tink-crypto/tink-java-gcpkms)           | Complete (Q1 2023)             | Q3 2023
38> Tink Java apps extension              | [tink-crypto/tink-java-apps](https://github.com/tink-crypto/tink-java-apps)               | Complete (Q1 2023)             | Q3 2023
39> Tink C++                              | [tink-crypto/tink-cc](https://github.com/tink-crypto/tink-cc)                             | Complete (Q2 2023)             | Q4 2023
40> Tink C++ AWS KMS extension            | [tink-crypto/tink-cc-awskms](https://github.com/tink-crypto/tink-cc-awskms)               | Complete (Q2 2023)             | Q4 2023
41> Tink C++ Google Cloud KMS extension   | [tink-crypto/tink-cc-gcpkms](https://github.com/tink-crypto/tink-cc-gcpkms)               | Complete (Q2 2023)             | Q4 2023
42> Tink Go                               | [tink-crypto/tink-go](https://github.com/tink-crypto/tink-go)                             | Complete (Q3 2023)             | Q4 2023
43> Tink Go AWS KMS extension             | [tink-crypto/tink-go-awskms](https://github.com/tink-crypto/tink-go-awskms)               | Complete (Q3 2023)             | Q4 2023
44> Tink Go Google Cloud KMS extension    | [tink-crypto/tink-go-gcpkms](https://github.com/tink-crypto/tink-go-gcpkms)               | Complete (Q3 2023)             | Q4 2023
45> Tink Go HashiCorp Vault KMS extension | [tink-crypto/tink-go-hcvault](https://github.com/tink-crypto/tink-go-hcvault)             | Complete (Q3 2023)             | Q4 2023
46> Tink Python                           | [tink-crypto/tink-py](https://github.com/tink-crypto/tink-py)                             | In progress (Q3 2023)          | TBA
47> Tink Obj-C                            | [tink-crypto/tink-objc](https://github.com/tink-crypto/tink-objc)                         | Not started (expected Q4 2023) | TBA
48> Tink Tinkey                           | [tink-crypto/tink-tinkey](https://github.com/tink-crypto/tink-tinkey)                     | Complete (Q2 2023)             | Q4 2023
49> Tink cross language tests             | [tink-crypto/tink-cross-lang-tests](https://github.com/tink-crypto/tink-cross-lang-tests) | Not started (expected Q4 2023) | TBA
50
51> **NOTE**: **We are removing Tink for JavaScript/TypeScript**
52>
53> We are removing the Tink JavaScript/TypeScript library from our current Github
54> repository (master branch). As part of our effort to migrate Tink to
55> https://github.com/tink-crypto, we will not release an individual
56> JavaScript/Typescript repository. Furthermore, the JavaScript/TypeScript
57> [directory](https://github.com/google/tink/tree/master/javascript) in the
58> current release branch (v1.7.0) will no longer be actively supported.
59>
60> _We aim to remove the JS/TS directory from the current Tink Github repository
61> (master branch) on **June 22, 2023**. We will also deprecate the Tink npm
62> package on this date._
63>
64> See [this](https://github.com/google/tink/issues/689) tracking issue for more
65> details.
66>
67> Feel free to use our [mailing list][tink_mailing_list_url] to raise any
68> questions, issues or concerns.
69
70[split_repo_roadmap_url]: https://developers.google.com/tink/roadmap#splitting_tink_into_multiple_github_repositories
71[tink_mailing_list_url]: https://groups.google.com/forum/#!forum/tink-users
72
73## Index
74
751.  [Introduction](#introduction)
762.  [Current status](#current-status)
773.  [Getting started](#getting-started)
784.  [Learn more](#learn-more)
795.  [Contact and mailing list](#contact-and-mailing-list)
806.  [Maintainers](#maintainers)
81
82## Introduction
83
84Using crypto in your application [shouldn't have to][devs_are_users_too_slides]
85feel like juggling chainsaws in the dark. Tink is a crypto library written by a
86group of cryptographers and security engineers at Google. It was born out of our
87extensive experience working with Google's product teams,
88[fixing weaknesses in implementations](https://github.com/google/wycheproof),
89and providing simple APIs that can be used safely without needing a crypto
90background.
91
92Tink provides secure APIs that are easy to use correctly and hard(er) to misuse.
93It reduces common crypto pitfalls with user-centered design, careful
94implementation and code reviews, and extensive testing. At Google, Tink is one
95of the standard crypto libraries, and has been deployed in hundreds of products
96and systems.
97
98To get a quick overview of Tink design please take a look at
99[slides][tink_talk_slides] from [a talk about Tink][tink_talk_recording]
100presented at [Real World Crypto 2019](https://rwc.iacr.org/2019/).
101
102[devs_are_users_too_slides]: https://www.usenix.org/sites/default/files/conference/protected-files/hotsec15_slides_green.pdf
103[tink_talk_slides]: docs/Tink-a_cryptographic_library--RealWorldCrypto2019.pdf
104[tink_talk_recording]: https://www.youtube.com/watch?v=pqev9r3rUJs&t=9665
105
106## Current status
107
108[Java/Android](docs/JAVA-HOWTO.md), [C++](docs/CPP-HOWTO.md),
109[Obj-C](docs/OBJC-HOWTO.md), [Go](docs/GOLANG-HOWTO.md), and
110[Python](docs/PYTHON-HOWTO.md) are field tested and ready for production. The
111latest version is [1.7.0](https://github.com/google/tink/releases/tag/v1.7.0),
112released on 2022-08-09.
113
114Javascript/Typescript is in an alpha state and should only be used for testing.
115Please see the intent to remove statement
116[here](https://github.com/google/tink/issues/689).
117
118**`Ubuntu`**                        | **`macOS`**
119----------------------------------- | ---------------------------------
120[![Kokoro Ubuntu][ubuntu_badge]](#) | [![Kokoro macOS][macos_badge]](#)
121
122[ubuntu_badge]: https://storage.googleapis.com/tink-kokoro-build-badges/tink-ubuntu.png
123[macos_badge]: https://storage.googleapis.com/tink-kokoro-build-badges/tink-macos.png
124
125## Getting started
126
127Documentation for the project is located at https://developers.google.com/tink.
128Currently, it details a variety of common usage scenarios and covers the Java
129and Python implementations. The site will be populated with more content over
130time.
131
132Alternatively, you can look at all of the [`examples`] which demonstrate
133performing simple tasks using Tink in a variety of languages.
134
135[`examples`]: https://github.com/google/tink/tree/master/examples
136
137*   Python
138
139```sh
140pip3 install tink
141```
142
143*   Golang
144
145```sh
146go get github.com/google/tink/go/...
147```
148
149*   Java
150
151```xml
152<dependency>
153  <groupId>com.google.crypto.tink</groupId>
154  <artifactId>tink</artifactId>
155  <version>1.7.0</version>
156</dependency>
157```
158
159*   Android
160
161```
162dependencies {
163  implementation 'com.google.crypto.tink:tink-android:1.7.0'
164}
165```
166
167*   Objective-C/iOS
168
169```sh
170cd /path/to/your/Xcode project/
171pod init
172pod 'Tink', '1.7.0'
173pod install
174```
175
176## Learn more
177
178*   [Java HOW-TO](docs/JAVA-HOWTO.md)
179*   [C++ HOW-TO](docs/CPP-HOWTO.md)
180*   [Obj-C HOW-TO](docs/OBJC-HOWTO.md)
181*   [Go HOW-TO](docs/GOLANG-HOWTO.md)
182*   [Python HOW-TO](docs/PYTHON-HOWTO.md)
183*   [Security and Usability Design Goals](docs/SECURITY-USABILITY.md)
184*   [Supported Crypto Primitives](docs/PRIMITIVES.md)
185*   [Key Management](docs/KEY-MANAGEMENT.md)
186*   [Managing keys with Tinkey](docs/TINKEY.md)
187*   [Known Issues](docs/KNOWN-ISSUES.md)
188
189## Community-driven ports
190
191Out of the box Tink supports a wide range of languages, but it still doesn't
192support every language. Fortunately, some users like Tink so much that they've
193ported it to their favorite languages! Below you can find notable ports.
194
195**WARNING** While we usually review these ports, until further notice, we do not
196maintain them and have no plan to support them in the foreseeable future.
197
198*   [Clojure](https://github.com/perkss/tinklj)
199
200## Contact and mailing list
201
202If you want to contribute, please read [CONTRIBUTING](docs/CONTRIBUTING.md) and
203send us pull requests. You can also report bugs or file feature requests.
204
205If you'd like to talk to the developers or get notified about major product
206updates, you may want to subscribe to our [mailing list][tink_mailing_list_url].
207
208## Maintainers
209
210Tink is maintained by (A-Z):
211
212-   Moreno Ambrosin
213-   Taymon Beal
214-   Daniel Bleichenbacher
215-   William Conner
216-   Thai Duong
217-   Thomas Holenstein
218-   Stefan Kölbl
219-   Charles Lee
220-   Cindy Lin
221-   Fernando Lobato Meeser
222-   Atul Luykx
223-   Rafael Misoczki
224-   Sophie Schmieg
225-   Laurent Simon
226-   Elizaveta Tretiakova
227-   Jürg Wullschleger
228
229Alumni:
230
231-   Haris Andrianakis
232-   Tanuj Dhir
233-   Quan Nguyen
234-   Bartosz Przydatek
235-   Enzo Puig
236-   Veronika Slívová
237-   Paula Vidas
238-   Cathie Yun
239-   Federico Zalcberg
240