Source code for pkgcore.gpg
__all__ = ("skip_signatures",)
msg_header = "-----BEGIN PGP SIGNED MESSAGE-----\n"
msg_header_len = len(msg_header)
msg_hash = "Hash:"
msg_hash_len = len(msg_hash)
sig_header = "-----BEGIN PGP SIGNATURE-----\n"
sig_header_len = len(sig_header)
sig_footer = "-----END PGP SIGNATURE-----\n"
sig_footer_len = len(sig_footer)
[docs]
def skip_signatures(iterable):
i = iter(iterable)
# format is-
# """
# -----BEGIN PGP SIGNED MESSAGE-----
# Hash: SHA1
#
# """
for line in i:
# so... prune msg first, then
if line.endswith(msg_header):
line = next(i)
while line[msg_hash_len:] == msg_hash:
line = next(i)
# skip blank line after msg.
next(i)
continue
while line.endswith(sig_header):
line = next(i)
# swallow the footer.
while not line.endswith(sig_footer):
line = next(i)
# leave the next line on the stack
line = next(i)
yield line