mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-28 08:03:36 +00:00
Renamed errors to utilities, added more utility functions.
This commit is contained in:
parent
36420059df
commit
edf035c222
@ -1,14 +0,0 @@
|
||||
class SignatureError(Exception):
|
||||
"""Base class for signature-related errors."""
|
||||
|
||||
pass
|
||||
|
||||
class InvalidSignatureError(SignatureError):
|
||||
"""The signature in this message is cryptographically invalid."""
|
||||
|
||||
pass
|
||||
|
||||
class UnwillingHostError(SignatureError):
|
||||
"""The current process isn't willing to host a service for the client."""
|
||||
|
||||
pass
|
||||
@ -8,10 +8,10 @@ isn't verifiable.
|
||||
|
||||
"""
|
||||
|
||||
import ConfigParser as configparser
|
||||
import gnupg
|
||||
import pgpprocessor
|
||||
import unittest
|
||||
import utilities
|
||||
|
||||
def remove_line(string, line, preserve_newlines = True):
|
||||
"""Remove a line from a multi-line string."""
|
||||
@ -22,37 +22,11 @@ def remove_line(string, line, preserve_newlines = True):
|
||||
return str(string.splitlines(preserve_newlines).remove(line))
|
||||
|
||||
|
||||
def load_config():
|
||||
"""Returns data from the test.cfg file."""
|
||||
|
||||
config = configparser.ConfigParser(
|
||||
{"KEYID":
|
||||
"D95C32042EE54FFDB25EC3489F2733F40928D23A"})
|
||||
config.read(["test.cfg"])
|
||||
return config
|
||||
|
||||
|
||||
def multi_sign(message="hi", iterations=3, keyid=None, gpg=None):
|
||||
"""Sign a message several times with a specified key."""
|
||||
|
||||
messages = [message]
|
||||
|
||||
if not gpg:
|
||||
gpg = gnupg.GPG(use_agent = True)
|
||||
if not keyid:
|
||||
keyid = load_config().get("pgpprocessor", "keyid")
|
||||
|
||||
for i in range(iterations):
|
||||
messages.append(str(gpg.sign(messages[i], keyid=keyid)))
|
||||
|
||||
return messages
|
||||
|
||||
|
||||
class MessageWrapper(unittest.TestCase):
|
||||
"""Basic setup for message-signing tests.
|
||||
|
||||
These tests would run much faster if I could use setUpClass (>30x faster:
|
||||
signing four messages for each test consumes lots of entropy that needs to
|
||||
signing three messages for each test consumes lots of entropy that needs to
|
||||
be rebuilt?), but that's a Python 2.7 feature. I'll rewrite this when
|
||||
Debian Stable includes Python 2.7 or Python 3.X. It's much prettier.
|
||||
|
||||
@ -61,7 +35,9 @@ class MessageWrapper(unittest.TestCase):
|
||||
|
||||
self.iterations = 3
|
||||
self.gpg = gnupg.GPG(use_agent = True)
|
||||
self.messages = multi_sign(gpg = self.gpg, iterations = self.iterations)
|
||||
self.messages = utilities.multi_sign(
|
||||
gpg = self.gpg,
|
||||
iterations = self.iterations)
|
||||
|
||||
class UnwrapperTest(MessageWrapper):
|
||||
"""Verify that we can unwrap multiply-signed PGP messages correctly."""
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#! /usr/bin/python -*- mode: autofill; fill-column: 80 -*-
|
||||
#! /usr/bin/python -*- mode: auto-fill; fill-column: 80 -*-
|
||||
|
||||
|
||||
"""Making Santiago dance, in 4 parts:
|
||||
@ -40,17 +40,14 @@ If I produce a listener that just echoes the parameters, I can validate the resp
|
||||
"""
|
||||
|
||||
|
||||
import ConfigParser as configparser
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
import gnupg
|
||||
import logging
|
||||
from errors import InvalidSignatureError, UnwillingHostError
|
||||
import simplesantiago as santiago
|
||||
import test_pgpprocessor
|
||||
import pgpprocessor
|
||||
import utilities
|
||||
|
||||
|
||||
# class SantiagoTest(unittest.TestCase):
|
||||
|
||||
48
ugly_hacks/santiago/utilities.py
Normal file
48
ugly_hacks/santiago/utilities.py
Normal file
@ -0,0 +1,48 @@
|
||||
"""Shared utilities.
|
||||
|
||||
Currently contains a bunch of errors and config-file shortcuts.
|
||||
|
||||
"""
|
||||
|
||||
import ConfigParser as configparser
|
||||
|
||||
|
||||
def load_config(configfile="test.cfg"):
|
||||
"""Returns data from the named config file."""
|
||||
|
||||
config = configparser.ConfigParser(
|
||||
{"KEYID":
|
||||
"D95C32042EE54FFDB25EC3489F2733F40928D23A"})
|
||||
config.read([configfile])
|
||||
return config
|
||||
|
||||
def multi_sign(message="hi", iterations=3, keyid=None, gpg=None):
|
||||
"""Sign a message several times with a specified key."""
|
||||
|
||||
messages = [message]
|
||||
|
||||
if not gpg:
|
||||
gpg = gnupg.GPG(use_agent = True)
|
||||
if not keyid:
|
||||
keyid = load_config().get("pgpprocessor", "keyid")
|
||||
|
||||
for i in range(iterations):
|
||||
messages.append(str(gpg.sign(messages[i], keyid=keyid)))
|
||||
|
||||
return messages
|
||||
|
||||
|
||||
class SignatureError(Exception):
|
||||
"""Base class for signature-related errors."""
|
||||
|
||||
pass
|
||||
|
||||
class InvalidSignatureError(SignatureError):
|
||||
"""The signature in this message is cryptographically invalid."""
|
||||
|
||||
pass
|
||||
|
||||
class UnwillingHostError(SignatureError):
|
||||
"""The current process isn't willing to host a service for the client."""
|
||||
|
||||
pass
|
||||
Loading…
x
Reference in New Issue
Block a user