コード例 #1
0
// IThorSlaveActivity
void CDiskReadSlaveActivityBase::init(MemoryBuffer &data, MemoryBuffer &slaveData)
{
    subfileLogicalFilenames.kill();
    partDescs.kill();
    data.read(logicalFilename);
    unsigned subfiles;
    data.read(subfiles);
    unsigned s=0;
    for (; s<subfiles; s++)
    {
        StringAttr subfile;
        data.read(subfile);
        subfileLogicalFilenames.append(subfile);
    }
    unsigned parts;
    data.read(parts);
    if (parts)
    {
        deserializePartFileDescriptors(data, partDescs);
        unsigned encryptedKeyLen;
        void *encryptedKey;
        helper->getEncryptKey(encryptedKeyLen, encryptedKey);
        if (0 != encryptedKeyLen) 
        {
            bool dfsEncrypted = partDescs.item(0).queryOwner().queryProperties().getPropBool("@encrypted");
            if (dfsEncrypted) // otherwise ignore (warning issued by master)
                eexp.setown(createAESExpander256(encryptedKeyLen, encryptedKey));
            memset(encryptedKey, 0, encryptedKeyLen);
            free(encryptedKey);
        }
    }
}
コード例 #2
0
bool CTransformer::setPartition(RemoteFilename & remoteInputName, offset_t _startOffset, offset_t _length, bool compressedInput, const char *decryptKey)
{
    CTransformerBase::setPartition(remoteInputName, _startOffset, _length);
    input.setown(inputFile->open(IFOread));
    if (compressedInput) {                          
        Owned<IExpander> expander;
        if (decryptKey&&*decryptKey) {
            StringBuffer key;
            decrypt(key,decryptKey);
            expander.setown(createAESExpander256(key.length(),key.str()));
        }
        input.setown(createCompressedFileReader(input,expander));   
    }
    cursor = startOffset;
    return (input != NULL);
}
コード例 #3
0
void CDiskReadSlaveActivityBase::start()
{
    PARENT::start();
    markStart = true;
    diskProgress = 0;
    unsigned encryptedKeyLen;
    void *encryptedKey;
    helper->getEncryptKey(encryptedKeyLen, encryptedKey);
    if (0 != encryptedKeyLen)
    {
        bool dfsEncrypted = partDescs.item(0).queryOwner().queryProperties().getPropBool("@encrypted");
        if (dfsEncrypted) // otherwise ignore (warning issued by master)
            eexp.setown(createAESExpander256(encryptedKeyLen, encryptedKey));
        memset(encryptedKey, 0, encryptedKeyLen);
        free(encryptedKey);
    }
}