templates/search.html
{% extends "base.html" %}
{% if search is defined %}
{% set title = "Search Results for " + search %}
{% else %}
{% set title = "Search" %}
{% endif %}
{% block navbar %}
<div class="container">
{% with curr = "search" %}{% include "navbar.html" %}{% endwith %}
</div>
{% endblock %}
{% block content %}
<form role="form" class="form-inline text-center">
<div class="form-group">
<label for="keyid"><h4>Key ID or Name: </h4></label>
<input type="text" style="width: 75%" class="form-control"
id="keyid" name="keyid" placeholder="0x12345678" {% if search is defined %}value="{{ search }}"{% endif %}>
<button type="submit" class="btn btn-default btn-sm">Submit</button>
</div>
</form>
<div class="text-center">
<br>
Tip: Add 0x to your search string to search for a specific key ID.
</div>
{% if keys is defined %}
<hr>
<h2><em>Search results</em></h2>
<nav>
<ul class="pagination">
<li {% if page <= 1 %}class="disabled"{% endif %}>
<a href="{{ url_for("frontend.search", keyid=search, page=page-1) }}" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li><a href="#">{{ page }} of {{ maxpages }}</a></li>
<li {% if page == maxpages %}class="disabled"{% endif %}>
<a href="{{ url_for("frontend.search", keyid=search, page=page + 1) }}" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
<div class="keyinfo">
{% if keys != [] %}
{% for keydb in keys %}
{% set key = keyinfo.from_database_object(keydb) %}
{# Loop over the list of KeyInfos #}
<ul>
<li><strong>pub:</strong> {{ key.get_algo_name()}}-{{ key.get_length() }} / <a href="{{ url_for("frontend.getkeyinfo", key=key.shortid) }}">0x{{ key.shortid }}</a> ({{ key.fingerprint }}) {% if key.revoked %}<strong style="color: red">[REVOKED]</strong>{% elif key.expired %}<strong style="color: red">[EXPIRED]</strong>{% endif %}
<ul>
<li>uid:
<ul>
{% for u in key.uid %}
<li>{{ u }}</li>
{% endfor %}
</ul>
<li>created: {{ key.get_created_ymd() }} expires: {{ key.get_expired_ymd() }}</li>
{% if key.oid %}<li>curve: {{ key.oid }}</li>{% endif %}
</ul>
</li>
{% if key.keybase %}
<li>Keybase:<ul>
{% set kb = key.keybase[0] %}
{% for proof in kb.proofs.values() %}
{# This is the worst line written by a human ever. #}
{# todo make nicer and/or explain #}
<li><a href="{{ proof["proof_url"] }}">{{ proof["presentation_group"] if proof["presentation_group"] != proof["nametag"] else proof["presentation_tag"] }} / {{ proof["nametag"] }}</a><strong style="color: {% if key.keybase[1] %}green"> ✔{% else %}red"> ✖{% endif %}</strong> ({{ proof["proof_id"] }})</li>
{% endfor %}
</ul></li>
{% endif %}
{% for sub in key.subkeys %}
<li><em>sub:</em> 0x{{ sub[-8:] }} ({{ sub }})
<ul>
<li>{% if sub[-8:] in key.signatures %}subsig: 0x{{ key.signatures[sub[-8:]][0][0] }} ({{ key.signatures[sub[-8:]][0][1][0] if key.signatures[sub[-8:]][0][1][0] != "[" else key.signatures[sub[-8:]][0][1] }}){% else %}<strong style="color: red">UNVERIFIED</strong>{% endif %}</li>
</ul>
</li>
{% endfor %}
<li>sigs:</li>
<ul>
{% for sig in key.signatures[key.shortid] %}
<li style="white-space: pre;">{{ key.translate(sig) }} <a href="{{ url_for(".getkeyinfo", key=sig[0]) }}">{{ sig[0] }}</a> ({{ sig[1][0] if sig[1][0] != "[" else sig[1] }})</li>
{% endfor %}
</ul>
</ul>
<hr>
{% endfor %}
{% else %}
No keys found.
{% endif %}
</div>
{% endif %}
{% endblock %}