aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorthaidn <thaidn@google.com>2020-10-13 09:18:29 -0700
committerCopybara-Service <copybara-worker@google.com>2020-10-13 09:19:09 -0700
commit6550e7982b90d17ddd20ac7a5f251bd92d89ca61 (patch)
treef2a0e5e45bd66f9d83426c3722b520ddf6b564a3 /README.md
parent57e821a61e52d305c7156c65c9f3cec458322e69 (diff)
downloadtink-6550e7982b90d17ddd20ac7a5f251bd92d89ca61.tar.gz
Bump version to 1.5.0 and clean up README.
PiperOrigin-RevId: 336889984
Diffstat (limited to 'README.md')
-rw-r--r--README.md117
1 files changed, 27 insertions, 90 deletions
diff --git a/README.md b/README.md
index 13368bc89..707578465 100644
--- a/README.md
+++ b/README.md
@@ -8,13 +8,11 @@
## Index
-1. [Introduction](#introduction)
-2. [Getting started](#getting-started)
-3. [Overview](#overview)
-3. [Current status](#current-status)
-4. [Learn more](#learn-more)
-5. [Contact and mailing list](#contact-and-mailing-list)
-6. [Maintainers](#maintainers)
+1. [Introduction](#introduction)
+2. [Current status](#current-status)
+3. [Learn more](#learn-more)
+4. [Contact and mailing list](#contact-and-mailing-list)
+5. [Maintainers](#maintainers)
## Introduction
@@ -29,90 +27,28 @@ background.
Tink provides secure APIs that are easy to use correctly and hard(er) to misuse.
It reduces common crypto pitfalls with user-centered design, careful
-implementation and code reviews, and extensive testing. At Google, Tink is
-already being used to secure data of many products such as AdMob, Google Pay,
-Google Assistant, Firebase, the Android Search App, etc.
+implementation and code reviews, and extensive testing. At Google, Tink is one
+of the standard crypto libraries, and has been deployed in hundreds of products
+and systems.
To get a quick overview of Tink design please take a look at
[slides](docs/Tink-a_cryptographic_library--RealWorldCrypto2019.pdf) from [a
talk about Tink](https://www.youtube.com/watch?v=pqev9r3rUJs&t=9665) presented
at [Real World Crypto 2019](https://rwc.iacr.org/2019/).
-## Getting started
-
-Tink primarily uses [Bazel](https://bazel.build) to manage building and testing
-the project.
-
-The recommended way to get started with Tink is to use
-[Bazelisk](https://github.com/bazelbuild/bazelisk). This tool is developed by
-the Bazel team and makes it easy to ensure usage of a version of Bazel that's
-compatible with the project.
-
-As a starting point, the
-[`examples`](https://github.com/google/tink/tree/master/examples) demonstrate
-performing simple tasks using Tink in a variety of languages.
-
-## Overview
-
-Tink performs cryptographic tasks via so-called [primitives](docs/PRIMITIVES.md),
-each of which is defined via a corresponding interface that specifies the
-functionality of the primitive. For example, _symmetric key encryption_ is
-offered via an [_AEAD-primitive_ (Authenticated Encryption with Associated
-Data)](docs/PRIMITIVES.md#authenticated-encryption-with-associated-data), that
-supports two operations:
-
-* `encrypt(plaintext, associated_data)`, which encrypts the given `plaintext`
- (using `associated_data` as additional AEAD-input) and returns the resulting
- ciphertext
-* `decrypt(ciphertext, associated_data)`, which decrypts the given
- `ciphertext` (using `associated_data` as additional AEAD-input) and returns
- the resulting plaintext
-
-Before implementations of primitives can be used, they must be registered at
-runtime with Tink, so that Tink "knows" the desired implementations. Here's how
-you can register all implementations of all primitives in Tink:
-
-```java
- import com.google.crypto.tink.config.TinkConfig;
-
- TinkConfig.register();
-```
-
-After implementations of primitives have been registered, the basic use of Tink
-proceeds in three steps:
-
-1. Load or generate the cryptographic key material (a `Keyset` in Tink terms).
-2. Use the key material to get an instance of the chosen primitive.
-3. Use that primitive to accomplish the cryptographic task.
-
-Here is how these steps would look like when encrypting or decrypting with an
-AEAD primitive in Java:
-
-```java
- import com.google.crypto.tink.Aead;
- import com.google.crypto.tink.KeysetHandle;
- import com.google.crypto.tink.aead.AeadKeyTemplates;
-
- // 1. Generate the key material.
- KeysetHandle keysetHandle = KeysetHandle.generateNew(
- AeadKeyTemplates.AES128_GCM);
-
- // 2. Get the primitive.
- Aead aead = keysetHandle.getPrimitive(Aead.class);
-
- // 3. Use the primitive.
- byte[] ciphertext = aead.encrypt(plaintext, associatedData);
-```
-
## Current status
-* The latest version is
- [1.4.0](https://github.com/google/tink/releases/tag/v1.4.0), released on
- 2020-07-13.
-* [Java and Android](docs/JAVA-HOWTO.md), [C++](docs/CPP-HOWTO.md),
- [Obj-C](docs/OBJC-HOWTO.md), [Go](docs/GOLANG-HOWTO.md), and
- [Python](docs/PYTHON-HOWTO.md) are field tested and ready for production.
-* Tink for JavaScript is in active development.
+[Java/Android](docs/JAVA-HOWTO.md), [C++](docs/CPP-HOWTO.md),
+[Obj-C](docs/OBJC-HOWTO.md), [Go](docs/GOLANG-HOWTO.md), and
+[Python](docs/PYTHON-HOWTO.md) are field tested and ready for production. The
+latest version is [1.5.0](https://github.com/google/tink/releases/tag/v1.5.0),
+released on 2020-10-13.
+
+Javascript/Typescript is alpha, ready for testing. Check out
+[Tink NPM 0.0.1](https://www.npmjs.com/package/tink-crypto)! We are unaware of
+any problems -- in fact Tink for Javascript/Typescript has been running in
+production for years at Google -- it's just that we have not finalized the
+public APIs.
## Learn more
@@ -124,10 +60,9 @@ AEAD primitive in Java:
* [Security and Usability Design Goals](docs/SECURITY-USABILITY.md)
* [Supported Crypto Primitives](docs/PRIMITIVES.md)
* [Key Management](docs/KEY-MANAGEMENT.md)
-* [Tinkey](docs/TINKEY.md)
+* [Managing keys with Tinkey](docs/TINKEY.md)
* [Known Issues](docs/KNOWN-ISSUES.md)
* [Feature Roadmap](docs/ROADMAP.md)
-* [Java Hacking Guide](docs/JAVA-HACKING.md)
## Community-driven ports
@@ -138,7 +73,6 @@ ported it to their favorite languages! Below you can find notable ports.
**WARNING** While we usually review these ports, until further notice, we do not
maintain them and have no plan to support them in the foreseeable future.
-* [C# (with JNI)](https://github.com/google-pay/tink-jni-examples)
* [Clojure](https://github.com/perkss/tinklj)
## Contact and mailing list
@@ -154,17 +88,20 @@ updates, you may want to subscribe to our
Tink is maintained by (A-Z):
-- Haris Andrianakis
- Daniel Bleichenbacher
-- Tanuj Dhir
- Thai Duong
- Thomas Holenstein
- Stefan Kölbl
- Charles Lee
+- Sophie Schmieg
+- Jürg Wullschleger
+
+Alumni
+
+- Haris Andrianakis
+- Tanuj Dhir
- Quan Nguyen
- Bartosz Przydatek
- Enzo Puig
-- Sophie Schmieg
- Veronika Slívová
- Paula Vidas
-- Jürg Wullschleger