Procedimentos: trabalhar com definições de encriptaçãoHow-to: work with encryption settings

Este tópico descreve os nossos pacotes de encriptação e mostra como é possível utilizar alguns recortes de código.This topic orients you to our encryption packages and shows some code snips for their use.

Suporte para AES 256, a nova predefiniçãoSupport for AES 256, the new default

Nenhum código adicional é necessário para utilizar a encriptação baseada em AES 256, dado que se trata da nova predefinição, partindo do princípio de que compila com o SDK RMS 2.1, atualização de março de 2015, ou posterior.No additional code is required to use AES 256 based encryption as it is the new default, assuming you build against the RMS SDK 2.1 March 2015 update or later. Aconselhamo-lo a considerar a atualização das suas aplicações com esta versão devido às vantagens de segurança adicionais da AES 256.We encourage you to seriously consider updating your applications with this release for the additional security benefits of AES 256.

Importante

O suporte para consumo de ficheiros protegidos por AES 256 já existia desde a versão de outubro de 2014.Support for consumption of AES 256 protected files has existed since the October 2014 release. Se estiver a executar aplicações criadas com uma versão do SDK anterior à de outubro de 2014, esta atualização irá interromper a sua aplicação.If you are running applications built with a version of the SDK from before October 2014, this update will break your application. Certifique-se de que os clientes das aplicações que está a criar estão a utilizar o SDK atualizado ou estão dispostos a atualizar imediatamente para a versão mais recente da aplicação.Please make sure that customers of the applications you are building, are either using the updated SDK, or are willing to immediately update to the most recent version of your application.

Suporte de encriptação de APIAPI encryption support

A partir da atualização de março de 2015, incorporamos os três sinalizadores seguintes na nossa API e nos respetivos pacotes de encriptação associados:Beginning with the March 2015 update, we have incorporated the following three flags into our API and their associated encryption packages:

  • IPC_ENCRYPTION_PACKAGE_AES256_CBC4KIPC_ENCRYPTION_PACKAGE_AES256_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_CBC4KIPC_ENCRYPTION_PACKAGE _AES128_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_ECB (também conhecido como Algoritmos Preteridos)IPC_ENCRYPTION_PACKAGE _AES128_ECB (Also known as, Deprecated Algorithms)

Os sinalizadores de pacote de encriptação (consulte Encriptação preferencial) podem ser utilizados em conjunto com o sinalizador Propriedade da Licença – IPC_LI_PREFERRED_ENCRYPTION_PACKAGE.The encryption package flags, see Preferred encryption, can be used in conjunction with the, License Property flag - IPC_LI_PREFERRED_ENCRYPTION_PACKAGE.

Seguem-se alguns fragmentos de código simples que demonstram como utilizar a nova propriedade de licença.Following are some simple code snippets that demonstrates how to use the new license property.

Algoritmos PreteridosDeprecated Algorithms

Já não expomos o sinalizador IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS na nossa API.We are no longer exposing the IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS flag in our API. Isto significa que as aplicações futuras vão deixar de compilar se fizerem referência a este sinalizador, mas as aplicações já criadas que o utilizam vão continuar a funcionar, uma vez que respeitamos o sinalizador em privado no código de API.This means that future applications will no longer compile if they reference this flag, but applications already built using it will continue to work since we honor the flag privately in the API code.

Para aproveitar ainda as vantagens do sinalizador de algoritmos de encriptação preterido antigo, basta alterar um sinalizador.Getting the benefit of the old deprecated encryption algorithms flag can still be achieved simply by changing one flag. Consulte os seguintes fragmentos de código para obter exemplos.See the following code snippets for an examples.

Proteger Ficheiros com AES 256 CBC4KProtect Files with AES 256 CBC4K

Não são necessárias alterações no código, AES 256 CBC4K é a predefinição.No change in code needed, AES 256 CBC4K is the default.

C++

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

Proteger Ficheiros com AES 128 CBC4KProtect Files with AES-128 CBC4K

C++

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_CBC4K;

hr = IpcSetLicenseProperty(pLicenseHandle,
                       false,
                       IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                       &dwEncryptionMode);

Proteger Ficheiros com AES-128 ECB (Algoritmos Preteridos)Protect Files with AES-128 ECB (Deprecated Algorithms)

Este exemplo mostra também a nova forma de suportar algoritmos preteridos.This sample also shows the new way of supporting deprecated algorithms.

C++

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_ECB;

hr = IpcSetLicenseProperty(pLicenseHandle,
                       false,
                       IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                       &dwEncryptionMode);

ComentáriosComments

Antes de inserir um comentário, pedimos-lhe que reveja as nossas Regras básicas.Before commenting, we ask that you review our House rules.