IMPORTENCRYPTIONKEY

Points to a password protected file that contains the key on the current server.

When encrypting or decrypting data in Dynamics NAV, an encryption key is used. Dynamics NAV uses a single key per tenant and every tenant will have a different key. Keys can be created or imported if one exists already, as may be the case if upgrading or migrating a system from one set of hardware to another. The IMPORTENCRYPTIONKEY function allows an administrator to specify a file (password protected) which contains a key and imports it to the current Microsoft Dynamics NAV Server.

Note

In systems with multiple Microsoft Dynamics NAV Server instances, you must run the IMPORTENCRYPTIONKEY function for each instance.

Important

Use the System Restore permission set in Dynamics NAV to allow importing the encryption key.

Syntax

IMPORTENCRYPTIONKEY(filename, pwd)  

Parameters

filename
Value: String

The file that contains the encryption key.

pwd
Value: String

The password that protects the file.

Return Value

Type: Boolean

true if the encryption key was imported; otherwise, false.

If you omit this optional return value and the encryption key cannot be imported successfully, then a run-time error occurs. If you include the return value, then you must handle any errors.

Exceptions

If the import key file cannot be imported, the following error will be displayed: Import Failed. The provided encryption key file contains invalid data and could not be imported.

Example

This code example uses the ENCRYPTIONENABLED and ENCRYPTIONKEYEXISTS functions to do a check before importing the encryption key.

This example requires that you create a text constant ServerFileName.

IF ENCRYPTIONENABLED THEN  
        IF ENCRYPTIONKEYEXISTS THEN  
          IF NOT CONFIRM('Encryption has been enabled and the server already contains an encryption key.\'  
          + 'Importing a key will overwrite any existing key and may result in lost data.\\'  
          + 'Do you wish to continue?') THEN  
            EXIT  
        ELSE  
          IF NOT CONFIRM('Importing a key different from the already configured key will result in data corruption.\\'  
          + 'Do you wish to continue?') THEN  
            EXIT  

      IF NOT UPLOAD('Upload encrypted key','','Encrypted Key File (*.ekey)|*.ekey','ExportedKey.ekey',ServerFileName) THEN  
        EXIT;  

      IMPORTENCRYPTIONKEY(ServerFileName,'This is my personal secret');  
      ERASE(ServerFileName);  

See Also

Encryption Key Management
EXPORTENCRYPTIONKEY
Encryption Functions