MASTG-KNOW-0067: CommonCrypto, SecKey e Bibliotecas Wrapper

A classe mais comumente utilizada para operações criptográficas é a CommonCrypto, que é integrada ao runtime do iOS. A funcionalidade oferecida pelo objeto CommonCrypto pode ser melhor compreendida ao analisar o código-fonte do arquivo de cabeçalho:

  • O CommonCryptor.h fornece os parâmetros para operações criptográficas simétricas.
  • O CommonDigest.h fornece os parâmetros para algoritmos de hash.
  • O CommonHMAC.h fornece os parâmetros para operações HMAC suportadas.
  • O CommonKeyDerivation.h fornece os parâmetros para funções KDF suportadas.
  • O CommonSymmetricKeywrap.h fornece a função usada para encapsular uma chave simétrica com uma chave de criptografia de chave (Key Encryption Key).

Infelizmente, a CommonCryptor carece de alguns tipos de operações em suas APIs públicas, como: o modo GCM está disponível apenas em suas APIs privadas. Consulte seu código-fonte. Para isso, é necessário um cabeçalho de vinculação adicional ou podem ser usadas outras bibliotecas wrapper.

Em seguida, para operações assimétricas, a Apple fornece a SecKey. A Apple oferece um guia útil em sua Documentação do Desenvolvedor sobre como usar isso.

Como observado anteriormente: existem bibliotecas wrapper para ambos os casos, a fim de fornecer conveniência. Bibliotecas típicas que são usadas incluem, por exemplo: