Skip to content
Snippets Groups Projects
Commit ad71cf1b authored by Thai Duong's avatar Thai Duong
Browse files

Address Bartosz's comments.

Change-Id: I73e4004d95c560864d8d87c184f2734c2ea83909
ORIGINAL_AUTHOR=Thai Duong <thaidn@google.com>

GitOrigin-RevId: a87009ac3e68191ef6e2b4708666c6d0c0bbe716
parent 521fe344
No related branches found
No related tags found
Loading
# Tink # Tink
Tink is a small crypto library that provides a safe, simple, agile, fast and Tink is a small cryptographic library that provides a safe, simple, agile and
fun way to accomplish some common crypto tasks. It is written by a group of fast way to accomplish some common cryptographic tasks. It is written by a
cryptographers and security engineers at Google, but it is not an official group of cryptographers and security engineers at Google, but it is not an
Google product. official Google product.
## Getting started ## Getting started
...@@ -21,12 +21,12 @@ Tink, as much as we’ve enjoyed working on it! ...@@ -21,12 +21,12 @@ Tink, as much as we’ve enjoyed working on it!
Tink provides a set of basic tools to perform common crypto tasks in a variety Tink provides a set of basic tools to perform common crypto tasks in a variety
of environments. of environments.
Tink supports the 4 fundamental crypto operations including authenticated Currently Tink supports the 4 fundamental crypto operations including
encryption with associated data (Aead), message authentication code (Mac), authenticated encryption with associated data (AEAD), message authentication
digital signature (PublicKeySign and PublicKeyVerify), and hybrid encryption code (MAC), digital signature (PublicKeySign and PublicKeyVerify), and hybrid
(HybridEncrypt and HybridDecrypt). In the future we might add other primitives encryption (HybridEncrypt and HybridDecrypt). In the future we might add other
such as deterministic encryption (e.g., SIV modes), pseudorandom function (e.g. primitives such as deterministic encryption (e.g., SIV modes), pseudorandom
, HMAC as a PRF), strong pseudorandom permutation (e.g., HEH). function (e.g., HMAC as a PRF), strong pseudorandom permutation (e.g., HEH).
Tink also supports Tink also supports
[envelope](http://docs.aws.amazon.com/kms/latest/developerguide/workflow.html) [envelope](http://docs.aws.amazon.com/kms/latest/developerguide/workflow.html)
...@@ -40,14 +40,14 @@ use the KMS to decrypt DEK, and use decrypted DEK to decrypt the data. ...@@ -40,14 +40,14 @@ use the KMS to decrypt DEK, and use decrypted DEK to decrypt the data.
#### Primitives #### Primitives
The following Aead algorithms are supported: The following AEAD algorithms are supported:
- AES-EAX - AES-EAX
- AES-GCM - AES-GCM
- AES-CTR-HMAC-AEAD - AES-CTR-HMAC-AEAD
- CHACHA20-POLY1305 (planned) - CHACHA20-POLY1305 (planned)
The following Mac algorithms are supported: The following MAC algorithms are supported:
- HMAC-SHA2 - HMAC-SHA2
...@@ -58,7 +58,8 @@ The following digital signature algorithms are supported: ...@@ -58,7 +58,8 @@ The following digital signature algorithms are supported:
The following hybrid encryption algorithms are supported: The following hybrid encryption algorithms are supported:
- ECIES with AEAD and HKDF, based on Victor Shoup’s design - ECIES with AEAD and HKDF, based on [Victor Shoup's ISO 18033-2 design]
(http://www.shoup.net/iso/).
- NaCl CryptoBox (planned) - NaCl CryptoBox (planned)
#### Key Management #### Key Management
...@@ -96,7 +97,7 @@ Engine. iOS support is in active development. ...@@ -96,7 +97,7 @@ Engine. iOS support is in active development.
Tink reduces common crypto pitfalls with user-centered design, careful Tink reduces common crypto pitfalls with user-centered design, careful
implementation and code reviews, and extensive testing. implementation and code reviews, and extensive testing.
Tink is an accumulation of decades of experiences in building and breaking Tink stems from combined decades of experience in building and breaking
real-world cryptosystems. We are also maintainers of real-world cryptosystems. We are also maintainers of
[Project Wycheproof](https://github.com/google/wycheproof), a framework for [Project Wycheproof](https://github.com/google/wycheproof), a framework for
validating the correctness of crypto libraries, thus Tink has been validating the correctness of crypto libraries, thus Tink has been
...@@ -135,7 +136,7 @@ piece of data using authenticated encryption you need only 3 lines of code: ...@@ -135,7 +136,7 @@ piece of data using authenticated encryption you need only 3 lines of code:
``` ```
// 1. Read a keyset from some storage system // 1. Read a keyset from some storage system
KeysetHandle keysetHandle = KeysetHandle.newHandle(bytes); KeysetHandle keysetHandle = ...
// 2. Get an instance of the Aead primitive. // 2. Get an instance of the Aead primitive.
Aead aead = AeadFactory.getPrimitive(keysetHandle); Aead aead = AeadFactory.getPrimitive(keysetHandle);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment