Как получить байты со стола Postgres? - PullRequest
0 голосов
/ 04 мая 2020

Я использую функции Microsoft cryptoApi для шифрования данных. Результат в BYTE*. После этого я помещаю его в файл и в bytea поле таблицы tt.

char* dataToEncrypt = PG_GETARG_CSTRING(0);
//etc
pbBuffer = (BYTE*)malloc(dwBufferLen);
//etc
PG_RETURN_BYTEA_P(pbBuffer);

В файле:

enter image description here

После того, как я пытаюсь прочитать эти данные из таблицы и записать в другой файл:

char s[] = "C:\\pg\\11.txt";
    HANDLE hSourceFile = CreateFile(s, /*FILE_READ_DATA*/GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (INVALID_HANDLE_VALUE == hSourceFile)
        fprintf(log, "%u %s\n", GetLastError(), "CreateFile s");

    // Write the encrypted data to the destination file. 
    DWORD dwCount = NULL;
    DWORD nNumberOfBytesToWrite = sizeof(dataToDecrypt);
    fprintf(log, "\n__%d__\n", nNumberOfBytesToWrite);

    if (!WriteFile(hSourceFile, dataToDecrypt, nNumberOfBytesToWrite, &dwCount, NULL))
        fprintf(log, "%u %s\n", GetLastError(), "WriteFile"); 

In 11.txt:

enter image description here

Как мне получить данные от bytea, чтобы получить тот же результат, что и для cryptoText.txt? Мое шифрование и дешифрование основано на работе с файлами и правильной записи в этом.

С bytea[] в поле тот же результат.

...