Bu sayfada, Keymaster'ı uygulayanlara yardımcı olacak ayrıntılar sunulmaktadır Donanım Soyutlama Katmanları (HAL). Bu bölüm, Bu işlevin hangi Keymaster sürümünün mevcut olduğu ve bölümünde varsayılan uygulama açıklanmaktadır. Etiketler için Keymaster Etiketleri sayfasına bakın.
Genel uygulama yönergeleri
Aşağıdaki yönergeler, API'deki tüm işlevler için geçerlidir.
Giriş işaretçisi parametreleri
Sürüm: 1, 2
Belirli bir çağrı için kullanılmayan giriş işaretçisi parametreleri
NULL
Arayanın yer tutucu sağlaması gerekmez.
Örneğin, bazı anahtar türleri ve modları
inParams
bağımsız değişkeni başlayacak, böylece arayan
inParams
öğesini NULL
olarak ayarlayın veya boş bir parametre sağlayın
ayarlandı. Arayanlar ayrıca kullanılmayan parametreler sağlayabilir. Keymaster yöntemlerinde
değildir.
Gerekli giriş parametresi NULL ise Keymaster yöntemlerinin değeri
ErrorCode::UNEXPECTED_NULL_POINTER
Keymaster 3'ten itibaren herhangi bir işaretçi parametresi yoktur. Tüm parametreler değer veya const başvuruları ile geçirilir.
Çıkış işaretçisi parametreleri
Sürüm: 1, 2
Giriş işaretçisi parametrelerine benzer şekilde, kullanılmayan çıkış işaretçisi parametreleri
NULL
olabilir. Bir yöntemin çıkışta veri döndürmesi gerekiyorsa
parametresinin NULL
olduğu tespit edildiyse, bu parametrenin
ErrorCode::OUTPUT_PARAMETER_NULL
.
Keymaster 3'ten itibaren herhangi bir işaretçi parametresi yoktur. Tüm parametreler değer veya const başvuruları ile geçirilir.
API'nin hatalı kullanımı
Sürüm: 1, 2, 3
Arayanlar anlamsız taleplerde bulunabilir. aptalca ama teknik olarak yanlış değil. Keymaster uygulamaları veya bir teşhis koymanız gerekir. Çok küçük tuşların kullanılması, Alakasız giriş parametrelerinin spesifikasyonu, rastgele URL'lerin veya nonce'ların yeniden kullanımı, bir amaca hizmet eden anahtarların üretilmesidir (böylece, bu tür anahtarların teşhisi koyduk. Gerekli parametrelerin atlanması, Geçersiz zorunlu parametreler ve benzer hataların teşhis edilmesi gerekir.
Bunu yapmak, uygulamaların, çerçevenin ve Android anahtar deposunun sorumluluğundadır. Keymaster modüllerine yapılan çağrıların makul ve yararlı olduğundan emin olun.
Fonksiyonlar
getDonanımÖzellikleri
Sürüm: 3
Yeni getHardwareFeatures
yöntemi, müşterilere
donanımının önemli özelliklerine değineceğiz.
Yöntem bağımsız değişken almaz ve tümü boole değerleri olmak üzere dört değer döndürür:
- Anahtarlar şurada depolanırsa
isSecure
true
olur: gibi güvenli bir donanıma (TEE vb.) sahip olabilir ve asla supportsEllipticCurve
, şu durumdatrue
olur: donanım, NIST eğrileriyle (P-224, P-256, P-384 ve P-521) içerir.supportsSymmetricCryptography
özelliğitrue
durumda donanım, AES ve HMAC dahil simetrik kriptografiyi destekliyorsa.supportsAttestation
, şu durumdatrue
olur: Donanım, Keymaster ortak anahtar onayı sertifikalarının oluşturulmasını destekler, bir anahtarla imzalandığından emin olun.
Bu yöntemin döndürebileceği hata kodları yalnızca ErrorCode:OK
,
ErrorCode::KEYMASTER_NOT_CONFIGURED
veya hata kodlarından biri
güvenli donanımla iletişim kurulamadı.
getHardwareFeatures() generates(bool isSecure, bool supportsEllipticCurve, bool supportsSymmetricCryptography, bool supportsAttestation, bool supportsAllDigests, string keymasterName, string keymasterAuthorName);
yapılandır
Sürüm: 2
Bu işlev Keymaster 2'de kullanıma sunulmuş ve Keymaster'da kullanımdan kaldırılmıştır 3. Bu bilgiler sistem özellikleri dosyalarında ve üretici uygulamaları başlangıç sırasında bu dosyaları okur.
Keymaster'ı yapılandırır. Bu yöntem, cihaz açıldıktan sonra bir kez çağrılır
yardımcı olabilir. Bu analiz ekibi,
KM_TAG_OS_VERSION ve
KM_TAG_OS_PATCHLEVEL -
anahtar yöneticisidir. Bu yöntem çağrılana kadar diğer tüm yöntemler
KM_ERROR_KEYMASTER_NOT_CONFIGURED
Bu işlemin sağladığı değerler
yöntemi, keymaster tarafından başlatma başına yalnızca bir kez kabul edilir. Sonraki
aramaları KM_ERROR_OK
değerini döndürür, ancak hiçbir şey yapmaz.
Keymaster uygulaması güvenli donanımda ve işletim sistemi sürümündeyse ve
sağlanan yama düzeyi değerleri, güvenlik sunucusu için sağlanan değerlerle eşleşmiyor
donanım yüklememesini sağlayabilir (veya bootloader değer sağlamadıysa)
bu yöntem KM_ERROR_INVALID_ARGUMENT
değerini ve diğer tüm
yöntemleri KM_ERROR_KEYMASTER_NOT_CONFIGURED
değerini döndürmeye devam eder.
keymaster_error_t (*configure)(const struct keymaster2_device* dev, const keymaster_key_param_set_t* params);
AdRngEntropi
Sürüm: 1, 2, 3
Bu işlev Keymaster 1'de add_rng_entropy
olarak kullanıma sunuldu
ve Keymaster 3'te yeniden adlandırıldı.
Keymaster 1 uygulaması tarafından kullanılan havuza arayan tarafından sağlanan entropi ekler anahtar, IV vb. için rastgele sayılar oluşturma amacıyla kullanılır.
Keymaster uygulamalarının, sağlanan mevcut
havuzlarına eklemesi gereken
bir donanım rastgele sayı oluşturucudan dahili olarak oluşturulmuş entropi.
Karıştırma, tam kontrole sahip bir saldırganın
addRngEntropy
tarafından sağlanan bitlerden veya donanım tarafından oluşturulan bitlerden
her ikisi için olmasa da, bitlerin tahmin edilmesinde göz ardı edilebilir bir avantaja sahip değildir.
türetilir.
Entropiyi tahmin etmeye çalışan Keymaster uygulamaları
dahili havuzda, Arkadaş Bitkiler Projesi’nin
addRngEntropy
entropi içermiyor. Keymaster uygulamaları,
2'den fazla verilirse ErrorCode::INVALID_INPUT_LENGTH
değerini döndürür
Tek bir aramada KiB cinsinden veri miktarı.
oluşturmaAnahtarı
Sürüm: 1, 2, 3
Bu işlev Keymaster 1'de generate_key
olarak kullanıma sunuldu
ve Keymaster 3'te yeniden adlandırıldı.
İlişkili yetkilendirmeleri belirten yeni bir şifreleme anahtarı oluşturur
Bunlar kalıcı olarak anahtara bağlıdır. Keymaster uygulamaları,
bir anahtarın, yetkilendirmelerle tutarlı olmayan bir şekilde kullanılması
sırasında belirtilmiş olmalıdır. Güvenli
güvenli donanımın yükümlülüğü, donanımın gerektirdiği şekilde
anahtarla ilişkili uygulanamayan yetkilendirmelerin
Böylece yapılacak her çağrının
getKeyCharacteristics
orijinal değeri döndürür. Ayrıca, bir proje yöneticisinin
generateKey
, yetkilendirmeleri
donanım ve yazılım tarafından zorunlu kılınan listelerdir. Görüntüleyin
getKeyCharacteristics bölümüne göz atın.
generateKey
için sağlanan parametreler anahtarın türüne bağlıdır
devreye giriyor. Bu bölümde, şu URL’ler için gerekli ve isteğe bağlı etiketler özetlenmiştir:
her bir anahtar türünü görebilirsiniz. Etiket: ALGORİTMA
her zaman gereklidir.
RSA anahtarları
RSA anahtarı oluşturmak için aşağıdaki parametreler gereklidir.
- Etiket::KEY_SIZE
genel modülün boyutunu bit cinsinden belirtir. Atlanırsa
yöntem
ErrorCode::UNSUPPORTED_KEY_SIZE
değerini döndürür. 1024, 2048, 3072 ve 4096 değerleri desteklenir. Önerilen değerler tüm anahtar boyutları 8'in katlarıdır. - Etiket::RSA_PUBLIC_EXPONENT
RSA herkese açık üs değerini belirtir. Atlanırsa yöntem
ErrorCode::INVALID_ARGUMENT
değerini döndürür. Desteklenen değerler: 3 ve 65537. Önerilen değerler: 2^64'e kadar olan tüm asal değerler.
Aşağıdaki parametreler RSA anahtarı oluşturmak için gerekli değildir, ancak
olmadan bir RSA anahtarı oluşturmak, kullanılamayan bir anahtara neden olur. Ancak
Bu parametreler aşağıdaki durumlarda generateKey
işlevi hata döndürmez:
atlanır.
- Tag::PURPOSE amaçlar. RSA anahtarları için tüm amaçların desteklenmesi gerekir. herhangi bir kombinasyonda.
- Etiket::DIGEST
yeni anahtarla kullanılabilecek özet algoritmalarına yer verir. Uygulamalar
tüm özet algoritmalarını desteklemeyen uygulamaların anahtar oluşturma sürecini kabul etmesi gerekir
desteklenmeyen özetler içeren isteklerdir. Desteklenmeyen özetler
"yazılım tarafından zorunlu kılınan" listesi oluşturun.
Bunun nedeni, anahtarın diğer özetlerle kullanılabilmesidir.
ne olduğunu öğreneceğiz. Ardından, işlemi gerçekleştirmek için donanım çağrılır
Digest::NONE
ile birlikte. - Tag::PADDING,
dolgu modlarını kullanabilirsiniz. Uygulamalar
tüm özet algoritmalarını desteklemeyen
PaddingMode::RSA_PSS
vePaddingMode::RSA_OAEP
inç desteklenmeyen özellikler varsa bunların yazılımla zorunlu kılınan temel özellikleri belirtildiğinden emin olun.
ECDSA anahtarları
Yalnızca Etiket::KEY_SIZE bir ECDSA anahtarı oluşturmak için gereklidir. EC grubunu seçmek için kullanılır. Desteklenen değerler 224, 256, 384 ve 521'dir. Bunlar, Sırasıyla NIST p-224, p-256, p-384 ve p521 eğrileri.
Etiket::DIGEST yararlı bir ECDSA anahtarı için de gereklidir. ancak üretim için gerekli değildir.
AES anahtarları
Yalnızca Etiket::KEY_SIZE
AES anahtarı oluşturmak için gereklidir. Atlanırsa yöntem
ErrorCode::UNSUPPORTED_KEY_SIZE
Desteklenen değerler:
128 ve 256. İsteğe bağlı olarak 192 bit AES anahtarları desteklenir.
Aşağıdaki parametreler özellikle AES anahtarları için geçerlidir oluşturmak için gereklidir:
Tag::BLOCK_MODE
, yeni anahtar kullanılabilir.Tag::PADDING
, kullanılır. Bu, yalnızca ECB ve CBC modları için geçerlidir.
GCM engelleme modu belirtildiyse
Etiket::MIN_MAC_LENGTH.
Atlanırsa yöntem ErrorCode::MISSING_MIN_MAC_LENGTH
değerini döndürür.
Etiketin değeri 8'in katıdır ve 96 ile 128 arasındadır.
HMAC anahtarları
HMAC anahtarı oluşturmak için aşağıdaki parametreler gereklidir:
- Etiket::KEY_SIZE anahtar boyutunu bit cinsinden belirtir. 64'ten küçük değerler ve 8'in katları olmayan değerler desteklenmez. Tümü 64 ile 512 arasında 8'in katları desteklenir. Daha büyük değerler desteklenir.
- Etiket::MIN_MAC_LENGTH Bu anahtarla oluşturulabilen veya doğrulanabilen MAC'ler. Değer katları 8 ve en az 64'tür.
- Etiket::DIGEST
anahtara ait özet algoritmasını belirtir. Tam olarak
bir özet belirtildi, aksi takdirde döndürülür
ErrorCode::UNSUPPORTED_DIGEST
Özet desteklenmiyorsa güvenilir sertifikanız üzerinden,ErrorCode::UNSUPPORTED_DIGEST
Temel özellikleri
Özellikler bağımsız değişkeni NULL değilse generateKey
şunu döndürür:
özellikleri, yeni oluşturulan anahtarın özelliklerini
donanım ve yazılım tarafından zorunlu kılınan listelerdir. Görüntüleyin
Bir açıklama için getKeyCharacteristics
hangi özelliklerin hangi listede
yer aldığı. Döndürülen özellikler
anahtar oluşturma için belirtilen tüm parametreleri içermelidir.
Etiket::APPLICATION_ID ve
Etiket::APPLICATION_DATA.
Bu etiketler anahtar parametrelere eklenmişse
ve bu özelliklerin değerlerinin bulunamaması için
inceleyerek başlayın. Ancak kriptografik olarak bağlıdırlar.
bunu anahtar blob'a ekleyerek,
kullanım başarısız olur. Aynı şekilde,
Etiket::ROOT_OF_TRUST
kriptografik olarak anahtara bağlıdır, ancak
anahtar oluşturma veya içe aktarma işlemi yapılır ve hiçbir zaman döndürülmez.
Sağlanan etiketlere ek olarak,
Etiket::ortak değerini ekler.
KeyOrigin::GENERATED
değerine sahip olduğunuzda,
Anahtar geri almaya karşı dirençliyse
Geri alma direnci
Geri alma direnci, bir anahtarın silindiği zaman deleteKey veya deleteAllKeys ise, güvenli donanım bir daha kullanılamaz. Geri alma direnci olmadan uygulamalar genellikle oluşturulan veya içe aktarılan anahtar materyalini, arayan kişiye anahtar blobu, şifrelenmiş ve kimliği doğrulanmış formdur. Anahtar deposu, anahtar blobunu sildiğinde anahtar ancak daha önce anahtar materyalini ele geçirmiş olan bir saldırgan gitti bu verileri cihaza geri yükleyebilir.
Güvenli donanım, silindiğini garanti ediyorsa geri almaya karşı dayanıklıdır. anahtarları daha sonra geri yüklenemez. Bu genellikle ek anahtarlar depolanıp saldırgan tarafından değiştirilemeyen, güvenilir bir konumda bulunan meta verilerdir. Şu tarihte: bu işlem için kullanılan mekanizma genellikle Tekrar Oynatma Korumalı Hafıza'dır Bloklar (BGBGB). Çünkü oluşturulabilecek anahtarların sayısı sınırsız ve geri alma direnci için kullanılan güvenilir depolama alanı sınırlı olabilir geri alma direnci söz konusu olsa bile bu yöntemin yeni anahtar için sağlanamıyor. Böyle bir durumda, Etiket::ROLLBACK_RESISTANT temel özelliklere eklenmemelidir.
getKeyCharacteristics
Sürüm: 1, 2, 3
Bu işlev Keymaster 1'de
get_key_characteristics
ve Keymaster 3'te yeniden adlandırıldı.
Sağlanan anahtarla ilişkili parametreleri ve yetkilendirmeleri döndürür. donanımla ve yazılımla zorlanan olmak üzere iki gruba ayrılır. Açıklama burada generateKey ve importKey tarafından döndürülen temel özellik listeleri için aynı şekilde geçerlidir.
Anahtar oluşturma sırasında Tag::APPLICATION_ID
sağlanmışsa
veya içe aktarıldığında, aynı değer
bu yöntemi clientId
bağımsız değişkenine ekleyin. Aksi halde,
yöntemi ErrorCode::INVALID_KEY_BLOB
değerini döndürür. Aynı şekilde,
Tag::APPLICATION_DATA
oluşturma sırasında sağlanmışsa
veya içe aktarıldığında, aynı değer
bu yöntemi appData
bağımsız değişkenine ekleyin.
Bu yöntemin döndürdüğü özellikler, modelin ve belirtilen anahtarın kullanımı.
Belirli bir etiketin donanımla veya yazılımla zorlanan listesine göre, etiketin anlamı tam anlamıyla güvenli bir donanımdır ve donanımla zorunlu kılınmıştır. Aksi takdirde emin olun. Aşağıda, doğru ayırması olan belirli etiketlerin listesi net olmayabilir:
- Etiket::ALGORİTMA, Etiket::KEY_SIZE, ve Etiket::RSA_PUBLIC_EXPONENT anahtarın öz özellikleridir. Güvenliği donanımla korunan herhangi bir anahtarda bu etiketler donanım tarafından zorlananlar listesinde yer alır.
- Etiket::DIGEST değerleri ve güvenli donanım tarafından desteklenen cihazlar, bir donanım destekli liste değildir. Desteklenmeyen özetler, yazılım destekli uygulamalar listesinde yer alır.
- Etiket::PADDING değerleri genellikle donanım destekli cihazlar listesine girer. yazılım tarafından belirli bir dolgu modunun uygulanması gerekme olasılığı. Bu durumda, cihazlar yazılımla zorunlu kılınan uygulamalar listesine girer. Böyle bir olasılık özet algoritmaları ile PSS veya OAEP dolgusuna izin veren RSA anahtarları için ortaya çıkar desteklenmeyen bazı yazılımlar olabilir.
- Etiket::USER_SECURE_ID ve Etiket::USER_AUTH_TYPE yalnızca kullanıcı kimlik doğrulaması donanım tarafından zorunlu kılındığında donanımla zorunlu kılınır. Alıcı: Keymaster güven seti ve ilgili kimlik doğrulama anahtarı, güvenilir olması ve hem güvenli hem de gizli bir HMAC anahtarını paylaşması gerekir. kimlik doğrulama jetonlarını doğrulayacaktır. Bkz. Kimlik doğrulama sayfasına göz atın.
- Etiket::ACTIVE_DATETIME, Etiket::hakikat_ verince_EXPIRE_DATETIME, ve Etiket::USAGE_EXPIRE_DATETIME etiketleri ve doğrulanabilir nitelikte bir duvar saatine erişmelerine gerek yoktur. En güvenli donanım sadece güvenli olmayan işletim sisteminin sağladığı saat bilgilerine erişebilir. Etiketlerin yazılımla zorunlu kılındığı anlamına gelir.
- Etiket::origin donanıma bağlı anahtarlar için her zaman donanım listesindedir. Dijital pazarlamanın listesi, daha üst katmanların bir anahtarın donanım destekli olduğunu belirleme yöntemidir.
içe aktarmaAnahtarı
Sürüm: 1, 2, 3
Bu işlev Keymaster 1'de import_key
olarak kullanıma sunuldu
ve Keymaster 3'te yeniden adlandırıldı.
Anahtar materyalini Keymaster donanımına içe aktarır. Anahtar tanım parametreleri ve
çıkış özellikleri, generateKey
için olduğu gibi işlenir.
şu istisnalarla birlikte:
- Etiket::KEY_SIZE ve
Etiket::RSA_PUBLIC_EXPONENT
(yalnızca RSA anahtarları için) gerekli değildir. Sağlanmamışsa
güvenilir sertifika, sağlanan anahtar materyalinden değerleri çıkartır ve
temel özelliklere uygun etiketler ve değerler sunmaktır. Parametreler
anahtar materyalle karşılaştırarak doğrular.
olursa yöntem
ErrorCode::IMPORT_PARAMETER_MISMATCH
değerini döndürür. - Döndürülen Etiket::GU,
KeyOrigin::IMPORTED
ile aynı değere sahiptir.
disaaktarmaanahtarı
Sürüm: 1, 2, 3
Bu işlev Keymaster 1'de export_key
olarak kullanıma sunuldu
ve Keymaster 3'te yeniden adlandırıldı.
Keymaster RSA veya EC anahtar çiftinden ortak anahtar dışa aktarır.
Tag::APPLICATION_ID
, anahtar oluşturma sırasında sağlandıysa veya
içe aktarma işlemi yapılırsa bu yönteme aynı değer
clientId
bağımsız değişken. Aksi takdirde, yöntem
ErrorCode::INVALID_KEY_BLOB
Aynı şekilde
Tag::APPLICATION_DATA
.
oluşturma veya içe aktarma sırasında sağlanmışsa
bu yöntemi appData
bağımsız değişkenine ekleyin.
silKey
Sürüm: 1, 2, 3
Bu işlev Keymaster 1'de delete_key
olarak kullanıma sunuldu
ve Keymaster 3'te yeniden adlandırıldı.
Sağlanan anahtarı siler. Bu yöntem isteğe bağlıdır ve yalnızca Keymaster modülleri tarafından uygulanır.
deleteAllKeys
Sürüm: 1, 2, 3
Bu işlev Keymaster 1'de delete_all_keys
olarak kullanıma sunuldu
ve Keymaster 3'te yeniden adlandırıldı.
Tüm anahtarları siler. Bu yöntem isteğe bağlıdır ve yalnızca uygulanır geri alma direnci sağlayan Keymaster modülleri tarafından oluşturulur.
kaldırma
Sürüm: 3
destroyAttestationIds()
yöntemi, şu işlemler için kullanılır:
yenini devre dışı bırak (isteğe bağlıdır, ancak kesinlikle önerilir)
Kimlik onayı
özelliğini kullanabilirsiniz. TEE, kimlik onayını kalıcı olarak belirleyemiyorsa
çağrıldıktan sonra devre dışı bırakılırsa kimlik onayı,
Bu durumda, bu yöntem hiçbir şey yapmaz ve
ErrorCode::UNIMPLEMENTED
değerini döndürür. Kimlik onayı
destekleniyorsa bu yöntemin uygulanması ve kalıcı olarak devre dışı bırakılması gerekir
kimlik doğrulama girişimlerinin tümü. Yöntem, herhangi bir sayıda
kez. Kimlik onayı kalıcı olarak devre dışı bırakılmışsa yöntem
hiçbir şey yapmaz ve ErrorCode::OK
değerini döndürür.
Bu yöntemin döndürebileceği hata kodları yalnızca şunlardır:
ErrorCode::UNIMPLEMENTED
(kimlik onayı desteklenmiyorsa):
ErrorCode:OK
, ErrorCode::KEYMASTER_NOT_CONFIGURED
veya
güvenli cihazla iletişim kurulamadığını gösteren hata kodlarından birini
donanım.
başla
Sürüm: 1, 2, 3
Belirtilen anahtar için şifreleme işlemini başlatır.
amacı, belirtilen parametrelerle (uygun olduğu şekilde) belirtir ve
update ve finish ile birlikte kullanılan işlem herkese açık kullanıcı adı. İşlem tutma yeri
"meydan okuma" olarak da kullanılır kimlik doğrulaması yapılmış işlemlerde ve bunun için
işlemleri,challenge
kimlik doğrulama jetonu.
Keymaster uygulaması, en az 16 eşzamanlı
anlamına gelir. Anahtar deposu 15 adede kadar veri kullanır, bir tanesi şifre için kullanılabilir
bahsedeceğim. Anahtar Deposu'nda devam eden 15 işlem olduğunda (begin
,
çağrıldı, ancak finish
veya abort
henüz çağrılmadı
çağrıldığında) ve ayın 16'sını başlatmak için bir istek alır.
sayısını azaltmak için son kullanılan işlemde abort
başlatmak için begin
çağrısından önce etkin işlemleri 14'e
Yeni istenen işlem.
Etiket::APPLICATION_ID
veya Etiket::APPLICATION_DATA belirtildi
anahtar oluşturma veya içe aktarma işlemi sırasında, begin
çağrılarına
inParams
bağımsız değişkeninde orijinal olarak belirtilen değerlere sahip etiketler
.
Yetkilendirme yaptırımı
Bu yöntem sırasında aşağıdaki anahtar yetkilendirmeleri
güven seti, uygulama tarafından "donanım tarafından zorunlu kılınan"
özellikleri ve işlemin ortak anahtar işlemi değilse. Ortak anahtar
işlemleri (yani KeyPurpose::ENCRYPT
ve KeyPurpose::VERIFY
),
anahtarların kimlik doğrulaması gerçekleştirilse bile başarılı olabilmesine
karşılanmadığından emin olun.
- Etiket::AMAÇ: Amaç
begin()
çağrısında belirtilen amaçlardan biriyle eşleşmelidir anahtar yetkilendirmelerinde (istenen işlem bir ortak anahtar olmadığı sürece) işlemidir. Belirtilen amaç ve işlem eşleşmiyorsa bir ortak anahtar işlemi söz konusuysabegin
,ErrorCode::UNSUPPORTED_PURPOSE
. Ortak anahtar işlemleri asimetrik şifreleme veya doğrulama işlemlerine izin verir. - Etiket::ACTIVE_DATETIME
Yalnızca güvenilir bir UTC saat kaynağı varsa zorunlu kılınabilir. Öğe
geçerli tarih ve saat etiket değerinden önceyse yöntem,
ErrorCode::KEY_NOT_YET_VALID
- Etiket::SOURCEATION_EXPIRE_DATETIME
Yalnızca güvenilir bir UTC saat kaynağı varsa zorunlu kılınabilir. Öğe
geçerli tarih ve saat, etiketin değerinden daha sonradır ve amacı
KeyPurpose::ENCRYPT
veyaKeyPurpose::SIGN
, yöntemErrorCode::KEY_EXPIRED
değerini döndürür. - Etiket::USAGE_EXPIRE_DATETIME
Yalnızca güvenilir bir UTC saat kaynağı varsa zorunlu kılınabilir. Öğe
geçerli tarih ve saat, etiketin değerinden daha sonradır ve amacı
KeyPurpose::DECRYPT
veyaKeyPurpose::VERIFY
, yöntemErrorCode::KEY_EXPIRED
değerini döndürür. - Etiket::MIN_SECONDS_BETWEEN_OPS
güvenilir bir göreli zamanlayıcıyla karşılaştırıldığında,
gerekir. Son kullanım zamanı artı etiket değeri, geçerli zamandan kısaysa
yöntem
ErrorCode::KEY_RATE_LIMIT_EXCEEDED
değerini döndürür. Bkz. etiket açıklaması ziyaret edin. - Etiket::MAX_USES_PER_BOOT
anahtarın kullanımlarını izleyen güvenli bir sayaçla karşılaştırılır.
ilk çalışma zamanı. Önceki kullanımların sayısı etiket değerini aşarsa
yöntemi
ErrorCode::KEY_MAX_OPS_EXCEEDED
değerini döndürür. - Etiket::USER_SECURE_ID
bu yöntem yalnızca anahtarda
Etiket::AUTH_TIMEOUT.
Anahtarda her ikisi de varsa bu yöntem, geçerli bir
Etiket::AUTH_TOKEN
inParams
. Yetkilendirme jetonunun geçerli olması için aşağıdakilerin tümü şu değerin doğru olması gerekir:- HMAC alanı doğru şekilde doğrulanıyor.
- Aşağıdakilerden en az biri Etiket::USER_SECURE_ID anahtardaki değerler, jeton.
- Anahtarda Etiket::USER_AUTH_TYPE kimlik doğrulama türüyle eşleşen bir kimliktir.
Bu koşullardan herhangi biri karşılanmazsa yöntem
ErrorCode::KEY_USER_NOT_AUTHENTICATED
- Etiket::CALLER_NONCE
çağrının bir tek seferlik rastgele sayı veya başlatma vektörü (IV) belirtmesine olanak tanır. Anahtar
bu etikete sahip değil, ancak arayan kullanıcı tarafından sağlandı
Tag::NONCE kodunu ekleyerek
ErrorCode::CALLER_NONCE_PROHIBITED
döndürüldü. - Etiket::BOOTLOADER_ONLY
anahtarı yalnızca bootloader'ın kullanabileceğini belirtir. Bu yöntem
Bootloader'ın yürütme işlemini bitirdikten sonra yalnızca bootloader'ı içeren bir anahtarla çağrıldığını
ErrorCode::INVALID_KEY_BLOB
değerini döndürür.
RSA anahtarları
Tüm RSA anahtar işlemleri, inParams
ürününde tam olarak bir dolgu modu belirtir.
Belirtilmezse veya birden fazla kez belirtilirse yöntem,
ErrorCode::UNSUPPORTED_PADDING_MODE
RSA imzalama ve doğrulama işlemlerinin yanı sıra RSA şifrelemesi de bir özete ihtiyaç duyar.
ve şifre çözme işlemlerini destekler. Bu durumlarda arayan,
inParams
içinde tam olarak bir özet belirtir. Belirtilmemişse veya belirtilmişse
birden çok kez işlev gördüğünde, yöntem ErrorCode::UNSUPPORTED_DIGEST
değerini döndürür.
Özel anahtar işlemleri (KeyPurpose::DECYPT
ve KeyPurpose::SIGN
)
için özet ve dolgu yetkilendirilmesi gerekir. Bu da anahtar yetkilendirmelerinin
belirtilen değerleri içermesi gerekir. Aksi takdirde yöntem,
ErrorCode::INCOMPATIBLE_DIGEST
.
veya ErrorCode::INCOMPATIBLE_PADDING
uygun şekilde. Ortak anahtar işlemleri
(KeyPurpose::ENCRYPT
ve KeyPurpose::VERIFY
) şununla birlikte izin verilir:
veya dolgu içerebilir.
PaddingMode::NONE
hariç tüm RSA dolgu modları
yalnızca belirli amaçlar için geçerli olur. Özellikle,
PaddingMode::RSA_PKCS1_1_5_SIGN
PaddingMode::RSA_PSS
yalnızca imzalama ve doğrulama desteklerken PaddingMode::RSA_PKCS1_1_1_5_ENCRYPT
ve PaddingMode::RSA_OAEP
yalnızca şifreleme ve şifre çözmeyi destekler.
Yöntem, ErrorCode::UNSUPPORTED_PADDING_MODE
belirtilen mod, belirtilen amacı desteklemiyor.
Dolgu modları ve özetler arasında bazı önemli etkileşimler vardır:
PaddingMode::NONE
, "ham" olduğunu gösterir RSA işlemi gerçekleştirildi. İmzalıyor veya doğrulanıyorsaDigest::NONE
özet için belirtilir. Doldurulmayan şifreleme için özet gerekmez veya şifre çözme.PaddingMode::RSA_PKCS1_1_5_SIGN
dolgusu bir özet gerektiriyor. İlgili içeriği oluşturmak için kullanılan özetDigest::NONE
olabilir; bu durumda Keymaster uygulanması uygun bir PKCS#1 v1.5 imza yapısı oluşturamaz. DigestInfo yapısını ekleyemez. Bunun yerine,0x00 || 0x01 || PS || 0x00 || M
oluşturur; burada M sağlanan mesajdır ve PS, dolgu dizesidir. RSA anahtarının boyutu en az 11 bayt daha büyük olmalıdır, aksi takdirde yöntemErrorCode::INVALID_INPUT_LENGTH
PaddingMode::RSA_PKCS1_1_1_5_ENCRYPT
dolgusu özet gerektirmez.PaddingMode::RSA_PSS
dolgusu bir özet gerektiriyor ve bu özetDigest::NONE
.Digest::NONE
belirtilirse yöntemiErrorCode::INCOMPATIBLE_DIGEST
değerini döndürür. Ayrıca, RSA anahtarının boyutunun çıkıştan en az 2 + D bayt daha büyük olması gerekir özetin bayt cinsinden boyutudur. Burada D özetin boyutudur. Aksi halde yöntemErrorCode::INCOMPATIBLE_DIGEST
değerini döndürür. Tuz boyutu D.PaddingMode::RSA_OAEP
dolgusu bir özet gerektiriyor ve bu özetDigest::NONE
.Digest::NONE
belirtilirse yöntemiErrorCode::INCOMPATIBLE_DIGEST
değerini döndürür.
EC anahtarları
EC anahtar işlemleri, inParams
içinde tam olarak bir dolgu modu belirtir.
Belirtilmezse veya birden fazla kez belirtilirse yöntem
ErrorCode::UNSUPPORTED_PADDING_MODE
değerini döndürür.
Özel anahtar işlemleri (KeyPurpose::SIGN
) için yetkilendirme gerekiyor
yani temel yetkilendirmelerin devreye girmesini
belirtilen değerleri içermesi gerekir. Değilse geri dönün
ErrorCode::INCOMPATIBLE_DIGEST
Ortak anahtar işlemleri
(KeyPurpose::VERIFY
) yetkisiz özet veya dolgu ile kullanılmasına izin verilir.
AES anahtarları
AES anahtar işlemleri, tam olarak bir engelleme modu ve bir dolgu modu belirtir
inParams
içinde. Değerlerden biri belirtilmemişse veya daha fazla belirtilmişse
bir defadan fazla, ErrorCode::UNSUPPORTED_BLOCK_MODE
veya
ErrorCode::UNSUPPORTED_PADDING_MODE
. Belirtilen modların
anahtar tarafından yetkilendirilmişse yöntem,
ErrorCode::INCOMPATIBLE_BLOCK_MODE
veya
ErrorCode::INCOMPATIBLE_PADDING_MODE
.
Engelleme modu BlockMode::GCM
ise inParams
Tag::MAC_LENGTH
belirtir ve
belirtilen değer, 128'den büyük olmayan 8'in katıdır
veya daha küçük bir değer içinde Tag::MIN_MAC_LENGTH
anahtar yetkilendirmeleridir. 128'den büyük veya şunun katı olmayan MAC uzunlukları için:
8, ErrorCode::UNSUPPORTED_MAC_LENGTH
değerini döndürün. Daha az değerler için
anahtarın minimum uzunluğundan fazlaysa ErrorCode::INVALID_MAC_LENGTH
değerini döndürün.
Engelleme modu BlockMode::GCM
veya BlockMode::CTR
ise
belirtilen dolgu modu PaddingMode::NONE
olmalıdır.
BlockMode::ECB
veya BlockMode::CBC
için mod şu olabilir:
PaddingMode::NONE
veya PaddingMode::PKCS7
. Dolgu modu
bu koşulları karşılamıyorsa ErrorCode::INCOMPATIBLE_PADDING_MODE
değerini döndürün.
Engelleme modu BlockMode::CBC
, BlockMode::CTR
ise
ya da BlockMode::GCM
ise bir başlatma vektörü veya tek seferlik rastgele sayı gerekir.
Çoğu durumda, arayanlar damardan damar veya tek seferlik rastgele sayı vermemelidir. Böyle bir durumda,
Keymaster uygulaması rastgele bir IV veya tek seferlik rastgele sayı oluşturur ve bunu
outParams
konumunda Tag::NONCE.
CBC ve TO IV'ler 16 bayttır. GCM nonce'lar 12 bayttır. Anahtar
yetkilendirmeler şunları içerir:
Etiket::CALLER_NONCE,
arayan kişi,
Etiket::NONCE
inParams
içinde. Tek seferlik rastgele sayı sağlanırsa
Etiket::CALLER_NONCE
yetkili değil, ErrorCode::CALLER_NONCE_PROHIBITED
değerini döndürün.
Tek seferlik rastgele sayı sağlanmazsa
Etiket::CALLER_NONCE
yetkilendirildi, rastgele bir IV/nonce oluşturun.
HMAC anahtarları
HMAC anahtar işlemleri, inParams
bölgesinde Tag::MAC_LENGTH
öğesini belirtir.
Belirtilen değer, şundan büyük olmayan 8'in bir katı olmalıdır:
özet uzunluğu veya Tag::MIN_MAC_LENGTH
değerinden küçük
anahtar yetkilendirmeleri girmelisiniz. Özet uzunluğundan daha uzun MAC uzunlukları veya
8'in katları olmayanlar için ErrorCode::UNSUPPORTED_MAC_LENGTH
değerini döndürün.
Anahtarın minimum uzunluğundan kısa değerler için şunu döndürün:
ErrorCode::INVALID_MAC_LENGTH
güncelleme
Sürüm: 1, 2, 3
begin ile başlayan devam eden bir işlemde işlenecek veriler sağlar.
İşlem, operationHandle
parametresiyle belirtilir.
Tampon işleme konusunda daha fazla esneklik sağlamak için bu yöntemin uygulanması
daha az veri tüketme seçeneğine sahip olmalıdır. Arayan
döngüden sorumludur ve sonraki çağrılarda diğer verileri iletmektir. İlgili içeriği oluşturmak için kullanılan
tüketilen giriş miktarı, inputConsumed
parametresinde döndürülür.
işlemi artık kabul edemez; Sıfırdan fazla bayt sağlanırsa ve
arayanlar tarafından bir hata olarak kabul edilir ve işlemi iptal eder.
Uygulamalar ayrıca, anahtar/değer çiftlerinin bir sonucu olarak güncelleyin. Bu yalnızca şifreleme ve şifre çözme işlemleriyle ilgilidir, çünkü İmzalama ve doğrulama işlemleri tamamlanana kadar veri döndürmez. Verileri arabelleğe almak yerine mümkün olduğunca erken geri gönderin.
Hata işleme
Bu yöntem ErrorCode::OK
dışında bir hata kodu döndürürse
işlem iptal edilir ve işlem işleyici geçersiz kılınır. Herhangi biri
herkese açık kullanıcı adları için
finish veya iptal edin
ErrorCode::INVALID_OPERATION_HANDLE
değerini döndürür.
Yetkilendirme yaptırımı
Anahtar yetkilendirmesinin zorunlu kılınması esas olarak başlangıçta gerçekleştirilir. Bunun tek istisnası, anahtarda şunlardır:
- Bir veya daha fazla Etiket::USER_SECURE_IDs ve
- Etiket::AUTH_TIMEOUT yok
Bu durumda, anahtar işlem başına yetkilendirme gerektirir ve
yöntemi bir Etiket:AUTH_TOKEN alır.
inParams
bağımsız değişkenine ekleyin. HMAC, jetonun geçerli olduğunu ve jetonun bulunduğunu doğrular
eşleşen güvenli bir kullanıcı kimliği, anahtarın
Etiket::USER_AUTH_TYPE,
ve
isteyebilirsiniz. Bu koşullar karşılanmazsa geri dön
ErrorCode::KEY_USER_NOT_AUTHENTICATED
Arayan, güncelleme işlemini yapmak ve her çağrıya bittir. Uygulama sırasında jetonun istenirse yalnızca bir kez doğrulanması yeterlidir.
RSA anahtarları
Digest::NONE
ile yapılan imzalama ve doğrulama işlemleri için,
bu yöntem tüm blokun tek bir girişte imzalanmasını veya doğrulanmasını kabul eder
güncelleyin. Engellemenin yalnızca bir kısmını kaplamayabilir. Ancak, arayan
verileri birden çok güncellemede sağlamayı seçerse bu yöntem kabul eder.
Arayan kişi imzalamak için kullanılabilecekten daha fazla veri sağlarsa (
RSA anahtar boyutunu aşıyorsa ErrorCode::INVALID_INPUT_LENGTH
değerini döndürün.
ECDSA anahtarları
Digest::NONE
ile yapılan imzalama ve doğrulama işlemleri için,
bu yöntem tüm blokun tek bir girişte imzalanmasını veya doğrulanmasını kabul eder
güncelleyin. Bu yöntem, engellemenin yalnızca bir kısmını kullanmayabilir.
Bununla birlikte, arayan kişi verileri birden fazla güncellemede sağlamayı seçerse bu yöntemi kabul eder. Arayan kişi imzalamak için daha fazla veri sağlıyorsa bu işlemden sonra veriler sessizce kesilir. (Bu, benzer RSA işlemlerinde sağlanan aşırı verilerin işlenmesine neden olur. Bunun nedeni eski istemcilerle uyumludur.)
AES anahtarları
AES GCM modu "ilişkili kimlik doğrulama verilerini" destekler, sağlayan
Etiket::ASSOCIATED_DATA
etiketi inParams
bağımsız değişkeninde.
İlişkili veriler, tekrarlanan aramalarda sağlanabilir (
veriler tek bir blokta gönderilemeyecek kadar büyük) ancak her zaman verilerden önce geliyor
şifresini çözemez. Bir güncelleme araması, ilişkili her iki veriyi de alabilir
ve verilerin şifrelenmesi/şifresini çözmek için kullanılır, ancak sonraki güncellemeler
dışı verilerdir. Arayan, aramadan sonra bir güncelleme aramasıyla ilişkilendirilmiş veriler sağlıyorsa
şifrelenecek/şifresini çözülecek verileri içeren URL'ler için ErrorCode::INVALID_TAG
hatası döndürür.
GCM şifrelemesi için etiket, şifrelenmiş metne şu şekilde eklenir:
finish olarak ayarlayın. Şifre çözme işlemi sırasında,
Sonuncuya kadar sağlanan verilerin Tag::MAC_LENGTH
baytı
güncelleme çağrısı, etikettir.
update bunun son çağrı olup olmadığını bilemez.
Etiket uzunluğu hariç tüm verileri işler ve olası etiket verilerini arabelleğe alır
bitti.
tamamla
Sürüm: 1, 2, 3
Başla ile başlayan devam eden bir işlemi bitirir. Google tarafından sağlanan, henüz işlenmemiş tüm verileri güncellemeler var.
Bu yöntem, işlemde çağrılan son yöntem olduğundan döndürüldüğünden emin olun.
İster başarılı bir şekilde tamamlanır ister bir hata döndürürse bu yöntem,
işlemi, dolayısıyla sağlanan işlem herkese açık kullanıcı adını geçersiz kılar. Herhangi biri
herkese açık kullanıcı adını bu yöntemle veya update ya da
abort, ErrorCode::INVALID_OPERATION_HANDLE
değerini döndürür.
İmzalama işlemleri, çıkış olarak imzayı döndürür. Doğrulama işlemleri
signature
parametresindeki imzayı kabul eder ve herhangi bir çıkış döndürmez.
Yetkilendirme yaptırımı
Anahtar yetkilendirmesinin zorunlu kılınması temel olarak şu ülkede gerçekleştirilir: begin. Bunun tek istisnası, anahtarda şunlardır:
- Bir veya daha fazla Etiket::USER_SECURE_IDs ve
- Bir Etiket::AUTH_TIMEOUT
Bu durumda, anahtar işlem başına yetkilendirme gerektirir ve
yöntemi bir Etiket:AUTH_TOKEN alır.
inParams
bağımsız değişkenine ekleyin. HMAC, jetonun
geçerlidir ve eşleşen bir güvenli kullanıcı kimliği içerir, anahtarın
Etiket::USER_AUTH_TYPE ve
mevcut işlemin
isteyebilirsiniz. Bu koşullar karşılanmazsa geri dön
ErrorCode::KEY_USER_NOT_AUTHENTICATED
Arayan, her çağrıya kimlik doğrulama jetonunu güncelleyin ve tamamlayın. Uygulama sırasında jetonun istenirse yalnızca bir kez doğrulanması yeterlidir.
RSA anahtarları
Dolgu moduna bağlı olarak bazı ek koşullar:
PaddingMode::NONE
Doldurulmamış imzalama ve şifreleme işlemleri için sağlanan veriler anahtardan kısaysa, veriler sıfır ile doldurulur. soluna girin. Veriler anahtarla aynı uzunluktaysa ancak sayısal olarak daha büyük,ErrorCode::INVALID_ARGUMENT
değerini döndürün. Örneğin, doğrulama ve şifre çözme işlemlerinde olduğu gibi, veriler de tam olarak seçeceğiz. Aksi takdirdeErrorCode::INVALID_INPUT_LENGTH.
değerini döndürünPaddingMode::RSA_PSS
PSS dolgulu imza işlemleri için PSS takviyesi, ileti özetinin boyutudur ve rastgele oluşturulur. Tag::DIGEST ile belirtilen özet başlangıçtakiinputParams
işlevinde PSS özeti olarak kullanılır algoritması olarak kullanılmaktadır.PaddingMode::RSA_OAEP
Özet Etiket::DIGEST kategorisinde BaşlangıçtakiinputParams
OAEP olarak kullanılır özet algoritmasını destekler ve MGF1 özet algoritması olarak SHA1 kullanılır.
ECDSA anahtarları
Doldurulmamış imzalama veya doğrulama için sağlanan veriler çok uzunsa bu verileri kısaltın. somut olarak ortaya koyar.
AES anahtarları
Engelleme moduna bağlı olarak bazı ek koşullar:
BlockMode::ECB
veyaBlockMode::CBC
. DolguPaddingMode::NONE
ise ve veri uzunluğu, AES blok boyutunun katı değildir,ErrorCode::INVALID_INPUT_LENGTH
. DolguPaddingMode::PKCS7
, verileri PKCS#7 spesifikasyonuna göre doldurun. PKCS#7'nin ek bir dolgu bloğu eklenmesini önerdiğini unutmayın veriler blok uzunluğunun katıysa.BlockMode::GCM
Şifreleme sırasında, işlemeden sonra tümü düz metinler, etiketi hesaplama (Etiket::MAC_LENGTH bayt) ve döndürülen şifrelenmiş metne ekleyin. Şifre çözme sırasında, son Etiket::MAC_LENGTH bayt olarak ifade eder. Etiket doğrulaması başarısız olursaErrorCode::VERIFICATION_FAILED
bırak yapma
Sürüm: 1, 2, 3
Devam eden işlemi iptal eder. İptal etme çağrısından sonra geri dönün
Şunun için ErrorCode::INVALID_OPERATION_HANDLE
:
sağlanan işlem herkese açık kullanıcı adını update ile
bitebilir veya iptal edebilirsiniz.
get_supported_algorithms
Sürüm: 1
Keymaster donanımı tarafından desteklenen algoritmaların listesini döndürür hakkında bilgi edindiniz. Bir yazılım uygulaması boş bir liste döndürür; hibrit komutu yalnızca şuna ait algoritmaları içeren bir liste döndürür: donanım tarafından desteklendiğini unutmayın.
Keymaster 1 uygulamaları RSA, EC, AES ve HMAC'yi destekler.
get_supported_block_modes
Sürüm: 1
Keymaster donanımı tarafından desteklenen AES blok modlarının listesini döndürür en iyi uygulamaları izleyeceksiniz.
Engelleme şifresi olmayan RSA, EC ve HMAC için yöntem,
boş listeye ekleyin. Geçersiz amaçlar, yöntemin
iade ErrorCode::INVALID_PURPOSE
.
Keymaster 1 uygulamaları AES için ECB, CBC, TO ve GCM'yi destekler şifreleme ve şifre çözme.
get_supported_fill_modes
Sürüm: 1
Keymaster donanımı tarafından desteklenen dolgu modlarının listesini döndürür en iyi uygulamaları izleyeceksiniz.
HMAC ve EC'de dolgu kavramı olmadığından yöntem boş bir liste döndürür
kabul edersiniz. Geçersiz amaçlar, yöntemin döndürülmesine neden olmalıdır
ErrorCode::INVALID_PURPOSE
RSA için Keymaster 1 uygulamaları şunları destekler:
- Dolgusuz şifreleme, şifre çözme, imzalama ve doğrulama. Pedsiz için ve imzalaması gerektiğini unutmayın. İleti, herkese açık modülün uygulamanın sol üst kısmı sıfırlarla tamamlanmalıdır. Doldurulmamış şifre çözme ve giriş uzunluğu, herkese açık modül boyutuyla eşleşmelidir.
- PKCS#1 v1.5 şifreleme ve imzalama dolgu modları
- Minimum tuz uzunluğu 20 olan PSS
- OAEP
ECB ve CBC modlarında AES için Keymaster 1 uygulamaları dolgu ve PKCS#7-dolgu. TO ve GCM modları yalnızca dolguyu desteklemez.
get_supported_digests
Sürüm: 1
Keymaster donanımı tarafından desteklenen özet modlarının listesini döndürür en iyi uygulamaları izleyeceksiniz.
AES modları, özetleme işlemini desteklemez veya gerektirmez. Bu nedenle, yöntem boş bir bu listeye eklenir.
Keymaster 1 uygulamaları, tanımlanan özet. Uygulamalar SHA-256 sağlar ve MD5, SHA1, SHA-224, SHA-256, SHA384 ve SHA512 (tanımlanmış özetlerin tamamı).
get_supported_import_formats
Sürüm: 1
Keymaster donanımı tarafından desteklenen içe aktarma biçimlerinin listesini döndürür uygulanmasıdır.
Keymaster 1 uygulamaları, PKCS#8 biçimini destekler (şifre olmadan koruması) ve RAW içe aktarmayı destekler AES ve HMAC anahtar materyali.
get_supported_export_formats
Sürüm: 1
Keymaster donanımı tarafından desteklenen dışa aktarma biçimlerinin listesini döndürür uygulanmasıdır.
Keymaster1 uygulamaları, RSA'yı dışa aktarmak için X.509 biçimini destekler ve EC ortak anahtarları. Özel anahtarların veya asimetrik anahtarların dışa aktarılması desteklenmez.
Tarihi işlevler
Anahtar Yöneticisi 0
Aşağıdaki işlevler orijinal Keymaster 0 tanımına aittir. Onlar Keymaster 1 struct keymaster1_device_t içinde mevcuttu. Ancak Keymaster'da 1.0 uygulanmadı ve işlev işaretçileri NULL değerine ayarlandı.
generate_keypair
import_keypair
get_keypair_public
delete_keypair
delete_all
sign_data
Verify_data
Anahtar Yöneticisi 1
Aşağıdaki işlevler Keymaster 1 tanımına aittir, ancak yukarıda listelenen Keymaster 0 işlevleriyle birlikte Keymaster 2'de kaldırılır.
get_supported_algorithms
get_supported_block_modes
get_supported_padding_modes
get_supported_digests
get_supported_import_formats
get_supported_export_formats
Anahtar Yöneticisi 2
Aşağıdaki işlevler Keymaster 2 tanımına aittir, ancak yukarıda listelenen Keymaster 1 işlevleriyle birlikte Keymaster 3'te kaldırılır.
configure