Encryption Algorithm

NOTE

The initial APIs of this module are supported since API version 3. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import cipher from '@system.cipher'

cipher.rsa

rsa(Object): void

Encrypts or decrypts data using RSA.

System capability: SystemCapability.Security.Cipher

Parameters

Name Type Mandatory Description
action string Yes Action to perform. The options are as follows:
- encrypt
- decrypt
text string Yes Text to be encrypted or decrypted.
The text to be encrypted must be common text that meets the following requirement:
Maximum text length = Key length/8 - 66
For example, if the key is of 1024 bytes, the text to be encrypted cannot exceed 62 bytes (1024/8 -66 = 62).
The text to be decrypted must be binary text encoded in Base64. The default format is used for Base64 encoding.
key string Yes RSA key. The key is used as a public key in encryption and a private key in decryption.
transformation string No RSA padding. The default value is RSA/None/OAEPWithSHA256AndMGF1Padding.
success Function No Called when data is encrypted or decrypted successfully.
fail Function No Called when data fails to be encrypted or decrypted.
complete Function No Called when the execution is complete.

Example

export default {    
  rsa() {        
    cipher.rsa({            
      // Encrypt data.           
      action: 'encrypt',            
      // Text to be encrypted.           
      text: 'hello',            
      // Base64-encoded public key used for encryption.           
      key: 
     'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx414QSP3RsYWYzf9mkBMiBAXo\n' + 
     '6S7Lpva1fKlcuVxjoFC1iMnzD4mC0uiL4k5MNi43J64c7dbqi3qAJjdAtuwQ6NZJ\n' + 
     '+Enz0RzmVFh/4yk6lmqRzuEFQqhQqSZzaLq6sq2N2G0Sv2Xl3sLvqAfe2HNm2oBw\n' +
     'jBpApTJ3TeneOo6Z5QIDAQAB',  
      success: function(data) {                
        console.log(`Handling successful:${data.text}`);          
      },            
      fail: function(data, code) {               
        console.log(`### Failed to encrypt cipher.rsa ### ${code}:${data}`); 
      },
      complete: function() {
        console.log(`operation complete!`);
      }
      });        
      cipher.rsa({            
        // Decrypt data.           
        action: 'decrypt',            
        // Text to be decrypted, which is binary text encoded in Base64. The decrypted text is "hello".           
        text:            
       'EPeCFPib6ayKbA0M6oSywARvFZ8dFYfjQv3nY8ikZGtS9UHq2sLPvAfpeIzggSiCxqbWeCftP1XQ\n' +
       'Sa+jEpzFlT1qoSTunBbrYzugPTajIJDTg6R1IRsF/J+mmakn0POVPvi4jCo9wqavB324Bx0Wipnc\n' +
       'EU5WO0oBHo5l4x6dTpU=',           
           // Base64-encoded private key used for decryption.           
         key:            
        'MIICXgIBAAKBgQCx414QSP3RsYWYzf9mkBMiBAXo6S7Lpva1fKlcuVxjoFC1iMnz\n' +
        'D4mC0uiL4k5MNi43J64c7dbqi3qAJjdAtuwQ6NZJ+Enz0RzmVFh/4yk6lmqRzuEF\n' +
        'QqhQqSZzaLq6sq2N2G0Sv2Xl3sLvqAfe2HNm2oBwjBpApTJ3TeneOo6Z5QIDAQAB\n' +
        'AoGBAKPNtoRQcklxqo+2wQP0j2m3Qqnib1DggjVEgb/8f/LNYQSI3U2QdROemryU\n' +
        'u3y6N3xacZ359PktTrRKfH5+8ohmHGhIuPAnefp6bLvAFUcl4t1xm74Cow62Kyw3\n' +
        'aSbmuTG98dxPA1sXD0jiprdtsq2wQ9CoKNyY7/d/pKoqxNuBAkEA4GytZ60NCTj9\n' +
        'w24jACFeko5YqCFY/TTLoc4SQvWtFMnimRPclLZhtUIK0P8dib71UFedx+AxklgL\n' +
        'A5gjcfo+2QJBAMrqiwyCh3OQ5DhyRPDwt87x1/jg5fy4hhete2ufSf2FoQCVqO+w\n' +
        'PKoljdXmJeS6rGgzGibstuHLrP3tcIho4+0CQD3ZFWzF/xq0jxKlrpWhnJuNCRfE\n' +
        'oO6e9yNvVA8J/5oEDSOcmqSNIp4+RhbUx8InUxnCG6Ryv5aSFu71pYcKrPkCQQCL\n' +
        'RUGcm3ZGTnslduB0knNF+V2ndwzDUQ7P74UXT+PjurTPhujFYiuxCEd6ORVnEOzG\n' +
        'M9TORIgdH8MjIbWsGnndAkEAw9yURDaorE8IYPLF2IEn09g1uzvWPs3phDb6smVx\n' + 
        '8GfqIdUNf+aCG5TZK/kXBF1sqcsi7jXMAf4jBlejVbSVZg==',
         success: function(data) {                
           console.log(`Handling successful:${data.text}`);          
         },            
         fail: function(data, code) {               
           console.log(`### Failed to encrypt cipher.rsa ### ${code}:${data}`); 
         },
         complete: function() {
           console.log(`operation complete!`);
         }        
       });    
   }
}

