Page MenuHome GnuPG

No OneTemporary

diff --git a/src/kleo/kconfigbasedkeyfilter.cpp b/src/kleo/kconfigbasedkeyfilter.cpp
index e81ce753..ddd9ce74 100644
--- a/src/kleo/kconfigbasedkeyfilter.cpp
+++ b/src/kleo/kconfigbasedkeyfilter.cpp
@@ -1,244 +1,249 @@
/*
kconfigbasedkeyfilter.cpp
This file is part of libkleopatra, the KDE keymanagement library
SPDX-FileCopyrightText: 2004 Klarälvdalens Datakonsult AB
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include <config-libkleo.h>
#include "kconfigbasedkeyfilter.h"
#include <KConfigBase>
#include <KConfigGroup>
#include <QDebug>
#include <QRegularExpression>
#include <algorithm>
using namespace Kleo;
using namespace GpgME;
//
//
// FontDescription - intuitive font property resolving
// (QFont::resolve doesn't work for us)
//
//
struct KeyFilter::FontDescription::Private {
bool bold, italic, strikeOut, fullFont;
QFont font;
};
KeyFilter::FontDescription::FontDescription()
: d(new Private)
{
d->bold = d->italic = d->strikeOut = d->fullFont = false;
}
KeyFilter::FontDescription::FontDescription(const FontDescription &other)
: d(new Private(*other.d))
{
}
KeyFilter::FontDescription::~FontDescription() = default;
KeyFilter::FontDescription KeyFilter::FontDescription::create(bool b, bool i, bool s)
{
FontDescription fd;
fd.d->bold = b;
fd.d->italic = i;
fd.d->strikeOut = s;
return fd;
}
KeyFilter::FontDescription KeyFilter::FontDescription::create(const QFont &f, bool b, bool i, bool s)
{
FontDescription fd;
fd.d->fullFont = true;
fd.d->font = f;
fd.d->bold = b;
fd.d->italic = i;
fd.d->strikeOut = s;
return fd;
}
QFont KeyFilter::FontDescription::font(const QFont &base) const
{
QFont font;
if (d->fullFont) {
font = d->font;
font.setPointSize(base.pointSize());
} else {
font = base;
}
if (d->bold) {
font.setBold(true);
}
if (d->italic) {
font.setItalic(true);
}
if (d->strikeOut) {
font.setStrikeOut(true);
}
return font;
}
KeyFilter::FontDescription KeyFilter::FontDescription::resolve(const FontDescription &other) const
{
FontDescription fd;
fd.d->fullFont = this->d->fullFont || other.d->fullFont;
if (fd.d->fullFont) {
fd.d->font = this->d->fullFont ? this->d->font : other.d->font;
}
fd.d->bold = this->d->bold || other.d->bold;
fd.d->italic = this->d->italic || other.d->italic;
fd.d->strikeOut = this->d->strikeOut || other.d->strikeOut;
return fd;
}
static const struct {
const char *name;
Key::OwnerTrust trust;
UserID::Validity validity;
} ownerTrustAndValidityMap[] = {
// clang-format off
{"unknown", Key::Unknown, UserID::Unknown },
{"undefined", Key::Undefined, UserID::Undefined},
{"never", Key::Never, UserID::Never },
{"marginal", Key::Marginal, UserID::Marginal },
{"full", Key::Full, UserID::Full },
{"ultimate", Key::Ultimate, UserID::Ultimate },
// clang-format on
};
static Key::OwnerTrust map2OwnerTrust(const QString &s)
{
for (unsigned int i = 0; i < sizeof ownerTrustAndValidityMap / sizeof *ownerTrustAndValidityMap; ++i) {
if (s.toLower() == QLatin1String(ownerTrustAndValidityMap[i].name)) {
return ownerTrustAndValidityMap[i].trust;
}
}
return ownerTrustAndValidityMap[0].trust;
}
static UserID::Validity map2Validity(const QString &s)
{
for (unsigned int i = 0; i < sizeof ownerTrustAndValidityMap / sizeof *ownerTrustAndValidityMap; ++i) {
if (s.toLower() == QLatin1String(ownerTrustAndValidityMap[i].name)) {
return ownerTrustAndValidityMap[i].validity;
}
}
return ownerTrustAndValidityMap[0].validity;
}
KConfigBasedKeyFilter::KConfigBasedKeyFilter(const KConfigGroup &config)
: DefaultKeyFilter()
{
setFgColor(config.readEntry<QColor>("foreground-color", QColor()));
setBgColor(config.readEntry<QColor>("background-color", QColor()));
setName(config.readEntry("Name", config.name()));
setIcon(config.readEntry("icon"));
setId(config.readEntry("id", config.name()));
if (config.hasKey("font")) {
setUseFullFont(true);
setFont(config.readEntry("font"));
} else {
setUseFullFont(false);
setItalic(config.readEntry("font-italic", false));
setBold(config.readEntry("font-bold", false));
}
setStrikeOut(config.readEntry("font-strikeout", false));
#ifdef SET
#undef SET
#endif
#define SET(member, key) \
if (config.hasKey(key)) { \
set##member(config.readEntry(key, false) ? Set : NotSet); \
setSpecificity(specificity() + 1); \
}
SET(Revoked, "is-revoked");
SET(Expired, "is-expired");
SET(Disabled, "is-disabled");
SET(Root, "is-root-certificate");
SET(CanEncrypt, "can-encrypt");
SET(CanSign, "can-sign");
SET(CanCertify, "can-certify");
SET(CanAuthenticate, "can-authenticate");
SET(HasEncrypt, "has-encrypt");
SET(HasSign, "has-sign");
SET(HasCertify, "has-certify");
SET(HasAuthenticate, "has-authenticate");
SET(Qualified, "is-qualified");
SET(CardKey, "is-cardkey");
SET(HasSecret, "has-secret-key");
SET(IsOpenPGP, "is-openpgp-key");
SET(WasValidated, "was-validated");
SET(IsDeVs, "is-de-vs");
#undef SET
static const struct {
const char *prefix;
LevelState state;
} prefixMap[] = {
{"is-", Is},
{"is-not-", IsNot},
{"is-at-least-", IsAtLeast},
{"is-at-most-", IsAtMost},
};
for (unsigned int i = 0; i < sizeof prefixMap / sizeof *prefixMap; ++i) {
const QString key = QLatin1String(prefixMap[i].prefix) + QLatin1String("ownertrust");
if (config.hasKey(key)) {
setOwnerTrust(prefixMap[i].state);
setOwnerTrustReferenceLevel(map2OwnerTrust(config.readEntry(key, QString())));
setSpecificity(specificity() + 1);
break;
}
}
for (unsigned int i = 0; i < sizeof prefixMap / sizeof *prefixMap; ++i) {
const QString key = QLatin1String(prefixMap[i].prefix) + QLatin1String("validity");
if (config.hasKey(key)) {
setValidity(prefixMap[i].state);
setValidityReferenceLevel(map2Validity(config.readEntry(key, QString())));
setSpecificity(specificity() + 1);
break;
}
}
+
+ if (config.hasKey("specificity")) {
+ setSpecificity(config.readEntry("specificity", 0u));
+ }
+
static const struct {
const char *key;
MatchContext context;
} matchMap[] = {
{"any", AnyMatchContext},
{"appearance", Appearance},
{"filtering", Filtering},
};
static const QRegularExpression reg(QRegularExpression(QLatin1String("[^a-z!]+")));
const QStringList contexts = config.readEntry("match-contexts", "any").toLower().split(reg, Qt::SkipEmptyParts);
setMatchContexts(NoMatchContext);
for (const QString &ctx : contexts) {
bool found = false;
for (unsigned int i = 0; i < sizeof matchMap / sizeof *matchMap; ++i) {
if (ctx == QLatin1String(matchMap[i].key)) {
setMatchContexts(availableMatchContexts() |= matchMap[i].context);
found = true;
break;
} else if (ctx.startsWith(QLatin1Char('!')) && ctx.mid(1) == QLatin1String(matchMap[i].key)) {
setMatchContexts(availableMatchContexts() &= matchMap[i].context);
found = true;
break;
}
}
if (!found) {
qWarning() << QStringLiteral("KConfigBasedKeyFilter: found unknown match context '%1' in group '%2'").arg(ctx, config.name());
}
}
if (availableMatchContexts() == NoMatchContext) {
qWarning() << QStringLiteral(
"KConfigBasedKeyFilter: match context in group '%1' evaluates to NoMatchContext, "
"replaced by AnyMatchContext")
.arg(config.name());
setMatchContexts(AnyMatchContext);
}
}
diff --git a/src/kleo/keyfiltermanager.cpp b/src/kleo/keyfiltermanager.cpp
index d9f42bbd..e7689a69 100644
--- a/src/kleo/keyfiltermanager.cpp
+++ b/src/kleo/keyfiltermanager.cpp
@@ -1,489 +1,489 @@
/*
keyfiltermanager.cpp
This file is part of libkleopatra, the KDE keymanagement library
SPDX-FileCopyrightText: 2004 Klarälvdalens Datakonsult AB
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include <config-libkleo.h>
#include "keyfiltermanager.h"
#include "defaultkeyfilter.h"
#include "kconfigbasedkeyfilter.h"
#include "stl_util.h"
#include <libkleo/algorithm.h>
#include <libkleo/compliance.h>
#include <libkleo/gnupg.h>
#include <libkleo/keyhelpers.h>
#include <libkleo_debug.h>
#include <KConfig>
#include <KConfigGroup>
#include <KLocalizedString>
#include <KSharedConfig>
#include <QAbstractListModel>
#include <QCoreApplication>
#include <QIcon>
#include <QModelIndex>
#include <QRegularExpression>
#include <QStringList>
#include <algorithm>
#include <climits>
#include <functional>
using namespace Kleo;
using namespace GpgME;
namespace
{
class Model : public QAbstractListModel
{
KeyFilterManager::Private *m_keyFilterManagerPrivate;
public:
explicit Model(KeyFilterManager::Private *p)
: QAbstractListModel(nullptr)
, m_keyFilterManagerPrivate(p)
{
}
int rowCount(const QModelIndex &) const override;
QVariant data(const QModelIndex &idx, int role) const override;
/* upgrade to public */ using QAbstractListModel::beginResetModel;
/* upgrade to public */ using QAbstractListModel::endResetModel;
};
class AllCertificatesKeyFilter : public DefaultKeyFilter
{
public:
AllCertificatesKeyFilter()
: DefaultKeyFilter()
{
setSpecificity(UINT_MAX); // overly high for ordering
setName(i18n("All Certificates"));
setId(QStringLiteral("all-certificates"));
setMatchContexts(Filtering);
}
};
class MyCertificatesKeyFilter : public DefaultKeyFilter
{
public:
MyCertificatesKeyFilter()
: DefaultKeyFilter()
{
setHasSecret(Set);
- setSpecificity(UINT_MAX - 1); // overly high for ordering
+ setSpecificity(UINT_MAX - 2); // overly high for ordering
setName(i18n("My Certificates"));
setId(QStringLiteral("my-certificates"));
setMatchContexts(AnyMatchContext);
setBold(true);
}
};
class TrustedCertificatesKeyFilter : public DefaultKeyFilter
{
public:
TrustedCertificatesKeyFilter()
: DefaultKeyFilter()
{
setRevoked(NotSet);
setValidity(IsAtLeast);
setValidityReferenceLevel(UserID::Marginal);
- setSpecificity(UINT_MAX - 2); // overly high for ordering
+ setSpecificity(UINT_MAX - 3); // overly high for ordering
setName(i18n("Trusted Certificates"));
setId(QStringLiteral("trusted-certificates"));
setMatchContexts(Filtering);
}
};
class FullCertificatesKeyFilter : public DefaultKeyFilter
{
public:
FullCertificatesKeyFilter()
: DefaultKeyFilter()
{
setRevoked(NotSet);
setValidity(IsAtLeast);
setValidityReferenceLevel(UserID::Full);
- setSpecificity(UINT_MAX - 3);
+ setSpecificity(UINT_MAX - 4);
setName(i18n("Fully Trusted Certificates"));
setId(QStringLiteral("full-certificates"));
setMatchContexts(Filtering);
}
};
class OtherCertificatesKeyFilter : public DefaultKeyFilter
{
public:
OtherCertificatesKeyFilter()
: DefaultKeyFilter()
{
setHasSecret(NotSet);
setValidity(IsAtMost);
setValidityReferenceLevel(UserID::Never);
- setSpecificity(UINT_MAX - 4); // overly high for ordering
+ setSpecificity(UINT_MAX - 5); // overly high for ordering
setName(i18n("Other Certificates"));
setId(QStringLiteral("other-certificates"));
setMatchContexts(Filtering);
}
};
/* This filter selects uncertified OpenPGP keys, i.e. "good" OpenPGP keys with
* unrevoked user IDs that are not fully valid. */
class UncertifiedOpenPGPKeysFilter : public DefaultKeyFilter
{
public:
UncertifiedOpenPGPKeysFilter()
: DefaultKeyFilter()
{
setSpecificity(UINT_MAX - 6); // overly high for ordering
setName(i18n("Not Certified Certificates"));
setId(QStringLiteral("not-certified-certificates"));
setMatchContexts(Filtering);
setIsOpenPGP(Set);
setIsBad(NotSet);
}
bool matches(const Key &key, MatchContexts contexts) const override
{
return DefaultKeyFilter::matches(key, contexts) && !Kleo::allUserIDsHaveFullValidity(key);
}
bool matches(const UserID &userID, MatchContexts contexts) const override
{
return DefaultKeyFilter::matches(userID.parent(), contexts) && userID.validity() < UserID::Full;
}
};
/* This filter selects only invalid keys (i.e. those where not all
* UIDs are at least fully valid). */
class KeyNotValidFilter : public DefaultKeyFilter
{
public:
KeyNotValidFilter()
: DefaultKeyFilter()
{
setSpecificity(UINT_MAX - 7); // overly high for ordering
setName(i18n("Not Validated Certificates"));
setId(QStringLiteral("not-validated-certificates"));
setMatchContexts(Filtering);
}
bool matches(const Key &key, MatchContexts contexts) const override
{
return DefaultKeyFilter::matches(key, contexts) && !Kleo::allUserIDsHaveFullValidity(key);
}
bool matches(const UserID &userID, MatchContexts contexts) const override
{
return DefaultKeyFilter::matches(userID.parent(), contexts) && userID.validity() < UserID::Full;
}
};
}
static std::vector<std::shared_ptr<KeyFilter>> defaultFilters()
{
std::vector<std::shared_ptr<KeyFilter>> result;
result.reserve(6);
result.push_back(std::shared_ptr<KeyFilter>(new MyCertificatesKeyFilter));
result.push_back(std::shared_ptr<KeyFilter>(new TrustedCertificatesKeyFilter));
result.push_back(std::shared_ptr<KeyFilter>(new FullCertificatesKeyFilter));
result.push_back(std::shared_ptr<KeyFilter>(new OtherCertificatesKeyFilter));
result.push_back(std::shared_ptr<KeyFilter>(new AllCertificatesKeyFilter));
result.push_back(std::shared_ptr<KeyFilter>(new UncertifiedOpenPGPKeysFilter));
result.push_back(std::shared_ptr<KeyFilter>(new KeyNotValidFilter));
return result;
}
class KeyFilterManager::Private
{
public:
Private()
: filters()
, model(this)
{
}
void clear()
{
model.beginResetModel();
filters.clear();
model.endResetModel();
}
std::vector<std::shared_ptr<KeyFilter>> filters;
Model model;
GpgME::Protocol protocol = GpgME::UnknownProtocol;
};
KeyFilterManager *KeyFilterManager::mSelf = nullptr;
KeyFilterManager::KeyFilterManager(QObject *parent)
: QObject(parent)
, d(new Private)
{
mSelf = this;
// ### DF: doesn't a KStaticDeleter work more reliably?
if (QCoreApplication *app = QCoreApplication::instance()) {
connect(app, &QCoreApplication::aboutToQuit, this, &QObject::deleteLater);
}
reload();
}
KeyFilterManager::~KeyFilterManager()
{
mSelf = nullptr;
if (d) {
d->clear();
}
}
KeyFilterManager *KeyFilterManager::instance()
{
if (!mSelf) {
mSelf = new KeyFilterManager();
}
return mSelf;
}
void KeyFilterManager::alwaysFilterByProtocol(GpgME::Protocol protocol)
{
if (protocol != d->protocol) {
d->protocol = protocol;
reload();
}
}
const std::shared_ptr<KeyFilter> &KeyFilterManager::filterMatching(const Key &key, KeyFilter::MatchContexts contexts) const
{
const auto it = std::find_if(d->filters.cbegin(), d->filters.cend(), [&key, contexts](const std::shared_ptr<KeyFilter> &filter) {
return filter->matches(key, contexts);
});
if (it != d->filters.cend()) {
return *it;
}
static const std::shared_ptr<KeyFilter> null;
return null;
}
std::vector<std::shared_ptr<KeyFilter>> KeyFilterManager::filtersMatching(const Key &key, KeyFilter::MatchContexts contexts) const
{
std::vector<std::shared_ptr<KeyFilter>> result;
result.reserve(d->filters.size());
std::remove_copy_if(d->filters.begin(), d->filters.end(), std::back_inserter(result), [&key, contexts](const std::shared_ptr<KeyFilter> &filter) {
return !filter->matches(key, contexts);
});
return result;
}
namespace
{
static const auto byDecreasingSpecificity = [](const std::shared_ptr<KeyFilter> &lhs, const std::shared_ptr<KeyFilter> &rhs) {
return lhs->specificity() > rhs->specificity();
};
}
void KeyFilterManager::reload()
{
d->clear();
d->filters = defaultFilters();
KSharedConfigPtr config = KSharedConfig::openConfig(QStringLiteral("libkleopatrarc"));
const QStringList groups = config->groupList().filter(QRegularExpression(QStringLiteral("^Key Filter #\\d+$")));
const bool ignoreDeVs = !DeVSCompliance::isCompliant();
for (QStringList::const_iterator it = groups.begin(); it != groups.end(); ++it) {
const KConfigGroup cfg(config, *it);
if (cfg.hasKey("is-de-vs") && ignoreDeVs) {
/* Don't show de-vs filters in other compliance modes */
continue;
}
d->filters.push_back(std::shared_ptr<KeyFilter>(new KConfigBasedKeyFilter(cfg)));
}
std::stable_sort(d->filters.begin(), d->filters.end(), byDecreasingSpecificity);
if (d->protocol != GpgME::UnknownProtocol) {
// remove filters with conflicting isOpenPGP rule
const auto conflictingValue = (d->protocol == GpgME::OpenPGP) ? DefaultKeyFilter::NotSet : DefaultKeyFilter::Set;
Kleo::erase_if(d->filters, [conflictingValue](const auto &f) {
const auto filter = std::dynamic_pointer_cast<DefaultKeyFilter>(f);
Q_ASSERT(filter);
return filter->isOpenPGP() == conflictingValue;
});
// add isOpenPGP rule to all filters
const auto isOpenPGPValue = (d->protocol == GpgME::OpenPGP) ? DefaultKeyFilter::Set : DefaultKeyFilter::NotSet;
std::for_each(std::begin(d->filters), std::end(d->filters), [isOpenPGPValue](auto &f) {
const auto filter = std::dynamic_pointer_cast<DefaultKeyFilter>(f);
Q_ASSERT(filter);
return filter->setIsOpenPGP(isOpenPGPValue);
});
}
qCDebug(LIBKLEO_LOG) << "KeyFilterManager::" << __func__ << "final filter count is" << d->filters.size();
}
QAbstractItemModel *KeyFilterManager::model() const
{
return &d->model;
}
const std::shared_ptr<KeyFilter> &KeyFilterManager::keyFilterByID(const QString &id) const
{
const auto it = std::find_if(d->filters.begin(), d->filters.end(), [id](const std::shared_ptr<KeyFilter> &filter) {
return filter->id() == id;
});
if (it != d->filters.end()) {
return *it;
}
static const std::shared_ptr<KeyFilter> null;
return null;
}
const std::shared_ptr<KeyFilter> &KeyFilterManager::fromModelIndex(const QModelIndex &idx) const
{
if (!idx.isValid() || idx.model() != &d->model || idx.row() < 0 || static_cast<unsigned>(idx.row()) >= d->filters.size()) {
static const std::shared_ptr<KeyFilter> null;
return null;
}
return d->filters[idx.row()];
}
QModelIndex KeyFilterManager::toModelIndex(const std::shared_ptr<KeyFilter> &kf) const
{
if (!kf) {
return {};
}
const auto pair = std::equal_range(d->filters.cbegin(), d->filters.cend(), kf, byDecreasingSpecificity);
const auto it = std::find(pair.first, pair.second, kf);
if (it != pair.second) {
return d->model.index(it - d->filters.begin());
} else {
return QModelIndex();
}
}
int Model::rowCount(const QModelIndex &) const
{
return m_keyFilterManagerPrivate->filters.size();
}
QVariant Model::data(const QModelIndex &idx, int role) const
{
if (!idx.isValid() || idx.model() != this || idx.row() < 0 || static_cast<unsigned>(idx.row()) > m_keyFilterManagerPrivate->filters.size()) {
return QVariant();
}
const auto filter = m_keyFilterManagerPrivate->filters[idx.row()];
switch (role) {
case Qt::DecorationRole:
return filter->icon();
case Qt::DisplayRole:
case Qt::EditRole:
case Qt::ToolTipRole: /* Most useless tooltip ever. */
return filter->name();
case KeyFilterManager::FilterIdRole:
return filter->id();
case KeyFilterManager::FilterMatchContextsRole:
return QVariant::fromValue(filter->availableMatchContexts());
default:
return QVariant();
}
}
static KeyFilter::FontDescription
get_fontdescription(const std::vector<std::shared_ptr<KeyFilter>> &filters, const Key &key, const KeyFilter::FontDescription &initial)
{
return kdtools::accumulate_if(
filters.begin(),
filters.end(),
[&key](const std::shared_ptr<KeyFilter> &filter) {
return filter->matches(key, KeyFilter::Appearance);
},
initial,
[](const KeyFilter::FontDescription &lhs, const std::shared_ptr<KeyFilter> &rhs) {
return lhs.resolve(rhs->fontDescription());
});
}
QFont KeyFilterManager::font(const Key &key, const QFont &baseFont) const
{
const KeyFilter::FontDescription fd = get_fontdescription(d->filters, key, KeyFilter::FontDescription());
return fd.font(baseFont);
}
static QColor get_color(const std::vector<std::shared_ptr<KeyFilter>> &filters, const Key &key, QColor (KeyFilter::*fun)() const)
{
const auto it = std::find_if(filters.cbegin(), filters.cend(), [&fun, &key](const std::shared_ptr<KeyFilter> &filter) {
return filter->matches(key, KeyFilter::Appearance) && (filter.get()->*fun)().isValid();
});
if (it == filters.cend()) {
return {};
} else {
return (it->get()->*fun)();
}
}
static QColor get_color(const std::vector<std::shared_ptr<KeyFilter>> &filters, const UserID &userID, QColor (KeyFilter::*fun)() const)
{
const auto it = std::find_if(filters.cbegin(), filters.cend(), [&fun, &userID](const std::shared_ptr<KeyFilter> &filter) {
return filter->matches(userID, KeyFilter::Appearance) && (filter.get()->*fun)().isValid();
});
if (it == filters.cend()) {
return {};
} else {
return (it->get()->*fun)();
}
}
static QString get_string(const std::vector<std::shared_ptr<KeyFilter>> &filters, const Key &key, QString (KeyFilter::*fun)() const)
{
const auto it = std::find_if(filters.cbegin(), filters.cend(), [&fun, &key](const std::shared_ptr<KeyFilter> &filter) {
return filter->matches(key, KeyFilter::Appearance) && !(filter.get()->*fun)().isEmpty();
});
if (it == filters.cend()) {
return QString();
} else {
return (*it)->icon();
}
}
QColor KeyFilterManager::bgColor(const Key &key) const
{
return get_color(d->filters, key, &KeyFilter::bgColor);
}
QColor KeyFilterManager::fgColor(const Key &key) const
{
return get_color(d->filters, key, &KeyFilter::fgColor);
}
QColor KeyFilterManager::bgColor(const UserID &userID) const
{
return get_color(d->filters, userID, &KeyFilter::bgColor);
}
QColor KeyFilterManager::fgColor(const UserID &userID) const
{
return get_color(d->filters, userID, &KeyFilter::fgColor);
}
QIcon KeyFilterManager::icon(const Key &key) const
{
const QString icon = get_string(d->filters, key, &KeyFilter::icon);
return icon.isEmpty() ? QIcon() : QIcon::fromTheme(icon);
}
diff --git a/src/libkleopatrarc-win32.desktop b/src/libkleopatrarc-win32.desktop
index c566f603..e2101d58 100644
--- a/src/libkleopatrarc-win32.desktop
+++ b/src/libkleopatrarc-win32.desktop
@@ -1,797 +1,806 @@
[Archive Definition #0]
extensions-openpgp=tar
extensions-cms=tar.gz,tgz
id=tar
Name=TAR (PGP®-compatible)
Name[ar]=‏TAR (متوافق مع PGP®)
Name[ca]=TAR (compatible amb PGP®)
Name[ca@valencia]=TAR (compatible amb PGP®)
Name[cs]=TAR (PGP® kompatibilní)
Name[da]=TAR (PGP®-kompatibel)
Name[de]=TAR (PGP®-kompatibel)
Name[en_GB]=TAR (PGP®-compatible)
Name[eo]=TAR (PGP®-kongrua)
Name[es]=TAR (compatible PGP®)
Name[et]=TAR (PGP® ühilduv)
Name[eu]=TAR (PGP®-rekin bateragarria)
Name[fi]=TAR (PGP-yhteensopiva)
Name[fr]=TAR (compatible PGP®)
Name[gl]=TAR (compatíbel con PGP®)
Name[hu]=TAR (PGP® kompatibilis)
Name[ia]=TAR (compatibile con PGP®)
Name[ie]=TAR (compatibil con PGP®)
Name[it]=TAR (compatibile PGP®)
Name[ja]=TAR (PGP® 互換)
Name[ka]=TAR (PGP®-თავსებადი)
Name[ko]=TAR(PGP® 호환)
Name[nb]=TAR (PGP®-kompatibel)
Name[nl]=TAR (PGP®-compatible)
Name[nn]=TAR (PGP®-kompatibel)
Name[pl]=TAR (zgodny z PGP®)
Name[pt]=TAR (compatível com o PGP®)
Name[pt_BR]=TAR (compatível com PGP®)
Name[ru]=TAR (PGP®-совместимый)
Name[sk]=TAR (PGP® kompatibilné)
Name[sl]=TAR (združljiv s PGP®)
Name[sr]=тар (ПГП®-сагласно)
Name[sr@ijekavian]=тар (ПГП®-сагласно)
Name[sr@ijekavianlatin]=tar (PGP®-saglasno)
Name[sr@latin]=tar (PGP®-saglasno)
Name[sv]=TAR (fungerar med PGP®)
Name[tr]=TAR (PGP®-uyumlu)
Name[uk]=TAR (сумісні з PGP®)
Name[x-test]=xxTAR (PGP®-compatible)xx
Name[zh_CN]=TAR(PGP® 兼容)
Name[zh_TW]=TAR (相容 PGP®)
pack-command-openpgp=0|%I/gpgtar --utf8-strings --openpgp --skip-crypto --output - --encrypt -T- --null --
pack-command-cms=0|%I/gpgtar --utf8-strings --cms --skip-crypto --output - --encrypt -T- --null --
unpack-command-openpgp=%I/gpgtar --utf8-strings --openpgp --skip-crypto --set-filename %F --decrypt -- -
unpack-command-cms=%I/gpgtar --utf8-strings --cms --skip-crypto --set-filename %F --decrypt -- -
[Checksum Definition #0]
file-patterns=sha256sum.txt,.*\\\\.sha256,.*\\\\.sha2
output-file=sha256sum.txt
id=sha256sum
Name=sha256sum
Name[ar]=تدقيق SHA256
Name[ca]=sha256sum
Name[ca@valencia]=sha256sum
Name[cs]=sha256sum
Name[da]=sha256sum
Name[de]=sha256sum
Name[en_GB]=sha256sum
Name[eo]=sha256sum
Name[es]=sha256sum
Name[et]=sha256sum
Name[eu]=sha256sum
Name[fi]=sha256sum
Name[fr]=sha256sum
Name[gl]=sha256sum
Name[hu]=sha256sum
Name[ia]=sha256sum
Name[ie]=sha256sum
Name[it]=sha256sum
Name[ja]=sha256sum
Name[ka]=sha256sum
Name[ko]=sha256sum
Name[nb]=sha256sum
Name[nl]=sha256sum
Name[nn]=sha256sum
Name[pl]=sha256sum
Name[pt]=sha256sum
Name[pt_BR]=sha256sum
Name[ru]=sha256sum
Name[sk]=sha256sum
Name[sl]=sha256sum
Name[sr]=СХА‑256 сума
Name[sr@ijekavian]=СХА‑256 сума
Name[sr@ijekavianlatin]=SHA‑256 suma
Name[sr@latin]=SHA‑256 suma
Name[sv]=SHA256-summa
Name[tr]=sha256sum
Name[uk]=sha256sum
Name[x-test]=xxsha256sumxx
Name[zh_CN]=sha256sum
Name[zh_TW]=sha256sum
create-command=0|%I/sha256sum -0 -
verify-command=%I/sha256sum -c
[Checksum Definition #1]
file-patterns=sha1sum.txt,.*\\\\.sha1
output-file=sha1sum.txt
id=sha1sum
Name=sha1sum
Name[ar]=تدقيق SHA1
Name[ca]=sha1sum
Name[ca@valencia]=sha1sum
Name[cs]=sha1sum
Name[da]=sha1sum
Name[de]=sha1sum
Name[en_GB]=sha1sum
Name[eo]=sha1sum
Name[es]=sha1sum
Name[et]=sha1sum
Name[eu]=sha1sum
Name[fi]=sha1sum
Name[fr]=sha1sum
Name[gl]=sha1sum
Name[hu]=sha1sum
Name[ia]=sha1sum
Name[ie]=sha1sum
Name[it]=sha1sum
Name[ja]=sha1sum
Name[ka]=sha1sum
Name[ko]=sha1sum
Name[nb]=sha1sum
Name[nl]=sha1sum
Name[nn]=sha1sum
Name[pl]=sha1sum
Name[pt]=sha1sum
Name[pt_BR]=sha1sum
Name[ru]=sha1sum
Name[sk]=sha1sum
Name[sl]=sha1sum
Name[sr]=СХА‑1 сума
Name[sr@ijekavian]=СХА‑1 сума
Name[sr@ijekavianlatin]=SHA‑1 suma
Name[sr@latin]=SHA‑1 suma
Name[sv]=SHA1-summa
Name[tr]=sha1sum
Name[uk]=sha1sum
Name[x-test]=xxsha1sumxx
Name[zh_CN]=sha1sum
Name[zh_TW]=sha1sum
create-command=0|%I/sha1sum -0 -
verify-command=%I/sha1sum -c
[Checksum Definition #2]
file-patterns=md5sum.txt,.*\\\\.md5
output-file=md5sum.txt
id=md5sum
Name=md5sum
Name[ar]=تدقيق MD5
Name[ca]=md5sum
Name[ca@valencia]=md5sum
Name[cs]=md5sum
Name[da]=md5sum
Name[de]=md5sum
Name[en_GB]=md5sum
Name[eo]=md5sumo
Name[es]=md5sum
Name[et]=md5sum
Name[eu]=md5sum
Name[fi]=md5sum
Name[fr]=md5sum
Name[gl]=md5sum
Name[hu]=md5sum
Name[ia]=md5sum
Name[ie]=md5sum
Name[it]=md5sum
Name[ja]=md5sum
Name[ka]=md5sum
Name[ko]=md5sum
Name[nb]=md5sum
Name[nl]=md5sum
Name[nn]=md5sum
Name[pl]=md5sum
Name[pt]=md5sum
Name[pt_BR]=md5sum
Name[ru]=md5sum
Name[sk]=md5sum
Name[sl]=md5sum
Name[sr]=МД5 сума
Name[sr@ijekavian]=МД5 сума
Name[sr@ijekavianlatin]=MD5 suma
Name[sr@latin]=MD5 suma
Name[sv]=MD5-summa
Name[tr]=md5sum
Name[uk]=md5sum
Name[x-test]=xxmd5sumxx
Name[zh_CN]=md5sum
Name[zh_TW]=md5sum
create-command=0|%I/md5sum -0 -
verify-command=%I/md5sum -c
[Key Filter #0]
was-validated=false
Name=Not Validated Key
Name[ar]=ليس مفتاحًا متحقّقًا منه
Name[ca]=Clau no validada
Name[ca@valencia]=Clau no validada
Name[cs]=Neověřený klíč
Name[da]=Ikke godkendt nøgle
Name[de]=Ungeprüfter Schlüssel
Name[en_GB]=Not Validated Key
Name[eo]=Ne validigita Ŝlosilo
Name[es]=Clave no validada
Name[et]=Võtme ehtsus kontrollimatu
Name[eu]=Baliozkotu gabeko gakoa
Name[fi]=Varmistamaton avain
Name[fr]=Clé non validée
Name[gl]=Non hai chave validada
Name[hu]=Nem érvényesített kulcs
Name[ia]=Clave non validate
Name[ie]=Clave sin validation
Name[it]=Chiave non convalidata
Name[ja]=検証されていない鍵
Name[ka]=დაუდასტურებელი გასაღები
Name[ko]=검증되지 않은 키
Name[nb]=Nøkkel ikke sjekket for gyldighet
Name[nl]=Geen gevalideerde sleutel
Name[nn]=Ikkje-validert nøkkel
Name[pl]=Niesprawdzony klucz
Name[pt]=Chave Não Validada
Name[pt_BR]=Chave não validada
Name[ru]=Непроверенный ключ
Name[sk]=Neoverený kľúč
Name[sl]=Nepreverjen ključ
Name[sr]=Неоверени кључ
Name[sr@ijekavian]=Неовјерени кључ
Name[sr@ijekavianlatin]=Neovjereni ključ
Name[sr@latin]=Neovereni ključ
Name[sv]=Nyckeln har inte validerats
Name[tr]=Geçerli Olmayan Anahtar
Name[uk]=Неперевірений ключ
Name[x-test]=xxNot Validated Keyxx
Name[zh_CN]=未校验的密钥
Name[zh_TW]=無已驗證的金鑰
[Key Filter #1]
is-expired=true
is-revoked=false
foreground-color=255,0,0
Name=Expired Key
Name[ar]=مفتاح منقضي
Name[ca]=Clau caducada
Name[ca@valencia]=Clau caducada
Name[cs]=Klíč s prošlou platností
Name[da]=Udløbet nøgle
Name[de]=Abgelaufener Schlüssel
Name[en_GB]=Expired Key
Name[eo]=Eksvalidiĝinta Ŝlosilo
Name[es]=Clave expirada
Name[et]=Aegunud võti
Name[eu]=Iraungitako gakoa
Name[fi]=Vanhentunut avain
Name[fr]=Clé expirée
Name[gl]=Chave caducada
Name[hu]=Lejárt kulcs
Name[ia]=Clave expirate
Name[ie]=Expirat clave
Name[it]=Chiave scaduta
Name[ja]=期限切れの鍵
Name[ka]=ვადაგასული გასაღები
Name[ko]=만료된 키
Name[nb]=Utgått nøkkel
Name[nl]=Verlopen sleutel
Name[nn]=Forelda nøkkel
Name[pl]=Klucz, który utracił ważność
Name[pt]=Chave Expirada
Name[pt_BR]=Chave expirada
Name[ru]=Устаревший ключ
Name[sk]=Vypršaný kľúč
Name[sl]=Pretečen ključ
Name[sr]=Истекли кључ
Name[sr@ijekavian]=Истекли кључ
Name[sr@ijekavianlatin]=Istekli ključ
Name[sr@latin]=Istekli ključ
Name[sv]=Utgången nyckel
Name[tr]=Süresi Dolmuş Anahtar
Name[uk]=Застарілий ключ
Name[x-test]=xxExpired Keyxx
Name[zh_CN]=过期密钥
Name[zh_TW]=過期的金鑰
[Key Filter #2]
is-revoked=true
Name=Revoked Key
Name[ar]=مفتاح مسحوب
Name[ca]=Clau revocada
Name[ca@valencia]=Clau revocada
Name[cs]=Odvolaný klíč
Name[da]=Fjernet nøgle
Name[de]=Widerrufener Schlüssel
Name[en_GB]=Revoked Key
Name[eo]=Revokita Ŝlosilo
Name[es]=Clave revocada
Name[et]=Tühistatud võti
Name[eu]=Indargetutako gakoa
Name[fi]=Peruttu avain
Name[fr]=Clé révoquée
Name[gl]=Chave revogada
Name[hu]=Visszavont kulcs
Name[ia]=Clave revocate
Name[ie]=Revocat clave
Name[it]=Chiave revocata
Name[ja]=破棄された鍵
Name[ka]=გაუქმებული გასაღები
Name[ko]=철회된 키
Name[nb]=Tilbakekalt nøkkel
Name[nl]=Ingetrokken sleutel
Name[nn]=Tilbakekalla nøkkel
Name[pl]=Odwołany klucz
Name[pt]=Chave Revogada
Name[pt_BR]=Chave revogada
Name[ru]=Отозванный ключ
Name[sk]=Kľúč so zrušenou platnosťou
Name[sl]=Preklican ključ
Name[sr]=Опозвани кључ
Name[sr@ijekavian]=Опозвани кључ
Name[sr@ijekavianlatin]=Opozvani ključ
Name[sr@latin]=Opozvani ključ
Name[sv]=Återkallad nyckel
Name[tr]=Yürürlükten Kaldırılmış Anahtar
Name[uk]=Анульований ключ
Name[x-test]=xxRevoked Keyxx
Name[zh_CN]=吊销的密钥
Name[zh_TW]=已撤回的金鑰
[Key Filter #3]
was-validated=true
is-root-certificate=true
is-validity=ultimate
Name=Trusted Root Certificate
Name[ar]=شهادة جذر موثوقة
Name[ca]=Certificat arrel de confiança
Name[ca@valencia]=Certificat arrel de confiança
Name[cs]=Důvěryhodný kořenový certifikát
Name[da]=Root-certifikat der stoles på
Name[de]=Vertrauenswürdiges Wurzelzertifikat
Name[en_GB]=Trusted Root Certificate
Name[eo]=Fidinda Radika Atestilo
Name[es]=Certificado raíz confiable
Name[et]=Usaldusväärne juursertifikaat
Name[eu]=Konfiantzadun erro-ziurtagiria
Name[fi]=Luotettu juurivarmenne
Name[fr]=Certificat racine de confiance
Name[gl]=Certificado raíz autenticado
Name[hu]=Megbízható főtanúsítvány
Name[ia]=Certificato de radice con fide
Name[it]=Certificato radice affidabile
Name[ja]=信頼されたルート証明書
Name[ka]=სანდო ძირითადი სერტიფიკატი
Name[ko]=신뢰하는 루트 인증 기관
Name[nb]=Tiltrodd rot-sertifikat
Name[nl]=Vertrouwd hoofdcertificaat
Name[nn]=Tiltrudd rotsertifikat
Name[pl]=Zaufany główny certyfikat
Name[pt]=Certificado de Raiz Fidedigno
Name[pt_BR]=Certificado raiz confiável
Name[ru]=Доверенный корневой сертификат
Name[sk]=Dôveryhodný koreňový certifikát
Name[sl]=Zaupanja vredno korensko potrdilo
Name[sr]=Поуздани корени сертификат
Name[sr@ijekavian]=Поуздани корјени сертификат
Name[sr@ijekavianlatin]=Pouzdani korjeni sertifikat
Name[sr@latin]=Pouzdani koreni sertifikat
Name[sv]=Pålitligt rotcertifikat
Name[tr]=Güvenilir Kök Sertifikası
Name[uk]=Кореневий сертифікат з довірою
Name[x-test]=xxTrusted Root Certificatexx
Name[zh_CN]=可信任的根证书
Name[zh_TW]=信任的根憑證
background-color=95,135,255
font-bold=true
[Key Filter #4]
was-validated=true
is-root-certificate=true
is-not-validity=ultimate
Name=Not Trusted Root Certificate
Name[ar]=شهادة جذر غير موثوقة
Name[ca]=Certificat arrel sense confiança
Name[ca@valencia]=Certificat arrel sense confiança
Name[cs]=Nedůvěryhodný kořenový certifikát
Name[da]=Root-certifikat der ikke stoles på
Name[de]=Nicht vertrauenswürdiges Wurzelzertifikat
Name[en_GB]=Not Trusted Root Certificate
Name[eo]=Ne Fidinda Radika Atestilo
Name[es]=Certificado raíz no confiable
Name[et]=Ebausaldusväärne juursertifikaat
Name[eu]=Konfiantza gabeko erro-ziurtagiria
Name[fi]=Ei-luotettu juurivarmenne
Name[fr]=Certificat racine non fiable
Name[gl]=Certificado raíz non autenticado
Name[hu]=Nem megbízható főtanúsítvány
Name[ia]=Certificato de radice sin fide
Name[it]=Certificato radice non affidabile
Name[ja]=信頼されてないルート証明書
Name[ka]=არასანდო ძირითადი სერტიფიკატი
Name[ko]=신뢰하지 않는 루트 인증 기관
Name[nb]=Ikke tiltrodd rot-sertifikat
Name[nl]=Niet vertrouwd hoofdcertificaat
Name[nn]=Ikkje tiltrudd rotsertifikat
Name[pl]=Niezaufany główny certyfikat
Name[pt]=Certificado de Raiz Não Fidedigno
Name[pt_BR]=Certificado raiz não confiável
Name[ru]=Недоверенный корневой сертификат
Name[sk]=Nedôveryhodný koreňový certifikát
Name[sl]=Korensko potrdilo, ki ni zaupanja vredno
Name[sr]=Непоуздани корени сертификат
Name[sr@ijekavian]=Непоуздани корјени сертификат
Name[sr@ijekavianlatin]=Nepouzdani korjeni sertifikat
Name[sr@latin]=Nepouzdani koreni sertifikat
Name[sv]=Opålitligt rotcertifikat
Name[tr]=Güvenilmeyen Kök Sertifikası
Name[uk]=Кореневий сертифікат без довіри
Name[x-test]=xxNot Trusted Root Certificatexx
Name[zh_CN]=未信任的根证书
Name[zh_TW]=不被信任的根憑證
[Key Filter #5]
was-validated=true
is-qualified=true
font-bold=true
Name=Keys for Qualified Signatures
Name[ar]=مفاتيح لشهادات مؤهّلة
Name[ca]=Claus per a les signatures qualificades
Name[ca@valencia]=Claus per a les signatures qualificades
Name[cs]=Klíče kvalifikovaných podpisů
Name[da]=Nøgler til kvalificerede signaturer
Name[de]=Schlüssel für qualifizierte Signaturen
Name[en_GB]=Keys for Qualified Signatures
Name[eo]=Ŝlosiloj por Kvalifikitaj Subskriboj
Name[es]=Claves para firmas cualificadas
Name[et]=Kvalifitseeritud allkirjade võtmed
Name[eu]=Sinadura kualifikaturako gakoak
Name[fi]=Hyväksyttyjen allekirjoitusten avaimet
Name[fr]=Clés pour les signatures qualifiées
Name[gl]=Chaves para sinaturas cualificadas
Name[hu]=Megbízható aláírások kulcsai
Name[ia]=Claves pro signaturas qualificate
Name[ie]=Claves por qualificat signatures
Name[it]=Chiavi per le firme qualificate
Name[ja]=適格電子署名用の鍵
Name[ka]=გასაღებები კვალიფიცირებული ხელმოწერებისთვის
Name[ko]=신뢰하는 서명에 사용할 키
Name[nb]=Nøkler for kvalifiserte signaturer
Name[nl]=Sleutels voor gekwalificeerde ondertekeningen
Name[nn]=Nøklar for kvalifiserte signaturar
Name[pl]=Klucze do podpisów kwalifikowanych
Name[pt]=Chaves para as Assinaturas Qualificadas
Name[pt_BR]=Chaves para assinaturas qualificadas
Name[ru]=Ключи для подписывания
Name[sk]=Kľúče pre kvalifikované podpisy
Name[sl]=Ključi za kvalificirane podpise
Name[sr]=Кључеви за важеће потписе
Name[sr@ijekavian]=Кључеви за важеће потписе
Name[sr@ijekavianlatin]=Ključevi za važeće potpise
Name[sr@latin]=Ključevi za važeće potpise
Name[sv]=Nycklar för kvalificerade signaturer
Name[tr]=Yetkilendirilmiş İmzalar için Anahtarlar
Name[uk]=Ключі підписів обмеженого використання
Name[x-test]=xxKeys for Qualified Signaturesxx
Name[zh_CN]=合格签名的密钥
Name[zh_TW]=合格簽證的金鑰
[Key Filter #6]
was-validated=true
Name=Other Keys
Name[ar]=مفاتيح أخرى
Name[ca]=Altres claus
Name[ca@valencia]=Altres claus
Name[cs]=Ostatní klíče
Name[da]=Andre nøgler
Name[de]=Andere Schlüssel
Name[en_GB]=Other Keys
Name[eo]=Aliaj Ŝlosiloj
Name[es]=Otras claves
Name[et]=Muud võtmed
Name[eu]=Beste gako batzuk
Name[fi]=Muut avaimet
Name[fr]=Autres clés
Name[gl]=Outras chaves
Name[hu]=Egyéb kulcsok
Name[ia]=Altere claves
Name[ie]=Altri claves
Name[it]=Altre chiavi
Name[ja]=その他の鍵
Name[ka]=სხვა გასაღებები
Name[ko]=다른 키
Name[nb]=Andre nøkler
Name[nl]=Andere sleutels
Name[nn]=Andre nøklar
Name[pl]=Inne klucze
Name[pt]=Outras 'Cache'
Name[pt_BR]=Outras chaves
Name[ru]=Другие ключи
Name[sk]=Ostatné kľuče
Name[sl]=Drugi ključi
Name[sr]=Остали кључеви
Name[sr@ijekavian]=Остали кључеви
Name[sr@ijekavianlatin]=Ostali ključevi
Name[sr@latin]=Ostali ključevi
Name[sv]=Andra nycklar
Name[tr]=Diğer Anahtarlar
Name[uk]=Інші ключі
Name[x-test]=xxOther Keysxx
Name[zh_CN]=其他密钥
Name[zh_TW]=其他金鑰
[Key Filter #7]
is-cardkey=true
Name=Smartcard Key
Name[ar]=مفتاح بطاقة ذكيّة
Name[ca]=Clau de targeta intel·ligent
Name[ca@valencia]=Clau de targeta intel·ligent
Name[cs]=Klíč čipové karty
Name[da]=Smartcard-nøgle
Name[de]=Smartcard-Zertifikat
Name[en_GB]=Smartcard Key
Name[eo]=Smartcard Ŝlosilo
Name[es]=Clave de tarjeta inteligente
Name[et]=Kiipkaardi võti
Name[eu]=Txartel-adimenduneko gakoa
Name[fi]=Smartcard-avain
Name[fr]=Clé SmartCard
Name[gl]=Chave de smartcard
Name[hu]=Intelligens kártya kulcs
Name[ia]=Clave de carta intelligente
Name[ie]=Clave de smartcarte
Name[it]=Chiave smartcard
Name[ja]=スマートカードの鍵
Name[ka]=სმარტ ბარათის გასაღები
Name[ko]=스마트카드 키
Name[nb]=Smartkort-nøkkel
Name[nl]=Smartcard-sleutel
Name[nn]=Smartkort-nøkkel
Name[pl]=Klucz na karcie inteligentnej
Name[pt]=Chave do 'Smartcard'
Name[pt_BR]=Chave do Smartcard
Name[ru]=Ключ смарт-карты
Name[sk]=Smartcard kľúč
Name[sl]=Ključ na pametni kartici
Name[sr]=Кључ смарт-картица
Name[sr@ijekavian]=Кључ смарт-картица
Name[sr@ijekavianlatin]=Ključ smart-kartica
Name[sr@latin]=Ključ smart-kartica
Name[sv]=Smartkortsnyckel
Name[tr]=Akıllı Kart Anahtarı
Name[uk]=Ключ картки пам’яті
Name[x-test]=xxSmartcard Keyxx
Name[zh_CN]=智能卡密钥
Name[zh_TW]=智慧卡金鑰
icon=smartcard
[Key Filter #8]
is-openpgp-key=true
Name=OpenPGP Certificates
Name[ar]=شهادات OpenPGP
Name[ca]=Certificats OpenPGP
Name[ca@valencia]=Certificats OpenPGP
Name[cs]=Certifikáty OpenPGP
Name[da]=OpenPGP-certifikater
Name[de]=OpenPGP-Zertifikate
Name[en_GB]=OpenPGP Certificates
Name[eo]=OpenPGP-Atestiloj
Name[es]=Certificados OpenPGP
Name[et]=OpenPGP sertifikaadid
Name[eu]=OpenPGP ziurtagiriak
Name[fi]=OpenPGP-varmenteet
Name[fr]=Certificats OpenPGP
Name[gl]=Certificados OpenPGP
Name[hu]=OpenPGP tanúsítványok
Name[ia]=Certificatos de OpenPGP
Name[ie]=Certificates OpenPGP
Name[it]=Certificati OpenPGP
Name[ka]=OpenPGP -ის სერტიფიკატები
Name[ko]=OpenPGP 인증서
Name[nl]=OpenPGP-certificaten
Name[nn]=OpenPGP-sertifikat
Name[pl]=Certyfikaty OpenPGP
Name[pt]=Certificados do OpenPGP
Name[pt_BR]=Certificados OpenPGP
Name[ru]=Сертификаты OpenPGP
Name[sk]=Certifikáty OpenPGP
Name[sl]=Potrdila OpenPGP
Name[sr]=ОпенПГП сертификати
Name[sr@ijekavian]=ОпенПГП сертификати
Name[sr@ijekavianlatin]=OpenPGP sertifikati
Name[sr@latin]=OpenPGP sertifikati
Name[sv]=OpenPGP-certifikat
Name[tr]=OpenPGP Sertifikaları
Name[uk]=Сертифікати OpenPGP
Name[x-test]=xxOpenPGP Certificatesxx
Name[zh_CN]=OpenPGP 证书
Name[zh_TW]=OpenPGP 憑證
[Key Filter #9]
is-openpgp-key=false
Name=X509 Certificates
Name[ar]=شهادات X509
Name[ca]=Certificats X509
Name[ca@valencia]=Certificats X509
Name[cs]=Certifikáty X509
Name[da]=X509-certifikater
Name[de]=X509-Zertifikate
Name[en_GB]=X509 Certificates
Name[eo]=X509 Atestiloj
Name[es]=Certificados X509
Name[et]=X509 sertifikaadid
Name[eu]=X509 ziurtagiriak
Name[fi]=X509-varmenteet
Name[fr]=Certificats X509
Name[gl]=Certificados X509
Name[hu]=X509 tanúsítványok
Name[ia]=Certificatos X.509
Name[ie]=Certificates X509
Name[it]=Certificati X509
Name[ka]=X509 -ის სერტიფიკატები
Name[ko]=X509 인증서
Name[nl]=X509-certificaten
Name[pl]=Certyfikaty X509
Name[pt]=Certificados X509
Name[pt_BR]=Certificados X.509
Name[ru]=Сертификаты X.509
Name[sk]=Certifikáty X509
Name[sl]=Potrdila X509
Name[sr]=Икс.509 сертификати
Name[sr@ijekavian]=Икс.509 сертификати
Name[sr@ijekavianlatin]=X.509 sertifikati
Name[sr@latin]=X.509 sertifikati
Name[sv]=X509-certifikat
Name[tr]=X509 Sertifikaları
Name[uk]=Сертифікати X509
Name[x-test]=xxX509 Certificatesxx
Name[zh_CN]=X509 证书
Name[zh_TW]=X509 憑證
# Filters that filter for is-de-vs
# are only shown in compliance mode
# de-vs
[Key Filter #10]
is-de-vs=true
was-validated=true
id=de-vs-filter
Name=VS-NfD Compliant
Name[ar]=متوافق مع VS-NfD
Name[ca]=Conforme amb VS-NfD
Name[ca@valencia]=Conforme amb VS-NfD
Name[cs]=Splňující VS-NfD
Name[de]=VS-NfD-konform
Name[en_GB]=VS-NfD Compliant
Name[eo]=VS-NfD Konforma
Name[es]=Compatible con VS-NfD
Name[et]=VS-NfD ühilduv
Name[eu]=«VS-NfD»rekin manakorra
Name[fi]=VS-NfD-yhteensopiva
Name[fr]=Compatible VS-NfD
Name[gl]=Cumpre con VS-NfD
Name[hu]=VS-NfD kompatibilis
Name[ia]=Conforme a VS-NfD
Name[ie]=Conformant a VS-NfD
Name[it]=Conforme allo standard VS-NfD
Name[ka]=VS-NfD თავსებადი
Name[ko]=VS-NfD 적합
Name[nl]=VS-NfD Compliant
Name[pl]=Zgodny z VS-NfD
Name[pt]=Compatível com o VS-NfD
Name[pt_BR]=Compatível com VS-NfD
Name[ru]=Уровень «VS-NfD» (секретно — только для служебного пользования)
Name[sk]=Zhodný s VS-NfD
Name[sl]=Združljiv z VS-NfD
Name[sv]=Stöder VS-NfD
Name[tr]=VS-NfD Uyumlu
Name[uk]=Сумісний із VS-NfD
Name[x-test]=xxVS-NfD Compliantxx
Name[zh_CN]=VS-NfD 兼容
Name[zh_TW]=相容 VS-NfD
foreground-color=0,0,0
background-color=213,250,226
[Key Filter #11]
is-de-vs=false
was-validated=true
id=not-de-vs-filter
Name=Not VS-NfD Compliant
Name[ar]=غير متوافق مع VS-NfD
Name[ca]=No conforme amb VS-NfD
Name[ca@valencia]=No conforme amb VS-NfD
Name[cs]=Nesplňující VS-NfD
Name[de]=Nicht VS-NfD-konform
Name[en_GB]=Not VS-NfD Compliant
Name[eo]=Ne konforma al VS-NfD
Name[es]=No compatible con VS-NfD
Name[et]=VS-NfD ühildumatu
Name[eu]=«VS-NfD»rekin ez manakorra
Name[fi]=Ei VS-NfD-yhteensopiva
Name[fr]=Incompatible VS-NfD
Name[gl]=Non cumpre con VS-NfD
Name[hu]=Nem VS-NfD kompatibilis
Name[ia]=Non conforme a VS-NfD
Name[ie]=Ínconformant a VS-NfD
Name[it]=Non conforme allo standard VS-NfD
Name[ka]=VS-NfD შეუთავსებელი
Name[ko]=VS-NfD 부적합
Name[nl]=Niet VS-NfD Compliant
Name[pl]=Niezgodny z VS-NfD
Name[pt]=Incompatível com o VS-NfD
Name[pt_BR]=Não compatível com VS-NfD
Name[ru]=Не соотвествует уровеню «VS-NfD» (секретно — только для служебного пользования)
Name[sk]=Nezhodný s VS-NfD
Name[sl]=Nezdružljiv z VS-NfD
Name[sv]=Stöder inte VS-NfD
Name[tr]=VS-NfD Uyumlu Değil
Name[uk]=Несумісний із VS-NfD
Name[x-test]=xxNot VS-NfD Compliantxx
Name[zh_CN]=VS-NfD 不兼容
Name[zh_TW]=不相容 VS-NfD
foreground-color=0,0,0
background-color=250,233,235
[Key Filter #12]
match-contexts=appearance
is-de-vs=false
is-expired=true
is-revoked=false
id=not-de-vs-expired-filter
Name=Not VS-NfD Compliant (Expired)
Name[ar]=غير متوافق مع VS-NfD (منتهي)
Name[ca]=No conforme amb VS-NfD (caducada)
Name[ca@valencia]=No conforme amb VS-NfD (caducada)
Name[cs]=Nesplňující VS-NfD (vypršelo)
Name[de]=Nicht VS-NfD-konform (Abgelaufen)
Name[en_GB]=Not VS-NfD Compliant (Expired)
Name[eo]=Ne Konforma al VS-NfD (Eksvalidigita)
Name[es]=No compatible con VS-NfD (expirado)
Name[eu]=«VS-NfD»rekin ez manakorra (iraungita)
Name[fi]=Ei VS-NfD-yhteensopiva (vanhentunut)
Name[fr]=Non compatible avec « VS-NfD » (Expiré)
Name[gl]=Non cumpre con VS-NfD (caducou)
Name[ia]=Non conforme a VS-NfD (Expirate)
Name[ie]=Ínconformant a VS-NfD (expirat)
Name[it]=Non conforme allo standard VS-NfD (scaduto)
Name[ka]=VS-NfD შეუთავსებელი (ვადაგასული)
Name[ko]=VS-NfD 부적합(만료됨)
Name[nl]=Niet VS-NfD Compliant (verlopen)
Name[pl]=Niezgodny z VS-NfD (wygasły)
Name[pt]=Incompatível com o VS-NfD (Expirado)
Name[pt_BR]=Não compatível com VS-NfD (expirado)
Name[ru]=Не соотвествует уровеню «VS-NfD» (секретно — только для служебного пользования) (устаревший)
Name[sl]=Nezdružljiv z VS-NfD (Preteklo)
Name[sv]=Stöder inte VS-NfD (utgången)
Name[tr]=VS-NfD Uyumlu Değil (Süresi dolmuş)
Name[uk]=Несумісний із VS-NfD (строк дії вичерпано)
Name[x-test]=xxNot VS-NfD Compliant (Expired)xx
Name[zh_CN]=VS-NfD 不兼容 (已过期)
foreground-color=0,0,0
background-color=250,233,235
[Key Filter #13]
match-contexts=appearance
is-de-vs=false
is-revoked=true
id=not-de-vs-revoked-filter
Name=Not VS-NfD Compliant (Revoked)
Name[ar]=غير متوافق مع VS-NfD (ملغي)
Name[ca]=No conforme amb VS-NfD (revocada)
Name[ca@valencia]=No conforme amb VS-NfD (revocada)
Name[cs]=Nesplňující VS-NfD (odvoláno)
Name[de]=Nicht VS-NfD-konform (Widerrufen)
Name[en_GB]=Not VS-NfD Compliant (Revoked)
Name[eo]=Ne Konforme al VS-NfD (Revokita)
Name[es]=No compatible con VS-NfD (revocado)
Name[eu]=«VS-NfD»rekin ez manakorra (baliogetua)
Name[fi]=Ei VS-NfD-yhteensopiva (peruttu)
Name[fr]=Non compatible avec « VS-NfD » (Révoqué)
Name[gl]=Non cumpre con VS-NfD (revogouse)
Name[ia]=Non conforme a VS-NfD (Revocate)
Name[ie]=Ínconformant a VS-NfD (revocat)
Name[it]=Non conforme allo standard VS-NfD (revocato)
Name[ka]=VS-NfD შეუთავსებელი (გაუქმებული)
Name[ko]=VS-NfD 부적합(취소됨)
Name[nl]=Niet VS-NfD Compliant (ingetrokken)
Name[pl]=Niezgodny z VS-NfD (odwołany)
Name[pt]=Incompatível com o VS-NfD (Revogado)
Name[pt_BR]=Não compatível com VS-NfD (revogado)
Name[ru]=Не соотвествует уровеню «VS-NfD» (секретно — только для служебного пользования) (отозван)
Name[sl]=Nezdružljiv z VS-NfD (Preklicano)
Name[sv]=Stöder inte VS-NfD (återkallad)
Name[tr]=VS-NfD Uyumlu Değil (Yürürlükten kaldırılmış)
Name[uk]=Несумісний із VS-NfD (відкликано)
Name[x-test]=xxNot VS-NfD Compliant (Revoked)xx
Name[zh_CN]=VS-NfD 不兼容 (已吊销)
foreground-color=0,0,0
background-color=250,233,235
+
+
+[Key Filter #14]
+Name=Disabled Certificates
+Description=Certificates that are disabled
+match-contexts=appearance
+is-disabled=true
+# UINT_MAX - 1
+specificity=4294967294
diff --git a/src/libkleopatrarc.desktop b/src/libkleopatrarc.desktop
index 4e6df616..68383a27 100644
--- a/src/libkleopatrarc.desktop
+++ b/src/libkleopatrarc.desktop
@@ -1,929 +1,937 @@
[Archive Definition #0]
extensions-openpgp=tar
extensions-cms=tar.gz,tgz
id=tar
Name=TAR (PGP®-compatible)
Name[ar]=‏TAR (متوافق مع PGP®)
Name[ca]=TAR (compatible amb PGP®)
Name[ca@valencia]=TAR (compatible amb PGP®)
Name[cs]=TAR (PGP® kompatibilní)
Name[da]=TAR (PGP®-kompatibel)
Name[de]=TAR (PGP®-kompatibel)
Name[en_GB]=TAR (PGP®-compatible)
Name[eo]=TAR (PGP®-kongrua)
Name[es]=TAR (compatible PGP®)
Name[et]=TAR (PGP® ühilduv)
Name[eu]=TAR (PGP®-rekin bateragarria)
Name[fi]=TAR (PGP-yhteensopiva)
Name[fr]=TAR (compatible PGP®)
Name[gl]=TAR (compatíbel con PGP®)
Name[hu]=TAR (PGP® kompatibilis)
Name[ia]=TAR (compatibile con PGP®)
Name[ie]=TAR (compatibil con PGP®)
Name[it]=TAR (compatibile PGP®)
Name[ja]=TAR (PGP® 互換)
Name[ka]=TAR (PGP®-თავსებადი)
Name[ko]=TAR(PGP® 호환)
Name[nb]=TAR (PGP®-kompatibel)
Name[nl]=TAR (PGP®-compatible)
Name[nn]=TAR (PGP®-kompatibel)
Name[pl]=TAR (zgodny z PGP®)
Name[pt]=TAR (compatível com o PGP®)
Name[pt_BR]=TAR (compatível com PGP®)
Name[ru]=TAR (PGP®-совместимый)
Name[sk]=TAR (PGP® kompatibilné)
Name[sl]=TAR (združljiv s PGP®)
Name[sr]=тар (ПГП®-сагласно)
Name[sr@ijekavian]=тар (ПГП®-сагласно)
Name[sr@ijekavianlatin]=tar (PGP®-saglasno)
Name[sr@latin]=tar (PGP®-saglasno)
Name[sv]=TAR (fungerar med PGP®)
Name[tr]=TAR (PGP®-uyumlu)
Name[uk]=TAR (сумісні з PGP®)
Name[x-test]=xxTAR (PGP®-compatible)xx
Name[zh_CN]=TAR(PGP® 兼容)
Name[zh_TW]=TAR (相容 PGP®)
pack-command-openpgp=0|tar cf - --null -T-
pack-command-cms=0|tar cfz - --null -T-
unpack-command-openpgp=tar xf -
unpack-command-cms=tar xfz -
## ZIP can't unpack from stdin, so commented out:
#[Archive Definition #1]
#extensions=zip
#id=zip
#Name=ZIP
#Name[ca]=ZIP
#Name[ca@valencia]=ZIP
#Name[cs]=ZIP
#Name[da]=ZIP
#Name[de]=ZIP
#Name[el]=ZIP
#Name[en_GB]=ZIP
#Name[eo]=ZIP
#Name[es]=ZIP
#Name[et]=ZIP
#Name[fr]=ZIP
#Name[gl]=ZIP
#Name[it]=ZIP
#Name[ja]=ZIP
#Name[kk]=ZIP
#Name[km]=ZIP
#Name[lt]=ZIP
#Name[lv]=ZIP
#Name[nb]=ZIP
#Name[nds]=Zip
#Name[nl]=ZIP
#Name[nn]=ZIP
#Name[pa]=ZIP
#Name[pl]=ZIP
#Name[pt]=ZIP
#Name[pt_BR]=ZIP
#Name[sl]=ZIP
#Name[sv]=ZIP
#Name[tr]=ZIP
#Name[uk]=ZIP
#Name[x-test]=xxZIPxx
#Name[zh_CN]=ZIP
#Name[zh_TW]=ZIP
#pack-command=zip -r - %f
[Archive Definition #3]
extensions=tar.bz2,tbz2
id=bzip2
Name=TAR (with bzip2 compression)
Name[ar]=‏TAR (بضغط bzip2)
Name[ca]=TAR (amb compressió bzip2)
Name[ca@valencia]=TAR (amb compressió bzip2)
Name[cs]=TAR (s bzip2 kompresí)
Name[da]=TAR (med bzip2-komprimering)
Name[de]=TAR (mit bzip2-Kompression)
Name[en_GB]=TAR (with bzip2 compression)
Name[eo]=TAR (kun bzip2 kunpremado)
Name[es]=TAR (con compresión bzip2)
Name[et]=TAR (bzip2 tihendusega)
Name[eu]=TAR (bzip2 konpresioarekin)
Name[fi]=TAR (bzip2-pakattu)
Name[fr]=TAR (avec compression bzip2)
Name[gl]=TAR (con compresión bzip2)
Name[hu]=TAR (bzip2 tömörítéssel)
Name[ia]=TAR (con compression bzip2)
Name[ie]=TAR (compresset med bzip2)
Name[it]=TAR (con compressione bzip2)
Name[ja]=TAR (bzip2 圧縮)
Name[ka]=TAR (bzip2 შეკუმშვით)
Name[ko]=TAR(bzip2 압축)
Name[nb]=TAR (med bzip2-komprimering)
Name[nl]=TAR (met bzip2 compressie)
Name[nn]=TAR (med bzip2-komprimering)
Name[pl]=TAR (z kompresją bzip2)
Name[pt]=TAR (com a compressão 'bzip2')
Name[pt_BR]=TAR (compressão com bzip2)
Name[ru]=TAR (со сжатием bzip2)
Name[sk]=TAR (s bzip2 kompresiou)
Name[sl]=TAR (s stiskanjem bzip2)
Name[sr]=тар 1.1 (уз компресију бзип2)
Name[sr@ijekavian]=тар 1.1 (уз компресију бзип2)
Name[sr@ijekavianlatin]=tar 1.1 (uz kompresiju bzip2)
Name[sr@latin]=tar 1.1 (uz kompresiju bzip2)
Name[sv]=TAR (med komprimering av bzip2)
Name[tr]=TAR (bzip2 sıkıştırmalı)
Name[uk]=TAR (зі стисканням bzip2)
Name[x-test]=xxTAR (with bzip2 compression)xx
Name[zh_CN]=TAR(bzip2 压缩)
Name[zh_TW]=TAR (藉由 bzip2 壓縮)
pack-command=0|tar cfj - --null -T-
unpack-command=tar xfj -
[Checksum Definition #0]
file-patterns=sha256sum.txt,.*\\\\.sha256,.*\\\\.sha2
output-file=sha256sum.txt
id=sha256sum
Name=sha256sum
Name[ar]=تدقيق SHA256
Name[ca]=sha256sum
Name[ca@valencia]=sha256sum
Name[cs]=sha256sum
Name[da]=sha256sum
Name[de]=sha256sum
Name[en_GB]=sha256sum
Name[eo]=sha256sum
Name[es]=sha256sum
Name[et]=sha256sum
Name[eu]=sha256sum
Name[fi]=sha256sum
Name[fr]=sha256sum
Name[gl]=sha256sum
Name[hu]=sha256sum
Name[ia]=sha256sum
Name[ie]=sha256sum
Name[it]=sha256sum
Name[ja]=sha256sum
Name[ka]=sha256sum
Name[ko]=sha256sum
Name[nb]=sha256sum
Name[nl]=sha256sum
Name[nn]=sha256sum
Name[pl]=sha256sum
Name[pt]=sha256sum
Name[pt_BR]=sha256sum
Name[ru]=sha256sum
Name[sk]=sha256sum
Name[sl]=sha256sum
Name[sr]=СХА‑256 сума
Name[sr@ijekavian]=СХА‑256 сума
Name[sr@ijekavianlatin]=SHA‑256 suma
Name[sr@latin]=SHA‑256 suma
Name[sv]=SHA256-summa
Name[tr]=sha256sum
Name[uk]=sha256sum
Name[x-test]=xxsha256sumxx
Name[zh_CN]=sha256sum
Name[zh_TW]=sha256sum
create-command=0|xargs -0 sha256sum --
verify-command=sha256sum -c --
[Checksum Definition #1]
file-patterns=sha1sum.txt,.*\\\\.sha1
output-file=sha1sum.txt
id=sha1sum
Name=sha1sum
Name[ar]=تدقيق SHA1
Name[ca]=sha1sum
Name[ca@valencia]=sha1sum
Name[cs]=sha1sum
Name[da]=sha1sum
Name[de]=sha1sum
Name[en_GB]=sha1sum
Name[eo]=sha1sum
Name[es]=sha1sum
Name[et]=sha1sum
Name[eu]=sha1sum
Name[fi]=sha1sum
Name[fr]=sha1sum
Name[gl]=sha1sum
Name[hu]=sha1sum
Name[ia]=sha1sum
Name[ie]=sha1sum
Name[it]=sha1sum
Name[ja]=sha1sum
Name[ka]=sha1sum
Name[ko]=sha1sum
Name[nb]=sha1sum
Name[nl]=sha1sum
Name[nn]=sha1sum
Name[pl]=sha1sum
Name[pt]=sha1sum
Name[pt_BR]=sha1sum
Name[ru]=sha1sum
Name[sk]=sha1sum
Name[sl]=sha1sum
Name[sr]=СХА‑1 сума
Name[sr@ijekavian]=СХА‑1 сума
Name[sr@ijekavianlatin]=SHA‑1 suma
Name[sr@latin]=SHA‑1 suma
Name[sv]=SHA1-summa
Name[tr]=sha1sum
Name[uk]=sha1sum
Name[x-test]=xxsha1sumxx
Name[zh_CN]=sha1sum
Name[zh_TW]=sha1sum
create-command=0|xargs -0 sha1sum --
verify-command=sha1sum -c --
[Checksum Definition #2]
file-patterns=sha512sum.txt,.*\\\\.sha1
output-file=sha512sum.txt
id=sha512sum
Name=sha512sum
Name[ar]=تدقيق SHA512
Name[ca]=sha512sum
Name[ca@valencia]=sha512sum
Name[cs]=sha512sum
Name[de]=sha512sum
Name[en_GB]=sha512sum
Name[eo]=sha512sum
Name[es]=suma sha512
Name[et]=sha512sum
Name[eu]=sha512sum
Name[fi]=sha512sum
Name[fr]=sha512sum
Name[gl]=sha512sum
Name[hu]=sha512sum
Name[ia]=sha512sum
Name[ie]=sha512sum
Name[it]=sha512sum
Name[ka]=sha512sum
Name[ko]=sha512sum
Name[nl]=sha512sum
Name[nn]=sha512sum
Name[pl]=sha512sum
Name[pt]=sha512sum
Name[pt_BR]=sha512sum
Name[ru]=sha512sum
Name[sk]=sha512sum
Name[sl]=sha512sum
Name[sr]=СХА‑512 сума
Name[sr@ijekavian]=СХА‑512 сума
Name[sr@ijekavianlatin]=SHA‑512 suma
Name[sr@latin]=SHA‑512 suma
Name[sv]=SHA512-summa
Name[tr]=sha512sum
Name[uk]=sha512sum
Name[x-test]=xxsha512sumxx
Name[zh_CN]=sha512sum
Name[zh_TW]=sha512sum
create-command=0|xargs -0 sha512sum --
verify-command=sha512sum -c --
[Checksum Definition #3]
file-patterns=md5sum.txt,.*\\\\.md5
output-file=md5sum.txt
id=md5sum
Name=md5sum
Name[ar]=تدقيق MD5
Name[ca]=md5sum
Name[ca@valencia]=md5sum
Name[cs]=md5sum
Name[da]=md5sum
Name[de]=md5sum
Name[en_GB]=md5sum
Name[eo]=md5sumo
Name[es]=md5sum
Name[et]=md5sum
Name[eu]=md5sum
Name[fi]=md5sum
Name[fr]=md5sum
Name[gl]=md5sum
Name[hu]=md5sum
Name[ia]=md5sum
Name[ie]=md5sum
Name[it]=md5sum
Name[ja]=md5sum
Name[ka]=md5sum
Name[ko]=md5sum
Name[nb]=md5sum
Name[nl]=md5sum
Name[nn]=md5sum
Name[pl]=md5sum
Name[pt]=md5sum
Name[pt_BR]=md5sum
Name[ru]=md5sum
Name[sk]=md5sum
Name[sl]=md5sum
Name[sr]=МД5 сума
Name[sr@ijekavian]=МД5 сума
Name[sr@ijekavianlatin]=MD5 suma
Name[sr@latin]=MD5 suma
Name[sv]=MD5-summa
Name[tr]=md5sum
Name[uk]=md5sum
Name[x-test]=xxmd5sumxx
Name[zh_CN]=md5sum
Name[zh_TW]=md5sum
create-command=0|xargs -0 md5sum --
verify-command=md5sum -c --
[Key Filter #0]
was-validated=false
Name=Not Validated Key
Name[ar]=ليس مفتاحًا متحقّقًا منه
Name[ca]=Clau no validada
Name[ca@valencia]=Clau no validada
Name[cs]=Neověřený klíč
Name[da]=Ikke godkendt nøgle
Name[de]=Ungeprüfter Schlüssel
Name[en_GB]=Not Validated Key
Name[eo]=Ne validigita Ŝlosilo
Name[es]=Clave no validada
Name[et]=Võtme ehtsus kontrollimatu
Name[eu]=Baliozkotu gabeko gakoa
Name[fi]=Varmistamaton avain
Name[fr]=Clé non validée
Name[gl]=Non hai chave validada
Name[hu]=Nem érvényesített kulcs
Name[ia]=Clave non validate
Name[ie]=Clave sin validation
Name[it]=Chiave non convalidata
Name[ja]=検証されていない鍵
Name[ka]=დაუდასტურებელი გასაღები
Name[ko]=검증되지 않은 키
Name[nb]=Nøkkel ikke sjekket for gyldighet
Name[nl]=Geen gevalideerde sleutel
Name[nn]=Ikkje-validert nøkkel
Name[pl]=Niesprawdzony klucz
Name[pt]=Chave Não Validada
Name[pt_BR]=Chave não validada
Name[ru]=Непроверенный ключ
Name[sk]=Neoverený kľúč
Name[sl]=Nepreverjen ključ
Name[sr]=Неоверени кључ
Name[sr@ijekavian]=Неовјерени кључ
Name[sr@ijekavianlatin]=Neovjereni ključ
Name[sr@latin]=Neovereni ključ
Name[sv]=Nyckeln har inte validerats
Name[tr]=Geçerli Olmayan Anahtar
Name[uk]=Неперевірений ключ
Name[x-test]=xxNot Validated Keyxx
Name[zh_CN]=未校验的密钥
Name[zh_TW]=無已驗證的金鑰
[Key Filter #1]
is-expired=true
is-revoked=false
foreground-color=255,0,0
Name=Expired Key
Name[ar]=مفتاح منقضي
Name[ca]=Clau caducada
Name[ca@valencia]=Clau caducada
Name[cs]=Klíč s prošlou platností
Name[da]=Udløbet nøgle
Name[de]=Abgelaufener Schlüssel
Name[en_GB]=Expired Key
Name[eo]=Eksvalidiĝinta Ŝlosilo
Name[es]=Clave expirada
Name[et]=Aegunud võti
Name[eu]=Iraungitako gakoa
Name[fi]=Vanhentunut avain
Name[fr]=Clé expirée
Name[gl]=Chave caducada
Name[hu]=Lejárt kulcs
Name[ia]=Clave expirate
Name[ie]=Expirat clave
Name[it]=Chiave scaduta
Name[ja]=期限切れの鍵
Name[ka]=ვადაგასული გასაღები
Name[ko]=만료된 키
Name[nb]=Utgått nøkkel
Name[nl]=Verlopen sleutel
Name[nn]=Forelda nøkkel
Name[pl]=Klucz, który utracił ważność
Name[pt]=Chave Expirada
Name[pt_BR]=Chave expirada
Name[ru]=Устаревший ключ
Name[sk]=Vypršaný kľúč
Name[sl]=Pretečen ključ
Name[sr]=Истекли кључ
Name[sr@ijekavian]=Истекли кључ
Name[sr@ijekavianlatin]=Istekli ključ
Name[sr@latin]=Istekli ključ
Name[sv]=Utgången nyckel
Name[tr]=Süresi Dolmuş Anahtar
Name[uk]=Застарілий ключ
Name[x-test]=xxExpired Keyxx
Name[zh_CN]=过期密钥
Name[zh_TW]=過期的金鑰
[Key Filter #2]
is-revoked=true
Name=Revoked Key
Name[ar]=مفتاح مسحوب
Name[ca]=Clau revocada
Name[ca@valencia]=Clau revocada
Name[cs]=Odvolaný klíč
Name[da]=Fjernet nøgle
Name[de]=Widerrufener Schlüssel
Name[en_GB]=Revoked Key
Name[eo]=Revokita Ŝlosilo
Name[es]=Clave revocada
Name[et]=Tühistatud võti
Name[eu]=Indargetutako gakoa
Name[fi]=Peruttu avain
Name[fr]=Clé révoquée
Name[gl]=Chave revogada
Name[hu]=Visszavont kulcs
Name[ia]=Clave revocate
Name[ie]=Revocat clave
Name[it]=Chiave revocata
Name[ja]=破棄された鍵
Name[ka]=გაუქმებული გასაღები
Name[ko]=철회된 키
Name[nb]=Tilbakekalt nøkkel
Name[nl]=Ingetrokken sleutel
Name[nn]=Tilbakekalla nøkkel
Name[pl]=Odwołany klucz
Name[pt]=Chave Revogada
Name[pt_BR]=Chave revogada
Name[ru]=Отозванный ключ
Name[sk]=Kľúč so zrušenou platnosťou
Name[sl]=Preklican ključ
Name[sr]=Опозвани кључ
Name[sr@ijekavian]=Опозвани кључ
Name[sr@ijekavianlatin]=Opozvani ključ
Name[sr@latin]=Opozvani ključ
Name[sv]=Återkallad nyckel
Name[tr]=Yürürlükten Kaldırılmış Anahtar
Name[uk]=Анульований ключ
Name[x-test]=xxRevoked Keyxx
Name[zh_CN]=吊销的密钥
Name[zh_TW]=已撤回的金鑰
[Key Filter #3]
was-validated=true
is-root-certificate=true
is-validity=ultimate
Name=Trusted Root Certificate
Name[ar]=شهادة جذر موثوقة
Name[ca]=Certificat arrel de confiança
Name[ca@valencia]=Certificat arrel de confiança
Name[cs]=Důvěryhodný kořenový certifikát
Name[da]=Root-certifikat der stoles på
Name[de]=Vertrauenswürdiges Wurzelzertifikat
Name[en_GB]=Trusted Root Certificate
Name[eo]=Fidinda Radika Atestilo
Name[es]=Certificado raíz confiable
Name[et]=Usaldusväärne juursertifikaat
Name[eu]=Konfiantzadun erro-ziurtagiria
Name[fi]=Luotettu juurivarmenne
Name[fr]=Certificat racine de confiance
Name[gl]=Certificado raíz autenticado
Name[hu]=Megbízható főtanúsítvány
Name[ia]=Certificato de radice con fide
Name[it]=Certificato radice affidabile
Name[ja]=信頼されたルート証明書
Name[ka]=სანდო ძირითადი სერტიფიკატი
Name[ko]=신뢰하는 루트 인증 기관
Name[nb]=Tiltrodd rot-sertifikat
Name[nl]=Vertrouwd hoofdcertificaat
Name[nn]=Tiltrudd rotsertifikat
Name[pl]=Zaufany główny certyfikat
Name[pt]=Certificado de Raiz Fidedigno
Name[pt_BR]=Certificado raiz confiável
Name[ru]=Доверенный корневой сертификат
Name[sk]=Dôveryhodný koreňový certifikát
Name[sl]=Zaupanja vredno korensko potrdilo
Name[sr]=Поуздани корени сертификат
Name[sr@ijekavian]=Поуздани корјени сертификат
Name[sr@ijekavianlatin]=Pouzdani korjeni sertifikat
Name[sr@latin]=Pouzdani koreni sertifikat
Name[sv]=Pålitligt rotcertifikat
Name[tr]=Güvenilir Kök Sertifikası
Name[uk]=Кореневий сертифікат з довірою
Name[x-test]=xxTrusted Root Certificatexx
Name[zh_CN]=可信任的根证书
Name[zh_TW]=信任的根憑證
background-color=95,135,255
font-bold=true
[Key Filter #4]
was-validated=true
is-root-certificate=true
is-not-validity=ultimate
Name=Not Trusted Root Certificate
Name[ar]=شهادة جذر غير موثوقة
Name[ca]=Certificat arrel sense confiança
Name[ca@valencia]=Certificat arrel sense confiança
Name[cs]=Nedůvěryhodný kořenový certifikát
Name[da]=Root-certifikat der ikke stoles på
Name[de]=Nicht vertrauenswürdiges Wurzelzertifikat
Name[en_GB]=Not Trusted Root Certificate
Name[eo]=Ne Fidinda Radika Atestilo
Name[es]=Certificado raíz no confiable
Name[et]=Ebausaldusväärne juursertifikaat
Name[eu]=Konfiantza gabeko erro-ziurtagiria
Name[fi]=Ei-luotettu juurivarmenne
Name[fr]=Certificat racine non fiable
Name[gl]=Certificado raíz non autenticado
Name[hu]=Nem megbízható főtanúsítvány
Name[ia]=Certificato de radice sin fide
Name[it]=Certificato radice non affidabile
Name[ja]=信頼されてないルート証明書
Name[ka]=არასანდო ძირითადი სერტიფიკატი
Name[ko]=신뢰하지 않는 루트 인증 기관
Name[nb]=Ikke tiltrodd rot-sertifikat
Name[nl]=Niet vertrouwd hoofdcertificaat
Name[nn]=Ikkje tiltrudd rotsertifikat
Name[pl]=Niezaufany główny certyfikat
Name[pt]=Certificado de Raiz Não Fidedigno
Name[pt_BR]=Certificado raiz não confiável
Name[ru]=Недоверенный корневой сертификат
Name[sk]=Nedôveryhodný koreňový certifikát
Name[sl]=Korensko potrdilo, ki ni zaupanja vredno
Name[sr]=Непоуздани корени сертификат
Name[sr@ijekavian]=Непоуздани корјени сертификат
Name[sr@ijekavianlatin]=Nepouzdani korjeni sertifikat
Name[sr@latin]=Nepouzdani koreni sertifikat
Name[sv]=Opålitligt rotcertifikat
Name[tr]=Güvenilmeyen Kök Sertifikası
Name[uk]=Кореневий сертифікат без довіри
Name[x-test]=xxNot Trusted Root Certificatexx
Name[zh_CN]=未信任的根证书
Name[zh_TW]=不被信任的根憑證
[Key Filter #5]
was-validated=true
is-qualified=true
font-bold=true
Name=Keys for Qualified Signatures
Name[ar]=مفاتيح لشهادات مؤهّلة
Name[ca]=Claus per a les signatures qualificades
Name[ca@valencia]=Claus per a les signatures qualificades
Name[cs]=Klíče kvalifikovaných podpisů
Name[da]=Nøgler til kvalificerede signaturer
Name[de]=Schlüssel für qualifizierte Signaturen
Name[en_GB]=Keys for Qualified Signatures
Name[eo]=Ŝlosiloj por Kvalifikitaj Subskriboj
Name[es]=Claves para firmas cualificadas
Name[et]=Kvalifitseeritud allkirjade võtmed
Name[eu]=Sinadura kualifikaturako gakoak
Name[fi]=Hyväksyttyjen allekirjoitusten avaimet
Name[fr]=Clés pour les signatures qualifiées
Name[gl]=Chaves para sinaturas cualificadas
Name[hu]=Megbízható aláírások kulcsai
Name[ia]=Claves pro signaturas qualificate
Name[ie]=Claves por qualificat signatures
Name[it]=Chiavi per le firme qualificate
Name[ja]=適格電子署名用の鍵
Name[ka]=გასაღებები კვალიფიცირებული ხელმოწერებისთვის
Name[ko]=신뢰하는 서명에 사용할 키
Name[nb]=Nøkler for kvalifiserte signaturer
Name[nl]=Sleutels voor gekwalificeerde ondertekeningen
Name[nn]=Nøklar for kvalifiserte signaturar
Name[pl]=Klucze do podpisów kwalifikowanych
Name[pt]=Chaves para as Assinaturas Qualificadas
Name[pt_BR]=Chaves para assinaturas qualificadas
Name[ru]=Ключи для подписывания
Name[sk]=Kľúče pre kvalifikované podpisy
Name[sl]=Ključi za kvalificirane podpise
Name[sr]=Кључеви за важеће потписе
Name[sr@ijekavian]=Кључеви за важеће потписе
Name[sr@ijekavianlatin]=Ključevi za važeće potpise
Name[sr@latin]=Ključevi za važeće potpise
Name[sv]=Nycklar för kvalificerade signaturer
Name[tr]=Yetkilendirilmiş İmzalar için Anahtarlar
Name[uk]=Ключі підписів обмеженого використання
Name[x-test]=xxKeys for Qualified Signaturesxx
Name[zh_CN]=合格签名的密钥
Name[zh_TW]=合格簽證的金鑰
[Key Filter #6]
was-validated=true
Name=Other Keys
Name[ar]=مفاتيح أخرى
Name[ca]=Altres claus
Name[ca@valencia]=Altres claus
Name[cs]=Ostatní klíče
Name[da]=Andre nøgler
Name[de]=Andere Schlüssel
Name[en_GB]=Other Keys
Name[eo]=Aliaj Ŝlosiloj
Name[es]=Otras claves
Name[et]=Muud võtmed
Name[eu]=Beste gako batzuk
Name[fi]=Muut avaimet
Name[fr]=Autres clés
Name[gl]=Outras chaves
Name[hu]=Egyéb kulcsok
Name[ia]=Altere claves
Name[ie]=Altri claves
Name[it]=Altre chiavi
Name[ja]=その他の鍵
Name[ka]=სხვა გასაღებები
Name[ko]=다른 키
Name[nb]=Andre nøkler
Name[nl]=Andere sleutels
Name[nn]=Andre nøklar
Name[pl]=Inne klucze
Name[pt]=Outras 'Cache'
Name[pt_BR]=Outras chaves
Name[ru]=Другие ключи
Name[sk]=Ostatné kľuče
Name[sl]=Drugi ključi
Name[sr]=Остали кључеви
Name[sr@ijekavian]=Остали кључеви
Name[sr@ijekavianlatin]=Ostali ključevi
Name[sr@latin]=Ostali ključevi
Name[sv]=Andra nycklar
Name[tr]=Diğer Anahtarlar
Name[uk]=Інші ключі
Name[x-test]=xxOther Keysxx
Name[zh_CN]=其他密钥
Name[zh_TW]=其他金鑰
[Key Filter #7]
is-cardkey=true
Name=Smartcard Key
Name[ar]=مفتاح بطاقة ذكيّة
Name[ca]=Clau de targeta intel·ligent
Name[ca@valencia]=Clau de targeta intel·ligent
Name[cs]=Klíč čipové karty
Name[da]=Smartcard-nøgle
Name[de]=Smartcard-Zertifikat
Name[en_GB]=Smartcard Key
Name[eo]=Smartcard Ŝlosilo
Name[es]=Clave de tarjeta inteligente
Name[et]=Kiipkaardi võti
Name[eu]=Txartel-adimenduneko gakoa
Name[fi]=Smartcard-avain
Name[fr]=Clé SmartCard
Name[gl]=Chave de smartcard
Name[hu]=Intelligens kártya kulcs
Name[ia]=Clave de carta intelligente
Name[ie]=Clave de smartcarte
Name[it]=Chiave smartcard
Name[ja]=スマートカードの鍵
Name[ka]=სმარტ ბარათის გასაღები
Name[ko]=스마트카드 키
Name[nb]=Smartkort-nøkkel
Name[nl]=Smartcard-sleutel
Name[nn]=Smartkort-nøkkel
Name[pl]=Klucz na karcie inteligentnej
Name[pt]=Chave do 'Smartcard'
Name[pt_BR]=Chave do Smartcard
Name[ru]=Ключ смарт-карты
Name[sk]=Smartcard kľúč
Name[sl]=Ključ na pametni kartici
Name[sr]=Кључ смарт-картица
Name[sr@ijekavian]=Кључ смарт-картица
Name[sr@ijekavianlatin]=Ključ smart-kartica
Name[sr@latin]=Ključ smart-kartica
Name[sv]=Smartkortsnyckel
Name[tr]=Akıllı Kart Anahtarı
Name[uk]=Ключ картки пам’яті
Name[x-test]=xxSmartcard Keyxx
Name[zh_CN]=智能卡密钥
Name[zh_TW]=智慧卡金鑰
icon=smartcard
[Key Filter #8]
is-openpgp-key=true
Name=OpenPGP Certificates
Name[ar]=شهادات OpenPGP
Name[ca]=Certificats OpenPGP
Name[ca@valencia]=Certificats OpenPGP
Name[cs]=Certifikáty OpenPGP
Name[da]=OpenPGP-certifikater
Name[de]=OpenPGP-Zertifikate
Name[en_GB]=OpenPGP Certificates
Name[eo]=OpenPGP-Atestiloj
Name[es]=Certificados OpenPGP
Name[et]=OpenPGP sertifikaadid
Name[eu]=OpenPGP ziurtagiriak
Name[fi]=OpenPGP-varmenteet
Name[fr]=Certificats OpenPGP
Name[gl]=Certificados OpenPGP
Name[hu]=OpenPGP tanúsítványok
Name[ia]=Certificatos de OpenPGP
Name[ie]=Certificates OpenPGP
Name[it]=Certificati OpenPGP
Name[ka]=OpenPGP -ის სერტიფიკატები
Name[ko]=OpenPGP 인증서
Name[nl]=OpenPGP-certificaten
Name[nn]=OpenPGP-sertifikat
Name[pl]=Certyfikaty OpenPGP
Name[pt]=Certificados do OpenPGP
Name[pt_BR]=Certificados OpenPGP
Name[ru]=Сертификаты OpenPGP
Name[sk]=Certifikáty OpenPGP
Name[sl]=Potrdila OpenPGP
Name[sr]=ОпенПГП сертификати
Name[sr@ijekavian]=ОпенПГП сертификати
Name[sr@ijekavianlatin]=OpenPGP sertifikati
Name[sr@latin]=OpenPGP sertifikati
Name[sv]=OpenPGP-certifikat
Name[tr]=OpenPGP Sertifikaları
Name[uk]=Сертифікати OpenPGP
Name[x-test]=xxOpenPGP Certificatesxx
Name[zh_CN]=OpenPGP 证书
Name[zh_TW]=OpenPGP 憑證
[Key Filter #9]
is-openpgp-key=false
Name=X509 Certificates
Name[ar]=شهادات X509
Name[ca]=Certificats X509
Name[ca@valencia]=Certificats X509
Name[cs]=Certifikáty X509
Name[da]=X509-certifikater
Name[de]=X509-Zertifikate
Name[en_GB]=X509 Certificates
Name[eo]=X509 Atestiloj
Name[es]=Certificados X509
Name[et]=X509 sertifikaadid
Name[eu]=X509 ziurtagiriak
Name[fi]=X509-varmenteet
Name[fr]=Certificats X509
Name[gl]=Certificados X509
Name[hu]=X509 tanúsítványok
Name[ia]=Certificatos X.509
Name[ie]=Certificates X509
Name[it]=Certificati X509
Name[ka]=X509 -ის სერტიფიკატები
Name[ko]=X509 인증서
Name[nl]=X509-certificaten
Name[pl]=Certyfikaty X509
Name[pt]=Certificados X509
Name[pt_BR]=Certificados X.509
Name[ru]=Сертификаты X.509
Name[sk]=Certifikáty X509
Name[sl]=Potrdila X509
Name[sr]=Икс.509 сертификати
Name[sr@ijekavian]=Икс.509 сертификати
Name[sr@ijekavianlatin]=X.509 sertifikati
Name[sr@latin]=X.509 sertifikati
Name[sv]=X509-certifikat
Name[tr]=X509 Sertifikaları
Name[uk]=Сертифікати X509
Name[x-test]=xxX509 Certificatesxx
Name[zh_CN]=X509 证书
Name[zh_TW]=X509 憑證
# Filters that filter for is-de-vs
# are only shown in compliance mode
# de-vs
[Key Filter #10]
is-de-vs=true
was-validated=true
id=de-vs-filter
Name=VS-NfD Compliant
Name[ar]=متوافق مع VS-NfD
Name[ca]=Conforme amb VS-NfD
Name[ca@valencia]=Conforme amb VS-NfD
Name[cs]=Splňující VS-NfD
Name[de]=VS-NfD-konform
Name[en_GB]=VS-NfD Compliant
Name[eo]=VS-NfD Konforma
Name[es]=Compatible con VS-NfD
Name[et]=VS-NfD ühilduv
Name[eu]=«VS-NfD»rekin manakorra
Name[fi]=VS-NfD-yhteensopiva
Name[fr]=Compatible VS-NfD
Name[gl]=Cumpre con VS-NfD
Name[hu]=VS-NfD kompatibilis
Name[ia]=Conforme a VS-NfD
Name[ie]=Conformant a VS-NfD
Name[it]=Conforme allo standard VS-NfD
Name[ka]=VS-NfD თავსებადი
Name[ko]=VS-NfD 적합
Name[nl]=VS-NfD Compliant
Name[pl]=Zgodny z VS-NfD
Name[pt]=Compatível com o VS-NfD
Name[pt_BR]=Compatível com VS-NfD
Name[ru]=Уровень «VS-NfD» (секретно — только для служебного пользования)
Name[sk]=Zhodný s VS-NfD
Name[sl]=Združljiv z VS-NfD
Name[sv]=Stöder VS-NfD
Name[tr]=VS-NfD Uyumlu
Name[uk]=Сумісний із VS-NfD
Name[x-test]=xxVS-NfD Compliantxx
Name[zh_CN]=VS-NfD 兼容
Name[zh_TW]=相容 VS-NfD
foreground-color=0,0,0
background-color=213,250,226
[Key Filter #11]
is-de-vs=false
was-validated=true
id=not-de-vs-filter
Name=Not VS-NfD Compliant
Name[ar]=غير متوافق مع VS-NfD
Name[ca]=No conforme amb VS-NfD
Name[ca@valencia]=No conforme amb VS-NfD
Name[cs]=Nesplňující VS-NfD
Name[de]=Nicht VS-NfD-konform
Name[en_GB]=Not VS-NfD Compliant
Name[eo]=Ne konforma al VS-NfD
Name[es]=No compatible con VS-NfD
Name[et]=VS-NfD ühildumatu
Name[eu]=«VS-NfD»rekin ez manakorra
Name[fi]=Ei VS-NfD-yhteensopiva
Name[fr]=Incompatible VS-NfD
Name[gl]=Non cumpre con VS-NfD
Name[hu]=Nem VS-NfD kompatibilis
Name[ia]=Non conforme a VS-NfD
Name[ie]=Ínconformant a VS-NfD
Name[it]=Non conforme allo standard VS-NfD
Name[ka]=VS-NfD შეუთავსებელი
Name[ko]=VS-NfD 부적합
Name[nl]=Niet VS-NfD Compliant
Name[pl]=Niezgodny z VS-NfD
Name[pt]=Incompatível com o VS-NfD
Name[pt_BR]=Não compatível com VS-NfD
Name[ru]=Не соотвествует уровеню «VS-NfD» (секретно — только для служебного пользования)
Name[sk]=Nezhodný s VS-NfD
Name[sl]=Nezdružljiv z VS-NfD
Name[sv]=Stöder inte VS-NfD
Name[tr]=VS-NfD Uyumlu Değil
Name[uk]=Несумісний із VS-NfD
Name[x-test]=xxNot VS-NfD Compliantxx
Name[zh_CN]=VS-NfD 不兼容
Name[zh_TW]=不相容 VS-NfD
foreground-color=0,0,0
background-color=250,233,235
[Key Filter #12]
match-contexts=appearance
is-de-vs=false
is-expired=true
is-revoked=false
id=not-de-vs-expired-filter
Name=Not VS-NfD Compliant (Expired)
Name[ar]=غير متوافق مع VS-NfD (منتهي)
Name[ca]=No conforme amb VS-NfD (caducada)
Name[ca@valencia]=No conforme amb VS-NfD (caducada)
Name[cs]=Nesplňující VS-NfD (vypršelo)
Name[de]=Nicht VS-NfD-konform (Abgelaufen)
Name[en_GB]=Not VS-NfD Compliant (Expired)
Name[eo]=Ne Konforma al VS-NfD (Eksvalidigita)
Name[es]=No compatible con VS-NfD (expirado)
Name[eu]=«VS-NfD»rekin ez manakorra (iraungita)
Name[fi]=Ei VS-NfD-yhteensopiva (vanhentunut)
Name[fr]=Non compatible avec « VS-NfD » (Expiré)
Name[gl]=Non cumpre con VS-NfD (caducou)
Name[ia]=Non conforme a VS-NfD (Expirate)
Name[ie]=Ínconformant a VS-NfD (expirat)
Name[it]=Non conforme allo standard VS-NfD (scaduto)
Name[ka]=VS-NfD შეუთავსებელი (ვადაგასული)
Name[ko]=VS-NfD 부적합(만료됨)
Name[nl]=Niet VS-NfD Compliant (verlopen)
Name[pl]=Niezgodny z VS-NfD (wygasły)
Name[pt]=Incompatível com o VS-NfD (Expirado)
Name[pt_BR]=Não compatível com VS-NfD (expirado)
Name[ru]=Не соотвествует уровеню «VS-NfD» (секретно — только для служебного пользования) (устаревший)
Name[sl]=Nezdružljiv z VS-NfD (Preteklo)
Name[sv]=Stöder inte VS-NfD (utgången)
Name[tr]=VS-NfD Uyumlu Değil (Süresi dolmuş)
Name[uk]=Несумісний із VS-NfD (строк дії вичерпано)
Name[x-test]=xxNot VS-NfD Compliant (Expired)xx
Name[zh_CN]=VS-NfD 不兼容 (已过期)
foreground-color=0,0,0
background-color=250,233,235
[Key Filter #13]
match-contexts=appearance
is-de-vs=false
is-revoked=true
id=not-de-vs-revoked-filter
Name=Not VS-NfD Compliant (Revoked)
Name[ar]=غير متوافق مع VS-NfD (ملغي)
Name[ca]=No conforme amb VS-NfD (revocada)
Name[ca@valencia]=No conforme amb VS-NfD (revocada)
Name[cs]=Nesplňující VS-NfD (odvoláno)
Name[de]=Nicht VS-NfD-konform (Widerrufen)
Name[en_GB]=Not VS-NfD Compliant (Revoked)
Name[eo]=Ne Konforme al VS-NfD (Revokita)
Name[es]=No compatible con VS-NfD (revocado)
Name[eu]=«VS-NfD»rekin ez manakorra (baliogetua)
Name[fi]=Ei VS-NfD-yhteensopiva (peruttu)
Name[fr]=Non compatible avec « VS-NfD » (Révoqué)
Name[gl]=Non cumpre con VS-NfD (revogouse)
Name[ia]=Non conforme a VS-NfD (Revocate)
Name[ie]=Ínconformant a VS-NfD (revocat)
Name[it]=Non conforme allo standard VS-NfD (revocato)
Name[ka]=VS-NfD შეუთავსებელი (გაუქმებული)
Name[ko]=VS-NfD 부적합(취소됨)
Name[nl]=Niet VS-NfD Compliant (ingetrokken)
Name[pl]=Niezgodny z VS-NfD (odwołany)
Name[pt]=Incompatível com o VS-NfD (Revogado)
Name[pt_BR]=Não compatível com VS-NfD (revogado)
Name[ru]=Не соотвествует уровеню «VS-NfD» (секретно — только для служебного пользования) (отозван)
Name[sl]=Nezdružljiv z VS-NfD (Preklicano)
Name[sv]=Stöder inte VS-NfD (återkallad)
Name[tr]=VS-NfD Uyumlu Değil (Yürürlükten kaldırılmış)
Name[uk]=Несумісний із VS-NfD (відкликано)
Name[x-test]=xxNot VS-NfD Compliant (Revoked)xx
Name[zh_CN]=VS-NfD 不兼容 (已吊销)
foreground-color=0,0,0
background-color=250,233,235
+
+[Key Filter #14]
+Name=Disabled Certificates
+Description=Certificates that are disabled
+match-contexts=appearance
+is-disabled=true
+# UINT_MAX - 1
+specificity=4294967294

File Metadata

Mime Type
text/x-diff
Expires
Thu, Dec 18, 8:39 AM (1 d, 10 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
c8/50/6ab9bd6d22db4e975e9f598a44ae

Event Timeline