SKS (Secure Key Store), Go dili için geliştirilmiş, modern cihazlarda bulunan TPM (Trusted Platform Module) ve Secure Enclave gibi donanım güvenlik modüllerinin API'lerini soyutlayan bir kütüphanedir. Bu kütüphane, geliştiricilere farklı donanımlar arasındaki karmaşık API farklılıklarını tek ve basit bir arayüz üzerinden yönetme imkanı sunar. Günümüzdeki çoğu dizüstü bilgisayar ve kullanıcı cihazı, gömülü donanım güvenlik cihazlarıyla birlikte gelir; örneğin Mac'ler Secure Enclave ile, diğer üreticiler ise genellikle TPM uygulamalarıyla. Bu cihazlar anahtar oluşturma, imzalama ve şifreleme gibi ortak işlevleri paylaşsa da, çalışma şekilleri ve API uygulamaları önemli ölçüde farklılık gösterir. SKS, bu tutarsızlıkları ortadan kaldırarak kullanıcılara anahtar oluşturma ve verileri imzalamak için kullanma olanağı sağlayan birleşik bir API sunar.
Kütüphane şu anda Linux ve Windows'ta TPM 2.0 ile macOS 10.14 ve üzeri sürümlerde Secure Enclave (T1 ve T2 Yonga Setleri) gibi çeşitli donanım ve platformları desteklemektedir. Geliştirme aşaması "stabil beta" olarak belirtilen SKS, donanımla etkileşim kurmak için kullanılabilir durumda olup, gelecekteki sürümlerde bazı özelliklerin eklenebileceği veya API'nin değişebileceği belirtilmiştir. Mevcut özellikler arasında ECDSA P256 anahtar oluşturma, donanım içinde anahtar arama, rastgele verileri imzalama ve donanımdan anahtarları kaldırma bulunmaktadır. Gelecekte AWS KMS desteği de planlanmaktadır.
Ancak, platform kısıtlamaları nedeniyle bazı özellikler çalışmamaktadır; örneğin, Linux ve Windows'ta biyometrik kullanım veya anahtar erişilebilirliğinin yalnızca kilit açıldığında sağlanması mümkün değildir. Ayrıca, TPM için anahtar hiyerarşileri dahili olarak kullanılsa da harici olarak gösterilmemektedir. Kütüphane, NewKey ve FromLabelTag gibi fonksiyonlar aracılığıyla genel/özel anahtar çiftleri oluşturma ve tanımlama imkanı sunar. Key arayüzü, crypto.Signer arayüzünü uygulayarak Sign ve Remove gibi ek işlevler sağlar, bu da geliştiricilerin güvenli anahtar işlemlerini kolayca entegre etmesine olanak tanır.
Geliştiricilerin farklı donanım güvenlik modülleriyle (TPM, Secure Enclave) tek bir Go API'si üzerinden kolayca etkileşim kurmasını sağlayarak güvenlik uygulamalarının karmaşıklığını azaltır.