// Squawk messenger. 
// Copyright (C) 2019  Yury Gubich <blue@macaw.me>
// 
// 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/>.

#include "keyinfo.h"

using namespace Shared;

Shared::KeyInfo::KeyInfo(
    uint32_t p_id,
    const QByteArray& p_fingerPrint,
    const QString& p_label,
    const QDateTime& p_lastInteraction,
    Shared::TrustLevel p_trustLevel,
    Shared::EncryptionProtocol p_protocol,
    bool p_currentDevice
):
    id(p_id),
    fingerPrint(p_fingerPrint),
    label(p_label),
    lastInteraction(p_lastInteraction),
    trustLevel(p_trustLevel),
    protocol(p_protocol),
    currentDevice(p_currentDevice)
{
}

Shared::KeyInfo::KeyInfo():
    id(0),
    fingerPrint(),
    label(),
    lastInteraction(),
    trustLevel(TrustLevel::undecided),
    protocol(EncryptionProtocol::omemo2),
    currentDevice(false)
{
}

Shared::KeyInfo::KeyInfo(const Shared::KeyInfo& other):
    id(other.id),
    fingerPrint(other.fingerPrint),
    label(other.label),
    lastInteraction(other.lastInteraction),
    trustLevel(other.trustLevel),
    protocol(other.protocol),
    currentDevice(other.currentDevice)
{
}

Shared::KeyInfo & Shared::KeyInfo::operator=(const Shared::KeyInfo& other) {
    id = other.id;
    fingerPrint = other.fingerPrint;
    label = other.label;
    lastInteraction = other.lastInteraction;
    trustLevel = other.trustLevel;
    protocol = other.protocol;
    currentDevice = other.currentDevice;

    return *this;
}