A API KeyMint (antes Keymaster) usa muito tags de autorização, que são pares nome-valor. Cada tag possível tem:
- Um nome de enumeração com valor associado
- Um tipo associado (por exemplo, número inteiro, bytes, data, enum), que inclui uma indicação de se vários valores são permitidos
Por exemplo, a tag com o nome
  Tag::BLOCK_MODE
tem um valor de enumeração de base 4 e um marcador de tipo TagType::ENUM_REP
que indica que o valor associado é uma enumeração repetível (neste
caso, BlockMode).
As tags têm uma função dupla na API:
- Como parâmetros de uma operação realizada na API. Por exemplo, o Tag::MAC_LENGTHem uma operação de assinatura HMAC indica o comprimento do HMAC solicitado.
- Como características principais, valores que estão permanentemente vinculados a uma chave específica (ou seja, incluídos no blob de chave). Por exemplo, o Tag::EC_CURVEindica para qual curva elíptica uma chave é. Cada característica principal está associada a um nível de segurança que indica qual parte do sistema controla o atributo:- Uma característica principal com nível de segurança TRUSTED_ENVIRONMENTouSTRONGBOXé aplicada no hardware seguro.
- Uma característica importante com nível de segurança SOFTWAREouKEYSTOREé aplicada apenas pelo serviço de sistemakeystore2. Portanto, ela não é resiliente a comprometimento do SO.
 
- Uma característica principal com nível de segurança 
Muitas tags atuam como parâmetros de características principais:
- As principais características indicam o conjunto de parâmetros permitidos para uma chave, por exemplo:- O Tag::PURPOSEde uma chave ECDSA pode incluirSIGNeAGREE_KEY.
- O Tag::BLOCK_MODEde uma chave AES pode incluir os modos ECB, CBC e CTR.
 
- O 
- Uma solicitação begin()inclui um valor de parâmetro específico para a operação, por exemplo:- begin()tem um parâmetro de finalidade explícito que precisa corresponder a um dos valores- Tag::PURPOSEdas características principais.
- begin()para uma operação AES precisa incluir um único valor para- Tag::BLOCK_MODEno campo- params, que precisa corresponder a um dos valores nas características da chave.
 
Essa função dupla é particularmente relevante para a coleta de tags transmitidas como keyParams em uma operação de geração ou importação de chaves.
- Algumas das tags funcionam como parâmetros para a própria operação de geração de chaves. Por exemplo, a tag Tag::CERTIFICATE_SUBJECTafeta apenas o processo de geração de chaves (assimétricas), controlando um campo no certificado X.509 retornado.
- Outras tags são vinculadas à chave recém-gerada como características principais e são encapsuladas no keyblob retornado para que fiquem permanentemente associadas à chave.
Informações detalhadas sobre valores de tag podem ser encontradas nas seguintes especificações de interface HAL:
- KeyMint: todas as tags são definidas
    em Tag.aidlna ramificação de lançamento relevante do Android.
- Keymaster: as tags são definidas
  em platform/hardware/interfaces/keymaster/keymaster-version/types.halpara cadakeymaster-versionrespectivo, como3.0/types.halpara Keymaster 3 e4.0/types.halpara Keymaster 4. Para o Keymaster 2 e versões anteriores, as tags são definidas emplatform/hardware/libhardware/include/hardware/keymaster_defs.h.
