Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F34206638
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
80 KB
Subscribers
None
View Options
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
Details
Attached
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
Attached To
rLIBKLEO Libkleo
Event Timeline
Log In to Comment