/*
*  Naamari - an AES/SHA-based manual file crypto-synchronizer for cloud transfers
*  Copyright (c) 2015-2017 Sunkware
*  Key FP = 6B6D C8E9 3438 6E9C 3D97  56E5 2CE9 A476 99EF 28F6
*
*  This program is free software: you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation, either version 3 of the License, or
*  (at your option) any later version.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*  See the GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*  ----------------------------------------------------------------
*  WWW:       sunkware.org
*  E-mail:    sunkware@gmail.com
*  ----------------------------------------------------------------
*/

#ifndef CRYPTRAV_DEFINES_H
#define CRYPTRAV_DEFINES_H


#include       <QString>
#include       <QIODevice>
#include       <QDir>
#include       <QFile>
#include       <QDateTime>
#include       <QByteArray>
#include       <QBuffer>
#include       <QJsonDocument>
#include       <QJsonObject>


#define        CRYPTOMEN_FORMAT_VERSION        (1)

#define        CRYPTOMEN_FORMAT_INITIAL_VER    (1)


#define        HASH_SIZE           (0x20)
#define        HASH_SIZE_LOG       (0x5)

#define        KEY_SIZE            (0x20)
#define        KEY_SIZE_LOG        (0x5)

#define        KEYSFILE_SIZE       (0xA0) // KEY_SIZE * 5, see ContextGlob class

#define        BLOCK_SIZE          (0x10)
#define        BLOCK_SIZE_LOG      (0x4)

#define        FILEBUFFER_SIZE     (0x10000)


#define        ACTION_NONE         (0)
#define        ACTION_PUSH         (1)
#define        ACTION_PULL         (2)
#define        ACTION_UNCLOUD      (3)
#define        ACTION_ANNIHILATE   (4)

#define        ACTION_NONE_STRING              "none"
#define        ACTION_PUSH_STRING              "push"
#define        ACTION_PULL_STRING              "pull"
#define        ACTION_UNCLOUD_STRING           "uncloud"
#define        ACTION_ANNIHILATE_STRING        "annihilate"


#endif // CRYPTRAV_DEFINES_H