cipher.aes

aes(Object): void

Encrypts or decrypts data using AES.

System capability: SystemCapability.Security.Cipher

Parameters

Name Type Mandatory Description
action string Yes Action to perform. The options are as follows:
- encrypt
- decrypt
text string Yes Text to be encrypted or decrypted.
The text to be encrypted must be common text. The text to be decrypted must be binary text encoded in Base64. The default format is used for Base64 encoding.
key string Yes Key used for encryption or decryption. It is a string encoded in Base64.
transformation string No Encryption mode and padding of the AES algorithm. The default value is AES/CBC/PKCS5Padding.
iv string No Initialization vector (IV) for AES-based encryption and decryption. The value is a string encoded in Base64. The default value is the key value.
ivOffset string No Offset of the IV for AES-based encryption and decryption. The default value is 0, which is the only value supported.
ivLen string No Length of the IV, in bytes. This field is reserved. The default value is 16, which is the only value supported.
success Function No Called when data is encrypted or decrypted successfully.
fail Function No Called when data fails to be encrypted or decrypted.
complete Function No Called when the execution is complete.

Example

export default {    
  aes() {        
    cipher.aes({            
      // Encrypt data.           
      action: 'encrypt',            
      // Text to be encrypted.           
      text: 'hello',            
      // Base64-encoded key.           
      key: 'NDM5Qjk2UjAzMEE0NzVCRjlFMkQwQkVGOFc1NkM1QkQ=',            
      transformation: 'AES/CBC/PKCS5Padding',            
      ivOffset: '0',            
      ivLen: '16',            
      success: function(data) {                
        console.log(`Handling successful:${data.text}`);          
        },            
      fail: function(data, code) {               
        console.log(`### Failed to encrypt cipher.rsa ### ${code}:${data}`); 
        },
      complete: function() {
        console.log(`operation complete!`);
      }
    });        
    cipher.aes({            
      // Decrypt data.           
      action: 'decrypt',            
      // Text to be decrypted, which is binary text encoded in Base64.           
      text: '1o0kf2HXwLxHkSh5W5NhzA==',            
       // Base64-encoded key.           
       key: 'NDM5Qjk2UjAzMEE0NzVCRjlFMkQwQkVGOFc1NkM1QkQ=',            
       transformation: 'AES/CBC/PKCS5Padding',            
       ivOffset: '0',            
       ivLen: '16',            
       success: function(data) {                
         console.log(`Handling successful:${data.text}`);          
        },            
       fail: function(data, code) {               
         console.log(`### Failed to decrypt cipher.rsa ### ${code}:${data}`); 
       },
       complete: function() {
         console.log(`operation complete!`);
        }
     });        
    });    
  }
}