static createDataKey() {
        return Buffer.from(crypto.randomBytes(this._keySize()));
    }
Creates data key to encrypt and decrypt the actual data (which data
    key is ciphered and deciphered by the appliance). The encrypted data key
    is stored in the object's metadata. We also use this function to create
    the bucket key for the file and in memory implementations.
    @return {buffer} - random key