*(Last updated October 2025)*

This page details the high-level goals of the Tink team. It will be periodically
updated as the goals are achieved or changed.

## Keyset and registry redesign

We want to give users a better way to manage keys within a keyset. This will
make it easier to implement key management systems and will enable more
comprehensive support for importing and exporting keys to different formats like
PEM or JWK (while ensuring the API prevents common mistakes that could result in
security vulnerabilities). This work is mostly complete for Java, C++, and Go.

We are also working on allowing multiple key generation and primitive
configurations in Tink, which will eventually replace the current registries.
This will make it easier to develop libraries based on Tink and will also allow
for the seamless removal and deprecation of insecure algorithms. This work is
complete for Java and ongoing for C++.

## Post-quantum cryptography (PQC)

We are continuing to add support for the [NIST-selected](https://csrc.nist.gov/projects/post-quantum-cryptography/selected-algorithms-2022) PQC
algorithms. ML-DSA and SLH-DSA are now both supported in C++ and Go using the
respective digital signature APIs for those languages. Java support for both PQC
algorithms is in progress. Support for Kyber/ML-KEM with a new key encapsulation
mechanism (KEM) API is also under development.

## Performance

We intend to fine-tune our Tink performance measurements and provide appropriate
performance benchmarks for our users. We are also continuing to investigate
possible performance enhancements to Tink.

## Tell us what you think!

We would love to hear about how you use Tink or which features would be most
useful for your implementation. Let us know by taking [our survey](https://docs.google.com/forms/d/1mhHvyNJQgTXFDnqOermB7-BD8GQSyvtFPUAhILRbYcA/ "Tink Developer Survey").