fedmsg-0.9.3/0000755000175000017500000000000012371202100014670 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/PKG-INFO0000644000175000017500000000215212371202100015765 0ustar threebeanthreebean00000000000000Metadata-Version: 1.0 Name: fedmsg Version: 0.9.3 Summary: Fedora Messaging Client API Home-page: https://github.com/fedora-infra/fedmsg/ Author: Ralph Bean Author-email: rbean@redhat.com License: LGPLv2+ Description: Utilities used around Fedora Infrastructure to send and receive messages. Please see ``doc/`` or https://fedmsg.readthedocs.org/ for more info. Build Status ------------ .. |master| image:: https://secure.travis-ci.org/fedora-infra/fedmsg.png?branch=master :alt: Build Status - master branch :target: https://travis-ci.org/#!/fedora-infra/fedmsg .. |develop| image:: https://secure.travis-ci.org/fedora-infra/fedmsg.png?branch=develop :alt: Build Status - develop branch :target: https://travis-ci.org/#!/fedora-infra/fedmsg +----------+-----------+ | Branch | Status | +==========+===========+ | master | |master| | +----------+-----------+ | develop | |develop| | +----------+-----------+ Platform: UNKNOWN fedmsg-0.9.3/logrotate0000644000175000017500000000016412231547317016635 0ustar threebeanthreebean00000000000000/var/log/fedmsg/*.log { weekly missingok compress delaycompress copytruncate minsize 100k } fedmsg-0.9.3/README.rst0000644000175000017500000000145012362250750016375 0ustar threebeanthreebean00000000000000fedmsg -- Fedora Messaging Client API ===================================== .. split here Utilities used around Fedora Infrastructure to send and receive messages. Please see ``doc/`` or https://fedmsg.readthedocs.org/ for more info. Build Status ------------ .. |master| image:: https://secure.travis-ci.org/fedora-infra/fedmsg.png?branch=master :alt: Build Status - master branch :target: https://travis-ci.org/#!/fedora-infra/fedmsg .. |develop| image:: https://secure.travis-ci.org/fedora-infra/fedmsg.png?branch=develop :alt: Build Status - develop branch :target: https://travis-ci.org/#!/fedora-infra/fedmsg +----------+-----------+ | Branch | Status | +==========+===========+ | master | |master| | +----------+-----------+ | develop | |develop| | +----------+-----------+ fedmsg-0.9.3/setup.cfg0000644000175000017500000000013512371202100016510 0ustar threebeanthreebean00000000000000[nosetests] where = fedmsg/tests [egg_info] tag_build = tag_date = 0 tag_svn_revision = 0 fedmsg-0.9.3/fedmsg.d/0000755000175000017500000000000012371202100016357 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg.d/relay.py0000644000175000017500000000274112371176760020077 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # config = dict( endpoints={ # This is the output side of the relay to which all other # services can listen. "relay_outbound": [ "tcp://127.0.0.1:4001", ], }, # This is the address of an active->passive relay. It is used for the # fedmsg-logger command which requires another service with a stable # listening address for it to send messages to. # It is also used by the git-hook, for the same reason. # It is also used by the mediawiki php plugin which, due to the oddities of # php, can't maintain a single passive-bind endpoint of it's own. relay_inbound=[ "tcp://127.0.0.1:2003", ], ) fedmsg-0.9.3/fedmsg.d/ircbot.py0000644000175000017500000000305712315164545020242 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # config = dict( irc=[ dict( network='irc.freenode.net', port=6667, nickname='fedmsg-dev', channel='my-fedmsg-channel', timeout=120, make_pretty=True, make_terse=True, # Don't show the heartbeat... gross. filters=dict( topic=[], body=['lub-dub'], ), ), ], irc_color_lookup={ "fas": "light blue", "bodhi": "green", "git": "red", "tagger": "brown", "wiki": "purple", "logger": "orange", "pkgdb": "teal", "buildsys": "yellow", "planet": "light green", }, irc_method='notice', # Either 'msg' or 'notice' ) fedmsg-0.9.3/fedmsg.d/ssl.py0000644000175000017500000000464412330204655017556 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import os import socket SEP = os.path.sep here = os.getcwd() config = dict( sign_messages=False, validate_signatures=True, # Use these implementations to sign and validate messages crypto_backend='x509', crypto_validate_backends=['x509'], ssldir="/etc/pki/fedmsg", crl_location="https://fedoraproject.org/fedmsg/crl.pem", crl_cache="/var/run/fedmsg/crl.pem", crl_cache_expiry=10, ca_cert_location="https://fedoraproject.org/fedmsg/ca.crt", ca_cert_cache="/var/run/fedmsg/ca.crt", ca_cert_cache_expiry=0, # Never expires certnames={ # In prod/stg, map hostname to the name of the cert in ssldir. # Unfortunately, we can't use socket.getfqdn() #"app01.stg": "app01.stg.phx2.fedoraproject.org", }, # A mapping of fully qualified topics to a list of cert names for which # a valid signature is to be considered authorized. Messages on topics not # listed here are considered automatically authorized. routing_policy={ # Only allow announcements from production if they're signed by a # certain certificate. "org.fedoraproject.prod.announce.announcement": [ "announce-lockbox.phx2.fedoraproject.org", ], }, # Set this to True if you want messages to be dropped that aren't # explicitly whitelisted in the routing_policy. # When this is False, only messages that have a topic in the routing_policy # but whose cert names aren't in the associated list are dropped; messages # whose topics do not appear in the routing_policy are not dropped. routing_nitpicky=False, ) fedmsg-0.9.3/fedmsg.d/gateway.py0000644000175000017500000000047212231547317020416 0ustar threebeanthreebean00000000000000config = { # This is the port for a special, outbound ZMQ pub socket on which we'll # rebroadcast everything on the fedmsg bus. 'fedmsg.consumers.gateway.port': 9940, # Set this number to near, but not quite the fs.file-limit. Try 160000. 'fedmsg.consumers.gateway.high_water_mark': 10000, } fedmsg-0.9.3/fedmsg.d/logging.py0000644000175000017500000000166112362250750020401 0ustar threebeanthreebean00000000000000# Setup fedmsg logging. # See the following for constraints on this format https://bit.ly/Xn1WDn bare_format = "[%(asctime)s][%(name)10s %(levelname)7s] %(message)s" config = dict( logging=dict( version=1, formatters=dict( bare={ "datefmt": "%Y-%m-%d %H:%M:%S", "format": bare_format }, ), handlers=dict( console={ "class": "logging.StreamHandler", "formatter": "bare", "level": "INFO", "stream": "ext://sys.stdout", } ), loggers=dict( fedmsg={ "level": "INFO", "propagate": False, "handlers": ["console"], }, moksha={ "level": "INFO", "propagate": False, "handlers": ["console"], }, ), ), ) fedmsg-0.9.3/fedmsg.d/base.py0000644000175000017500000000445312371201514017661 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean import os config = dict( # Set this to dev if you're hacking on fedmsg or an app. # Set to stg or prod if running in the Fedora Infrastructure environment="dev", # Default is 0 high_water_mark=0, io_threads=1, ## For the fedmsg-hub and fedmsg-relay. ## # This is a status dir to keep a record of the last processed message #status_directory=os.getcwd() + "/status", #status_directory='/var/run/fedmsg/status', # This is the URL of a datagrepper isntance that we can query for backlog. #datagrepper_url="https://apps.fedoraproject.org/datagrepper/raw", # We almost always want the fedmsg-hub to be sending messages with zmq as # opposed to amqp or stomp. zmq_enabled=True, # When subscribing to messages, we want to allow splats ('*') so we tell # the hub to not be strict when comparing messages topics to subscription # topics. zmq_strict=False, # Number of seconds to sleep after initializing waiting for sockets to sync post_init_sleep=0.5, # Wait a whole second to kill all the last io threads for messages to # exit our outgoing queue (if we have any). This is in milliseconds. zmq_linger=1000, # See the following # - http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html # - http://api.zeromq.org/3-2:zmq-setsockopt zmq_tcp_keepalive=1, zmq_tcp_keepalive_cnt=3, zmq_tcp_keepalive_idle=60, zmq_tcp_keepalive_intvl=5, zmq_reconnect_ivl=100, zmq_reconnect_ivl_max=1000, ) fedmsg-0.9.3/fedmsg.d/endpoints.py0000644000175000017500000000350112231547317020754 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import socket hostname = socket.gethostname().split('.', 1)[0] config = dict( # This is a dict of possible addresses from which fedmsg can send # messages. fedmsg.init(...) requires that a 'name' argument be passed # to it which corresponds with one of the keys in this dict. endpoints={ # These are here so your local box can listen to the upstream # infrastructure's bus. Cool, right? :) "fedora-infrastructure": [ "tcp://hub.fedoraproject.org:9940", #"tcp://stg.fedoraproject.org:9940", ], # For other, more 'normal' services, fedmsg will try to guess the # name of it's calling module to determine which endpoint definition # to use. This can be overridden by explicitly providing the name in # the initial call to fedmsg.init(...). #"bodhi.%s" % hostname: ["tcp://127.0.0.1:3001"], #"fas.%s" % hostname: ["tcp://127.0.0.1:3002"], #"fedoratagger.%s" % hostname: ["tcp://127.0.0.1:3003"], }, ) fedmsg-0.9.3/extras/0000755000175000017500000000000012371202100016176 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/extras/koji/0000755000175000017500000000000012371202100017132 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/extras/koji/fedmsg_koji.py0000644000175000017500000000441512231547317022012 0ustar threebeanthreebean00000000000000# Koji callback for sending notifications about events to the fedmsg messagebus # Copyright (c) 2009-2012 Red Hat, Inc. # # Authors: # Ralph Bean # Mike Bonnet from koji.plugin import callbacks from koji.plugin import callback from koji.plugin import ignore_error import fedmsg import kojihub import re # Talk to the fedmsg-relay fedmsg.init(name='relay_inbound', cert_prefix='koji', active=True) MAX_KEY_LENGTH = 255 def camel_to_dots(name): s1 = re.sub('(.)([A-Z][a-z]+)', r'\1.\2', name) return re.sub('([a-z0-9])([A-Z])', r'\1.\2', s1).lower() def get_message_body(topic, *args, **kws): msg = {} if topic == 'package.list.change': msg['tag'] = kws['tag']['name'] msg['package'] = kws['package']['name'] elif topic == 'task.state.change': msg['method'] = kws['info']['method'] msg['attribute'] = kws['attribute'] msg['old'] = kws['old'] msg['new'] = kws['new'] msg['owner'] = kojihub.get_user(kws['info']['owner'])['name'] msg['id'] = kws['info']['id'] elif topic == 'build.state.change': info = kws['info'] msg['name'] = info['name'] msg['version'] = info['version'] msg['release'] = info['release'] msg['attribute'] = kws['attribute'] msg['old'] = kws['old'] msg['new'] = kws['new'] elif topic == 'import': msg['type'] = kws['type'] elif topic in ('tag', 'untag'): msg['tag'] = kws['tag']['name'] build = kws['build'] msg['name'] = build['name'] msg['version'] = build['version'] msg['release'] = build['release'] msg['user'] = kws['user']['name'] elif topic == 'repo.init': msg['tag'] = kws['tag']['name'] elif topic == 'repo.done': msg['tag'] = kws['repo']['tag_name'] return msg # This callback gets run for every koji event that starts with "post" @callback(*[c for c in callbacks.keys() if c.startswith('post')]) @ignore_error def send_message(cbtype, *args, **kws): if cbtype.startswith('post'): msgtype = cbtype[4:] else: msgtype = cbtype[3:] topic = camel_to_dots(msgtype) body = get_message_body(topic, *args, **kws) fedmsg.publish(topic=topic, msg=body, modname='koji') fedmsg-0.9.3/extras/stress/0000755000175000017500000000000012371202100017521 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/extras/stress/mass-sub.py0000755000175000017500000000233412231547317021653 0ustar threebeanthreebean00000000000000#!/usr/bin/env python """ Subscribe to the public gateway N times. It echoes a command to watch a count of file descriptors. Run it. When its maxxed out, that's when its time to echo a message remotely. scp this to remote worker nodes and launch them all at the same time with "./master.sh" """ import sys import os import time import zmq import socket import threading # this is dumb! N = 63 prefix = '[' + socket.gethostname().center(15) + ']' ctx = zmq.Context() start = time.time() class ThreadedJob(threading.Thread): def run(self): self.ctx = ctx self.s = self.ctx.socket(zmq.SUB) connect_to = "tcp://hub.fedoraproject.org:9940" self.s.connect(connect_to) self.s.setsockopt(zmq.SUBSCRIBE, '') topic, msg = self.s.recv_multipart() sys.stdout.flush() threads = [ThreadedJob() for i in range(N)] for thread in threads: thread.start() pid = os.getpid() print prefix, "Checking pid", pid target = 200 length = 0 while length <= target: length = len(os.listdir("/proc/%i/fd/" % os.getpid())) print prefix, length, "is less than", target time.sleep(1) print prefix, "ready to receive..." for thread in threads: thread.join() print prefix, "Done." fedmsg-0.9.3/extras/stress/launcher.sh0000755000175000017500000000035512231547317021705 0ustar threebeanthreebean00000000000000#!/bin/bash # Just an intermediary script to make invocation from xargs easier. echo "SSHing to $1" ssh -tt $1 "bash -c 'source ~/fedmsg/bin/activate; (echo 1;echo 2;echo 3;echo 4;echo 5;echo 6;echo 7) | xargs -rP8 -L1 ./mass-sub.py'" fedmsg-0.9.3/extras/stress/master.sh0000755000175000017500000000054612231547317021401 0ustar threebeanthreebean00000000000000#!/bin/bash # scp the 'mass-sub' script to worker nodes before running this. # When you run this, wait until all the worker nodes stop counting their file # descriptors and report "ready to receive" # The max number of ssh connections to launch in parallel N=50 # Do it. ( echo host1; echo host2; echo host3; ) | xargs -rP$N -L1 ./launcher.sh fedmsg-0.9.3/extras/git-hooks/0000755000175000017500000000000012371202100020102 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/extras/git-hooks/README.rst0000644000175000017500000000021012231547317021603 0ustar threebeanthreebean00000000000000fedmsg/git-hooks ================ These hooks are to be copied to repo locations so that events on the repos are broadcast to the bus. fedmsg-0.9.3/extras/git-hooks/post-receive0000755000175000017500000000314112231547317022455 0ustar threebeanthreebean00000000000000#!/usr/bin/env python import getpass import git import itertools import os import sys import fedmsg import fedmsg.config # Read in all the rev information git-receive-pack hands us. lines = [line.split() for line in sys.stdin.readlines()] # Use $GIT_DIR to determine where this repo is. abspath = os.path.abspath(os.environ['GIT_DIR']) repo_name = '.'.join(abspath.split(os.path.sep)[-1].split('.')[:-1]) username = getpass.getuser() repo = git.repo.Repo(abspath) def _build_commit(rev): old, new, branch = rev branch = '/'.join(branch.split('/')[2:]) commits = repo.iter_commits('{0}..{1}'.format(old, new)) return [dict( name=commit.author.name, email=commit.author.email, username=username, summary=commit.summary, message=commit.message, stats=dict( files=commit.stats.files, total=commit.stats.total, ), rev=rev, path=abspath, repo=repo_name, branch=branch, agent=os.getlogin(), ) for commit in commits if not isinstance(commit, git.TagObject)] commits = map(_build_commit, lines) print "Emitting a message to the fedmsg bus." config = fedmsg.config.load_config([], None) config['active'] = True config['endpoints']['relay_inbound'] = config['relay_inbound'] fedmsg.init(name='relay_inbound', cert_prefix='scm', **config) for commit in itertools.chain(*commits): if commit is None: continue fedmsg.publish( # Expect this to change to just "receive" in the future. topic="receive", msg=dict(commit=commit), modname="git", ) fedmsg-0.9.3/extras/collectd/0000755000175000017500000000000012371202100017767 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/extras/collectd/collection.conf0000644000175000017500000004252312231547317023020 0ustar threebeanthreebean00000000000000DataDir "/var/lib/collectd/rrd" GraphWidth 400 #UnixSockAddr "/var/run/collectd-unixsock" DataSources count DSName "count Bytes/s" RRDTitle "Apache Traffic" RRDVerticalLabel "Bytes/s" RRDFormat "%5.1lf%s" Color count 0000ff DataSources count DSName "count Requests/s" RRDTitle "Apache Traffic" RRDVerticalLabel "Requests/s" RRDFormat "%5.2lf" Color count 00d000 Module GenericStacked DataSources count RRDTitle "Apache scoreboard on {hostname}" RRDVerticalLabel "Slots" RRDFormat "%6.2lf" DSName closing Closing DSName dnslookup DNS lookup DSName finishing Finishing DSName idle_cleanup Idle cleanup DSName keepalive Keep alive DSName logging Logging DSName open Open (empty) DSName reading Reading DSName sending Sending DSName starting Starting DSName waiting Waiting Order open closing dnslookup finishing idle_cleanup keepalive logging open reading sending starting waiting Color closing 000080 Color dnslookup ff0000 Color finishing 008080 Color idle_cleanup ffff00 Color keepalive 0080ff Color logging a000a0 Color open e0e0e0 Color reading 0000ff Color sending 00e000 Color starting ff00ff Color waiting ffb000 Module ArcCounts RRDTitle "ARC {type_instance} on {hostname}" # RRDOptions ... Module GenericIO DataSources read write DSName "read Read " DSName "write Written" RRDTitle "L2ARC traffic" RRDVerticalLabel "Bytes per second" # RRDOptions ... RRDFormat "%5.1lf%s" RRDTitle "L2ARC size on {hostname}" RRDVerticalLabel "Size" RRDFormat "%4.0lf%s" RRDOptions -b 1024 DSName "value Current size" Color value 00e000 DataSources "current target minlimit maxlimit" RRDTitle "ARC size on {hostname}" RRDVerticalLabel "Size" RRDFormat "%4.0lf%s" RRDOptions -b 1024 DSName "current Current size" DSName "target Target size " DSName "maxlimit Max size " DSName "minlimit Min size " Color current 00e000 Color target 0000ff Color minlimit ff0000 Color maxlimit ff00ff DataSources value RRDTitle "{type_instance}ARC ratio on {hostname}" RRDVerticalLabel "Ratio" RRDFormat "%4.1lf" RRDOptions -l 0 DSName "value Hit ratio" DataSources value DSName value Percent RRDTitle "Cache hit ratio for {plugin_instance} {type_instance}" RRDVerticalLabel "Percent" RRDFormat "%5.1lf %%" Module GenericStacked DataSources value RRDTitle "CPU {plugin_instance} usage" RRDVerticalLabel "Jiffies" RRDFormat "%5.2lf" DSName idle Idle DSName nice Nice DSName user User DSName wait Wait-IO DSName system System DSName softirq SoftIRQ DSName interrupt IRQ DSName steal Steal Order idle nice user wait system softirq interrupt steal Color idle e8e8e8 Color nice 00e000 Color user 0000ff Color wait ffb000 Color system ff0000 Color softirq ff00ff Color interrupt a000a0 Color steal 000000 DataSources value DSName value Current RRDTitle "Current ({type_instance})" RRDVerticalLabel "Ampere" RRDFormat "%4.1lfA" Color value ffb000 Module Df DataSources free used Module GenericStacked DataSources value RRDTitle "disk usage on {plugin_instance}" RRDVerticalLabel "Byte" RRDFormat "%6.2lf%s" DSName "snap_used used for snapshots" DSName "snap_reserved snapshot reserve " DSName "used in use " DSName "free free " DSName "sis_saved sis_saved " Order free snap_used snap_reserved sis_saved used Color snap_reverse ff8000 Color used ff0000 Color snap_used 000080 Color snap_reserved ff8000 Color free 00ff00 Color sis_saved 00e0e0 Module GenericIO DataSources read write DSName "read Read " DSName write Write RRDTitle "Disk Latency for {plugin_instance}" RRDVerticalLabel "seconds" Scale 0.000001 RRDFormat "%5.1lf %ss" Module GenericIO DataSources read write DSName "read Read " DSName write Written RRDTitle "Disk Traffic ({instance})" RRDVerticalLabel "Bytes per second" # RRDOptions ... RRDFormat "%5.1lf%s" Module GenericIO DataSources read write DSName "read Read " DSName write Written RRDTitle "Disk Operations ({instance})" RRDVerticalLabel "Operations per second" # RRDOptions ... RRDFormat "%5.1lf" Module GenericStacked DataSources value RRDTitle "Netapp disc ops on {plugin_instance}" RRDVerticalLabel "Ops" RRDFormat "%6.2lf" DSName fcp_ops FCP-Ops DSName nfs_ops NFS-Ops DSName http_ops HTTP-Ops DSName cifs_ops CIFS-Ops DSName dafs_ops DAFS-Ops DSName iscsi_ops iSCSI-Ops Order fcp_ops nfs_ops http_ops cifs_ops dafs_ops iscsi_ops Color fcp_ops 000080 Color nfs_ops ff0000 Color http_ops ffb000 Color cifs_ops 00e0a0 Color dafs_ops 00e000 Color iscsi_ops 00e0ff Module GenericIO DataSources read write DSName "read Read " DSName write Written RRDTitle "Disk Merged Operations ({instance})" RRDVerticalLabel "Merged operations/s" # RRDOptions ... RRDFormat "%5.1lf" Module GenericIO DataSources read write DSName "read Read " DSName write Written RRDTitle "Disk time per operation ({instance})" RRDVerticalLabel "Avg. Time/Op" # RRDOptions ... RRDFormat "%5.1lf%ss" Scale 0.001 DataSources value DSName "value Queries/s" RRDTitle "DNS Opcode {type_instance}" RRDVerticalLabel "Queries/s" RRDFormat "%6.1lf" DataSources conntrack DSName conntrack Conntrack count RRDTitle "nf_conntrack connections on {hostname}" RRDVerticalLabel "Count" RRDFormat "%4.0lf" DataSources entropy DSName entropy Entropy bits RRDTitle "Available entropy on {hostname}" RRDVerticalLabel "Bits" RRDFormat "%4.0lf" DataSources value DSName value RPM RRDTitle "Fanspeed ({instance})" RRDVerticalLabel "RPM" RRDFormat "%6.1lf" Color value 00b000 DataSources frequency DSName frequency Frequency RRDTitle "Frequency ({type_instance})" RRDVerticalLabel "Hertz" RRDFormat "%4.1lfHz" Color frequency a000a0 DataSources value DSName value Humitidy RRDTitle "Humitidy ({instance})" RRDVerticalLabel "Percent" RRDFormat "%4.1lf%%" Color value 00e000 Module GenericIO DataSources rx tx DSName rx RX DSName tx TX RRDTitle "Interface Errors ({type_instance})" RRDVerticalLabel "Errors per second" # RRDOptions ... RRDFormat "%.3lf" Module GenericStacked DataSources value RRDTitle "Interface receive errors ({plugin_instance})" RRDVerticalLabel "Erorrs/s" RRDFormat "%.1lf" Color length f00000 Color over 00e0ff Color crc 00e000 Color frame ffb000 Color fifo f000c0 Color missed 0000f0 Module GenericStacked DataSources value RRDTitle "Interface transmit errors ({plugin_instance})" RRDVerticalLabel "Erorrs/s" RRDFormat "%.1lf" Color aborted f00000 Color carrier 00e0ff Color fifo 00e000 Color heartbeat ffb000 Color window f000c0 Module GenericIO DataSources rx tx DSName rx RX DSName tx TX RRDTitle "Interface Traffic ({instance})" RRDVerticalLabel "Bits per second" # RRDOptions ... RRDFormat "%5.1lf%s" Scale 8 Module GenericIO DataSources rx tx DSName rx RX DSName tx TX RRDTitle "Interface Packets ({type_instance})" RRDVerticalLabel "Packets per second" # RRDOptions ... RRDFormat "%5.1lf%s" DataSources value DSName "value Invocations/s" RRDTitle "Invocations ({instance})" RRDVerticalLabel "Invocations/s" RRDFormat "%5.1lf" Module GenericIO DataSources rx tx DSName "rx Read " DSName "tx Written" RRDTitle "IO Traffic ({instance})" RRDVerticalLabel "Bytes per second" # RRDOptions ... RRDFormat "%5.1lf%s" DataSources value DSName value Bytes/s RRDTitle "Traffic ({type_instance})" RRDVerticalLabel "Bytes per second" # RRDOptions ... RRDFormat "%5.1lf%s" DataSources value DSName value Packets/s RRDTitle "Packets ({type_instance})" RRDVerticalLabel "Packets per second" # RRDOptions ... RRDFormat "%5.1lf" Module GenericStacked DataSources value RRDTitle "Interrupts on {hostname}" RRDVerticalLabel "IRQs/s" RRDFormat "%5.1lf" Module Load Module JavaMemory DataSources value Module GenericStacked DataSources value RRDTitle "Physical memory utilization on {hostname}" RRDVerticalLabel "Bytes" RRDFormat "%5.1lf%s" RRDOptions -b 1024 -l 0 DSName "free Free " DSName "cached Cached " DSName "buffered Buffered" DSName "locked Locked " DSName "used Used " #Order used buffered cached free Order free cached buffered used Color free 00e000 Color cached 0000ff Color buffered ffb000 Color locked ff00ff Color used ff0000 Module GenericStacked DataSources value RRDTitle "MySQL commands ({plugin_instance})" RRDVerticalLabel "Invocations" RRDFormat "%6.2lf" DSName admin_commands admin_commands DSName alter_table alter_table DSName begin begin DSName change_db change_db DSName check check DSName commit commit DSName create_db create_db DSName create_table create_table DSName delete delete DSName drop_db drop_db DSName drop_table drop_table DSName flush flush DSName grant grant DSName insert insert DSName insert_select insert_select DSName lock_tables lock_tables DSName optimize optimize DSName rename_table rename_table DSName replace replace DSName revoke revoke DSName select select DSName set_option set_option DSName show_create_table show_create_table DSName show_databases show_databases DSName show_fields show_fields DSName show_keys show_keys DSName show_master_status show_master_status DSName show_processlist show_processlist DSName show_slave_hosts show_slave_hosts DSName show_status show_status DSName show_tables show_tables DSName show_triggers show_triggers DSName show_variables show_variables DSName unlock_tables unlock_tables DSName update update DSName update_multi update_multi Order admin_commands alter_table begin change_db check commit create_db create_table delete drop_db drop_table flush grant insert insert_select lock_tables optimize rename_table replace revoke select set_option show_create_table show_databases show_fields show_keys show_master_status show_processlist show_slave_hosts show_status show_tables show_triggers show_variables unlock_tables update update_multi Color admin_commands ff0000 Color alter_table ff002a Color begin ff0055 Color change_db ff007f Color check ff00aa Color commit ff00d4 Color create_db ff00ff Color create_table d400ff Color delete aa00ff Color drop_db 7f00ff Color drop_table 5400ff Color flush 2a00ff Color grant 0000ff Color insert 002aff Color insert_select 0055ff Color lock_tables 007fff Color optimize 00a9ff Color rename_table 00d4ff Color replace 00ffff Color revoke 00ffd4 Color select 00ffa9 Color set_option 00ff7f Color show_create_table 00ff55 Color show_databases 00ff2a Color show_fields 00ff00 Color show_keys 2aff00 Color show_master_status 54ff00 Color show_processlist 7fff00 Color show_slave_hosts aaff00 Color show_status d4ff00 Color show_tables ffff00 Color show_triggers ffd400 Color show_variables ffaa00 Color unlock_tables ff7f00 Color update ff5400 Color update_multi ff2a00 Module GenericStacked DataSources value RRDTitle "MySQL handler ({plugin_instance})" RRDVerticalLabel "Invocations" RRDFormat "%6.2lf" DSName commit commit DSName delete delete DSName read_first read_first DSName read_key read_key DSName read_next read_next DSName read_prev read_prev DSName read_rnd read_rnd DSName read_rnd_next read_rnd_next DSName update update DSName write write Order commit delete read_first read_key read_next read_prev read_rnd read_rnd_next update write Color commit ff0000 Color delete ff0099 Color read_first cc00ff Color read_key 3200ff Color read_next 0065ff Color read_prev 00ffff Color read_rnd 00ff65 Color read_rnd_next 33ff00 Color update cbff00 Color write ff9800 Module GenericIO DataSources rx tx DSName rx RX DSName tx TX RRDTitle "MySQL Traffic ({plugin_instance})" RRDVerticalLabel "Bits per second" RRDFormat "%5.1lf%s" Scale 8 DataSources percent DSName percent Percent RRDTitle "Percent ({type_instance})" RRDVerticalLabel "Percent" RRDFormat "%4.1lf%%" Color percent 0000ff DataSources ping DSName "ping Latency" RRDTitle "Network latency ({type_instance})" RRDVerticalLabel "Milliseconds" RRDFormat "%5.2lfms" DataSources value DSName value Watts RRDTitle "Power ({type_instance})" RRDVerticalLabel "Watts" RRDFormat "%6.2lf%sW" Color value 008080 Module PsCputime DataSources value DSName value RSS RRDTitle "Resident Segment Size ({instance})" RRDVerticalLabel "Bytes" RRDFormat "%6.2lf%s" Module GenericStacked DataSources value RRDTitle "Processes on {hostname}" RRDVerticalLabel "Processes" RRDFormat "%5.1lf" DSName running Running DSName sleeping Sleeping DSName paging Paging DSName zombies Zombies DSName blocked Blocked DSName stopped Stopped Order paging blocked zombies stopped running sleeping Color running 00e000 Color sleeping 0000ff Color paging ffb000 Color zombies ff0000 Color blocked ff00ff Color stopped a000a0 Module GenericStacked DataSources value RRDTitle "Swap utilization on {hostname}" RRDVerticalLabel "Bytes" RRDFormat "%5.1lf%s" RRDOptions -b 1024 -l 0 DSName "free Free " DSName "cached Cached " DSName "used Used " #Order used cached free Order free cached used Color free 00e000 Color cached 0000ff Color used ff0000 Module TableSize DataSources value DSName value Bytes RRDTitle "Table size ({instance})" RRDVerticalLabel "Size [Bytes]" # RRDOptions ... RRDFormat "%5.1lf%s" Module GenericStacked DataSources value RRDTitle "TCP connections ({plugin_instance})" RRDVerticalLabel "Connections" RRDFormat "%5.1lf" Order LISTEN CLOSING LAST_ACK CLOSE_WAIT CLOSE TIME_WAIT FIN_WAIT2 FIN_WAIT1 SYN_RECV SYN_SENT ESTABLISHED CLOSED Color ESTABLISHED 00e000 Color SYN_SENT 00e0ff Color SYN_RECV 00e0a0 Color FIN_WAIT1 f000f0 Color FIN_WAIT2 f000a0 Color TIME_WAIT ffb000 Color CLOSE 0000f0 Color CLOSE_WAIT 0000a0 Color LAST_ACK 000080 Color LISTEN ff0000 Color CLOSING 000000 Color CLOSED 0000f0 DataSources value DSName value Temp RRDTitle "Temperature ({instance})" RRDVerticalLabel "°Celsius" RRDFormat "%4.1lf°C" DataSources value DSName "value Threads" RRDTitle "Threads ({instance})" RRDVerticalLabel "Threads" RRDFormat "%5.2lf" DataSources value DSName "value Requests/s" RRDTitle "Requests ({instance})" RRDVerticalLabel "Requests/s" RRDFormat "%6.2lf" DataSources value DSName "value Time" RRDTitle "Time {instance}" RRDVerticalLabel "Seconds" RRDFormat "%6.2lf %ss" Scale 0.001 DataSources users DSName users Users RRDTitle "Users ({type_instance}) on {hostname}" RRDVerticalLabel "Users" RRDFormat "%.1lf" Color users 0000f0 DataSources value DSName value Volts RRDTitle "Voltage ({type_instance})" RRDVerticalLabel "Volts" RRDFormat "%4.1lfV" Color value f00000 Module Wirkleistung DataSources kWh DSName value Wh RRDTitle "Watt" RRDVerticalLabel "W" RRDFormat "%4.1lfW" # This is added for fedmsg Module GenericStacked DataSources count RRDTitle "fedmsg messages on {hostname}" RRDVerticalLabel "Messages" DSName wiki Wiki DSName compose Compose DSName meetbot MeetBot DSName fas FAS DSName bodhi Bodhi DSName git git DSName fedoratagger Tagger DSName unhandled Other DSName logger fedmsg-logger Order wiki compose meetbot fas bodhi git fedoratagger unhandled logger Color git ff0000 Color wiki 00ff00 Color bodhi 0000ff Color meetbot ffff00 Color fas ff00ff Color logger 00ffff Color fedoratagger 000000 Color compose ff0000 Color unhandled 00ff00 # vim: set sw=2 sts=2 et syntax=apache fileencoding=utf-8 : fedmsg-0.9.3/extras/collectd/fedmsg.conf0000644000175000017500000000016012231547317022121 0ustar threebeanthreebean00000000000000LoadPlugin exec Exec "fedmsg" "/usr/bin/fedmsg-collectd" "--collectd-interval" "10" fedmsg-0.9.3/extras/collectd/fedmsg-types.db0000644000175000017500000000004612231547317022726 0ustar threebeanthreebean00000000000000fedmsg_wallboard count:ABSOLUTE:0:U fedmsg-0.9.3/extras/mediawiki/0000755000175000017500000000000012371202100020141 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/extras/mediawiki/fedmsg-emit.php0000644000175000017500000002007212362250750023072 0ustar threebeanthreebean00000000000000getSocket(ZMQ::SOCKET_PUB, "pub-a-dub-dub"); $queue->setSockOpt(ZMQ::SOCKOPT_LINGER, $config['zmq_linger']); if (is_array($config['relay_inbound'])) { // API for fedmsg >= 0.5.2 // TODO - be more robust here and if connecting to the first one fails, try // the next, and the next, and etc... $queue->connect($config['relay_inbound'][0]); } else { // API for fedmsg <= 0.5.1 $queue->connect($config['relay_inbound']); } # Go to sleep for a brief moment.. just long enough to let our zmq socket # initialize. if (array_key_exists('post_init_sleep', $config)) { usleep($config['post_init_sleep'] * 1000000); } return true; } # Register our hooks with mediawiki $wgHooks['ArticleSaveComplete'][] = 'article_save'; $wgHooks['UploadComplete'][] = 'upload_complete'; # This is a reimplementation of the python code in fedmsg/crypto.py # That file is authoritative. Changes there should be reflected here. function sign_message($message_obj) { global $config; # This is required so that the string we sign is identical in python and in # php. Ordereddict is used there; ksort here. deep_ksort($message_obj); # It would be best to pass JSON_UNESCAPE_SLASHES as an option here, but it is # not available until php-5.4 $message = json_encode($message_obj); # In the meantime, we'll remove escaped slashes ourselves. This is # necessary in order to produce the exact same encoding as python (so that our # signatures match for validation). $message = stripcslashes($message); # Step 0) - Find our cert. $fqdn = gethostname(); $tokens = explode('.', $fqdn); $hostname = $tokens[0]; $ssldir = $config['ssldir']; $certname = $config['certnames']['mediawiki.'.$hostname]; # Step 1) - Load and encode the X509 cert $cert_obj = openssl_x509_read(file_get_contents( $ssldir.'/'.$certname.".crt" )); $cert = ""; openssl_x509_export($cert_obj, $cert); $cert = base64_encode($cert); # Step 2) - Load and sign the jsonified message with the RSA private key $rsa_private = openssl_get_privatekey(file_get_contents( $ssldir.'/'.$certname.".key" )); $signature = ""; openssl_sign($message, $signature, $rsa_private); $signature = base64_encode($signature); # Step 3) - Stuff it back in the message and return $message_obj['signature'] = $signature; $message_obj['certificate'] = $cert; return $message_obj; } function emit_message($subtopic, $message) { global $config, $queue; # Re-implement some of the logc from fedmsg/core.py # We'll have to be careful to keep this up to date. $prefix = "org.fedoraproject." . $config['environment'] . ".wiki."; $topic = $prefix . $subtopic; $message_obj = array( "topic" => $topic, "msg" => $message, "timestamp" => round(time(), 3), "msg_id" => date("Y") . "-" . uuid_create(), "username" => "apache", # TODO -> we don't have a good way to increment this counter from php yet. "i" => 1, ); if (array_key_exists('sign_messages', $config) and to_bool($config['sign_messages'])) { $message_obj = sign_message($message_obj); } $envelope = json_encode($message_obj); $queue->send($topic, ZMQ::MODE_SNDMORE); $queue->send($envelope); } function article_save( &$article, &$user, $text, $summary, $minoredit, $watchthis, $sectionanchor, &$flags, $revision, &$status, $baseRevId ) { # If for some reason or another we can't create our socket, then bail. if (!initialize()) { return false; } $topic = "article.edit"; $title = $article->getTitle(); if ( $title->getNsText() ) { $titletext = $title->getNsText() . ":" . $title->getText(); } else { $titletext = $title->getText(); } if ( is_object($revision) ) { $url = $title->getFullURL('diff=prev&oldid=' . $revision->getId()); } else { $url = $title->getFullURL(); } # Just send on all the information we can... change the attr names to be # more pythonic in style, though. $msg = array( "title" => $titletext, "user" => $user->getName(), "minor_edit" => $minoredit, "watch_this" => $watchthis, "section_anchor" => $sectionanchor, "revision" => $revision, "base_rev_id" => $baseRevId, "url" => $url, #"summary" => $summary, # We *used* to send this, but it mucked things up. # https://fedorahosted.org/fedora-infrastructure/ticket/3738#comment:7 #"text" => $text, # We *could* send this, but it's a lot of spam. # TODO - flags? # TODO - status? ); emit_message($topic, $msg); return true; } function upload_complete(&$image) { # If for some reason or another we can't create our socket, then bail. if (!initialize()) { return false; } $topic = "upload.complete"; $msg = array( "file_exists" => $image->getLocalFile()->fileExists, // 1 or 0 "media_type" => $image->getLocalFile()->media_type, // examples: "AUDIO", "VIDEO", ... "mime" => $image->getLocalFile()->mime, // example: audio/mp3 "major_mime" => $image->getLocalFile()->major_mime, // e.g. audio "minor_mime" => $image->getLocalFile()->minor_mime, // e.g. mp3 "size" => $image->getLocalFile()->size, //in bytes, e.g. 2412586 "user_id" => $image->getLocalFile()->user, // int userId "user_text" => $image->getLocalFile()->user_text, // the username "description" => $image->getLocalFile()->description, "url" => $image->getLocalFile()->url, // gives the relavive url for direct access of the uploaded media "title" => $image->getLocalFile()->getTitle(), // gives a title object for the current media ); emit_message($topic, $msg); return true; } ?> fedmsg-0.9.3/scripts/0000755000175000017500000000000012371202100016357 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/scripts/fedmsg-config0000755000175000017500000000012512303164666021036 0ustar threebeanthreebean00000000000000#!/usr/bin/env python import fedmsg.commands.config fedmsg.commands.config.config() fedmsg-0.9.3/setup.py0000644000175000017500000001235212371202076016421 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # try: from setuptools import setup except ImportError: from ez_setup import use_setuptools use_setuptools() from setuptools import setup import sys import os import platform data_config = {} # We would set this up every time, but it results in an easy_install sandbox # violation when fedmsg is installed as a dep from PyPI. Consequently, we # disable it unless the user explicitly asks for it. if '--with-fedmsg-config' in sys.argv: # Specific the path for the config's file for some layout. # https://github.com/fedora-infra/fedmsg/issues/193 list_fedmsgd = os.listdir('fedmsg.d') if 'VIRTUAL_ENV' in os.environ: path_config = os.environ['VIRTUAL_ENV'] + "/etc/fedmsg.d" else: if platform.system() == 'Windows': # Don't know the config path on Windows path_config = 'C:/fedmsg.d' else: path_config = '/etc/fedmsg.d' data_config = {'data_files': [(path_config, list_fedmsgd)]} f = open('README.rst') long_description = f.read().strip() long_description = long_description.split('split here', 1)[1] f.close() # Ridiculous as it may seem, we need to import multiprocessing and # logging here in order to get tests to pass smoothly on python 2.7. try: import multiprocessing import logging except Exception: pass install_requires = [ 'pyzmq', 'kitchen', 'moksha.hub>=1.3.0', 'requests', 'pygments', 'six', #'daemon', 'psutil', # These are "optional" for now to make installation from pypi easier. #'M2Crypto', #'m2ext', ] tests_require = [ 'nose', 'mock', 'sqlalchemy', # For the persistent-store test(s). ] if sys.version_info[0] == 2 and sys.version_info[1] <= 6: install_requires.extend([ 'argparse', 'ordereddict', 'logutils', ]) tests_require.extend([ 'unittest2', ]) setup( name='fedmsg', version='0.9.3', description="Fedora Messaging Client API", long_description=long_description, author='Ralph Bean', author_email='rbean@redhat.com', url='https://github.com/fedora-infra/fedmsg/', license='LGPLv2+', install_requires=install_requires, tests_require=tests_require, test_suite='nose.collector', packages=[ 'fedmsg', 'fedmsg.encoding', 'fedmsg.commands', 'fedmsg.consumers', # fedmsg.text is deprecated in favor of fedmsg.meta, but we'll leave it # around for backwards compatibility. It's a symlink, for now. 'fedmsg.text', 'fedmsg.meta', 'fedmsg.replay', 'fedmsg.tests', 'fedmsg.crypto' ], include_package_data=True, zip_safe=False, scripts=[ # This is separate from the other console scripts just for efficiency's # sake. It gets called over and over and over again by our mediawiki # plugin/mod_php. By making it *not* a setuptools console_script it # does a lot less IO work to stand up. # Before: # $ strace fedmsg-config 2>&1 | wc -l # 34843 # After: # $ strace fedmsg-config 2>&1 | wc -l # 13288 'scripts/fedmsg-config', ], entry_points={ 'console_scripts': [ "fedmsg-logger=fedmsg.commands.logger:logger", "fedmsg-tail=fedmsg.commands.tail:tail", "fedmsg-hub=fedmsg.commands.hub:hub", "fedmsg-relay=fedmsg.commands.relay:relay", "fedmsg-gateway=fedmsg.commands.gateway:gateway", #"fedmsg-config=fedmsg.commands.config:config", "fedmsg-irc=fedmsg.commands.ircbot:ircbot", "fedmsg-collectd=fedmsg.commands.collectd:collectd", "fedmsg-announce=fedmsg.commands.announce:announce", "fedmsg-trigger=fedmsg.commands.trigger:trigger", "fedmsg-dg-replay=fedmsg.commands.replay:replay", ], 'moksha.consumer': [ "fedmsg-dummy=fedmsg.consumers.dummy:DummyConsumer", "fedmsg-relay=fedmsg.consumers.relay:RelayConsumer", "fedmsg-gateway=fedmsg.consumers.gateway:GatewayConsumer", "fedmsg-ircbot=fedmsg.consumers.ircbot:IRCBotConsumer", ], 'moksha.producer': [ ], # fedmsg core only provides one metadata provider. 'fedmsg.meta': [ "logger=fedmsg.meta.logger:LoggerProcessor", "announce=fedmsg.meta.announce:AnnounceProcessor", ], }, **data_config ) fedmsg-0.9.3/fedmsg/0000755000175000017500000000000012371202100016135 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/meta/0000755000175000017500000000000012371202100017063 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/meta/announce.py0000644000175000017500000000246312362250750021266 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # from fedmsg.meta.base import BaseProcessor class AnnounceProcessor(BaseProcessor): __name__ = "announce" __description__ = "Official Fedora Announcements" __link__ = "https://fedoraproject.org/" __docs__ = "https://fedoraproject.org/" __obj__ = "Announcements" def subtitle(self, msg, **config): return msg['msg']['message'] def link(self, msg, **config): return msg['msg']['link'] def usernames(self, msg, **config): return set([msg['username']]) fedmsg-0.9.3/fedmsg/meta/logger.py0000644000175000017500000000333312362250750020734 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # from fedmsg.meta.base import BaseProcessor class LoggerProcessor(BaseProcessor): __name__ = "logger" __description__ = "miscellaneous Fedora Infrastructure shell scripts" __link__ = "https://fedoraproject.org/wiki/Infrastructure" __docs__ = "https://fedoraproject.org/wiki/Infrastructure" __obj__ = "System Logs" def subtitle(self, msg, **config): if 'logger.log' in msg['topic']: if 'log' in msg['msg']: result = msg['msg']['log'] else: result = self._("") return result + " (%s)" % msg.get('username', 'none') else: return self._("") def usernames(self, msg, **config): if 'username' in msg: return set([msg['username']]) else: # *OLD* messages in datanommer's db don't have a username. return set() fedmsg-0.9.3/fedmsg/meta/__init__.py0000644000175000017500000002024612330204655021214 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # Luke Macken # """ :mod:`fedmsg.meta` handles the conversion of fedmsg messages (dict-like json objects) into internationalized human-readable strings: strings like ``"nirik voted on a tag in tagger"`` and ``"lmacken commented on a bodhi update."`` The intent is to use the module 1) in the ``fedmsg-irc`` bot and 2) in the gnome-shell desktop notification widget. The sky is the limit, though. The primary entry point is :func:`fedmsg.meta.msg2repr` which takes a dict and returns the string representation. Portions of that string are in turn produced by :func:`fedmsg.meta.msg2title`, :func:`fedmsg.meta.msg2subtitle`, and :func:`fedmsg.meta.msg2link`. Message processing is handled by a list of MessageProcessors (instances of :class:`fedmsg.meta.base.BaseProcessor`) which are discovered on a setuptools **entry-point**. Messages for which no MessageProcessor exists are handled gracefully. The original deployment of fedmsg in `Fedora Infrastructure` uses metadata providers/message processors from a plugin called `fedmsg_meta_fedora_infrastructure `_. If you'd like to add your own processors for your own deployment, you'll need to extend :class:`fedmsg.meta.base.BaseProcessor` and override the appropriate methods. If you package up your processor and expose it on the ``fedmsg.meta`` entry-point, your new class will need to be added to the :data:`fedmsg.meta.processors` list at runtime. End users can have multiple plugin sets installed simultaneously. """ import six # gettext is used for internationalization. I have tested that it can produce # the correct files, but I haven't submitted it to anyone for translation. import gettext t = gettext.translation('fedmsg', 'locale', fallback=True) if six.PY3: _ = t.gettext else: _ = t.ugettext from fedmsg.meta.default import DefaultProcessor import logging log = logging.getLogger("fedmsg") class ProcessorsNotInitialized(Exception): def __iter__(self): raise self __len__ = __iter__ processors = ProcessorsNotInitialized("You must first call " "fedmsg.meta.make_processors(**config)") def make_processors(**config): """ Initialize all of the text processors. You'll need to call this once before using any of the other functions in this module. >>> import fedmsg.config >>> import fedmsg.meta >>> config = fedmsg.config.load_config([], None) >>> fedmsg.meta.make_processors(**config) >>> text = fedmsg.meta.msg2repr(some_message_dict, **config) """ import pkg_resources global processors processors = [] for processor in pkg_resources.iter_entry_points('fedmsg.meta'): try: processors.append(processor.load()(_, **config)) except Exception as e: log.warn("Failed to load %r processor." % processor.name) log.warn(str(e)) # This should always be last processors.append(DefaultProcessor(_, **config)) # By default we have three builtin processors: Default, Logger, and # Announce. If these are the only three, then we didn't find any # externally provided ones. calls to msg2subtitle and msg2link likely will # not work the way the user is expecting. if len(processors) == 3: log.warn("No fedmsg.meta plugins found. fedmsg.meta.msg2* crippled") def msg2processor(msg, **config): """ For a given message return the text processor that can handle it. This will raise a :class:`fedmsg.meta.ProcessorsNotInitialized` exception if :func:`fedmsg.meta.make_processors` hasn't been called yet. """ for processor in processors: if processor.handle_msg(msg, **config) is not None: return processor else: return processors[-1] # DefaultProcessor def legacy_condition(cls): def _wrapper(f): def __wrapper(msg, legacy=False, **config): try: return f(msg, **config) except KeyError: if legacy: return cls() else: raise __wrapper.__doc__ = f.__doc__ __wrapper.__name__ = f.__name__ return __wrapper return _wrapper def with_processor(): def _wrapper(f): def __wrapper(msg, processor=None, **config): if not processor: processor = msg2processor(msg, **config) return f(msg, processor=processor, **config) __wrapper.__doc__ = f.__doc__ __wrapper.__name__ = f.__name__ return __wrapper return _wrapper @legacy_condition(six.text_type) @with_processor() def msg2repr(msg, processor, **config): """ Return a human-readable or "natural language" representation of a dict-like fedmsg message. Think of this as the 'top-most level' function in this module. """ fmt = u"{title} -- {subtitle} {link}" title = msg2title(msg, **config) subtitle = processor.subtitle(msg, **config) link = processor.link(msg, **config) or '' return fmt.format(**locals()) @legacy_condition(six.text_type) @with_processor() def msg2title(msg, processor, **config): """ Return a 'title' or primary text associated with a message. """ return processor.title(msg, **config) @legacy_condition(six.text_type) @with_processor() def msg2subtitle(msg, processor, **config): """ Return a 'subtitle' or secondary text associated with a message. """ return processor.subtitle(msg, **config) @legacy_condition(six.text_type) @with_processor() def msg2link(msg, processor, **config): """ Return a URL associated with a message. """ return processor.link(msg, **config) @legacy_condition(six.text_type) @with_processor() def msg2icon(msg, processor, **config): """ Return a primary icon associated with a message. """ return processor.icon(msg, **config) @legacy_condition(six.text_type) @with_processor() def msg2secondary_icon(msg, processor, **config): """ Return a secondary icon associated with a message. """ return processor.secondary_icon(msg, **config) @legacy_condition(set) @with_processor() def msg2usernames(msg, processor=None, legacy=False, **config): """ Return a set of FAS usernames associated with a message. """ return processor.usernames(msg, **config) @legacy_condition(set) @with_processor() def msg2packages(msg, processor, **config): """ Return a set of package names associated with a message. """ return processor.packages(msg, **config) @legacy_condition(set) @with_processor() def msg2objects(msg, processor, **config): """ Return a set of objects associated with a message. "objects" here is the "objects" from english grammar.. meaning, the thing in the message upon which action is being done. The "subject" is the user and the "object" is the packages, or the wiki articles, or the blog posts. Where possible, use slash-delimited names for objects (as in wiki URLs). """ return processor.objects(msg, **config) @legacy_condition(dict) @with_processor() def msg2emails(msg, processor, **config): """ Return a dict mapping of usernames to email addresses. """ return processor.emails(msg, **config) @legacy_condition(dict) @with_processor() def msg2avatars(msg, processor, **config): """ Return a dict mapping of usernames to avatar URLs. """ return processor.avatars(msg, **config) fedmsg-0.9.3/fedmsg/meta/default.py0000644000175000017500000000216512362250750021103 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # from fedmsg.meta.base import BaseProcessor class DefaultProcessor(BaseProcessor): __name__ = "unhandled" __description__ = "fedmsg doesn't know how to handle this message" __link__ = "https://github.com/fedora-infra/fedmsg" __docs__ = "https://fedmsg.readthedocs.org/" __obj__ = "Everything Else" fedmsg-0.9.3/fedmsg/meta/base.py0000644000175000017500000001062712362250750020373 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # Luke Macken import re class BaseProcessor(object): """ Base Processor. Without being extended, this doesn't actually handle any messages. Processors require that an ``internationalization_callable`` be passed to them at instantiation. Internationalization is often done at import time, but we handle it at runtime so that a single process may translate fedmsg messages into multiple languages. Think: an IRC bot that runs #fedora-fedmsg, #fedora-fedmsg-es, #fedora-fedmsg-it. Or: a twitter bot that posts to multiple language-specific accounts. That feature is currently unused, but fedmsg.meta supports future internationalization (there may be bugs to work out). """ # These six properties must be overridden by child-classes. # They can be used by applications to give more context to messages. If # the BodhiProcessor can handle a message, then our caller's code can use # these attributes to say "btw, this message is from Bodhi, the Fedora # update system. It lives at https://admin.fedoraproject.org/updates/ # and you can read more about it at https://fedoraproject.org/wiki/Bodhi" __name__ = None __description__ = None __link__ = None __docs__ = None __obj__ = None __icon__ = None # An automatically generated regex to match messages for this processor __prefix__ = None def __init__(self, internationalization_callable, **config): self._ = internationalization_callable if not self.__name__: raise ValueError("Must declare a __name__") if not self.__description__: raise ValueError("Must declare a __description__") if not self.__link__: raise ValueError("Must declare a __link__") if not self.__docs__: raise ValueError("Must declare a __docs__") if not self.__obj__: raise ValueError("Must declare a __obj__") # Build a regular expression used to match message topics for us self.__prefix__ = re.compile('^%s\.(%s)(\.(.*))?$' % ( config['topic_prefix_re'], self.__name__.lower())) def handle_msg(self, msg, **config): """ If we can handle the given message, return the remainder of the topic. Returns None if we can't handle the message. """ match = self.__prefix__.match(msg['topic']) if match: return match.groups()[-1] or "" def title(self, msg, **config): return '.'.join(msg['topic'].split('.')[3:]) def subtitle(self, msg, **config): """ Return a "subtitle" for the message. """ return "" def link(self, msg, **config): """ Return a "link" for the message. """ return "" def icon(self, msg, **config): """ Return a "icon" for the message. """ return self.__icon__ def secondary_icon(self, msg, **config): """ Return a "secondary icon" for the message. """ def usernames(self, msg, **config): """ Return a set of FAS usernames associated with a message. """ return set() def packages(self, msg, **config): """ Return a set of package names associated with a message. """ return set() def objects(self, msg, **config): """ Return a set of objects associated with a message. """ return set() def emails(self, msg, **config): """ Return a dict of emails associated with a message. """ return dict() def avatars(self, msg, **config): """ Return a dict of avatar URLs associated with a message. """ return dict() fedmsg-0.9.3/fedmsg/utils.py0000644000175000017500000001370512371162175017676 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import six import zmq import logging import inspect try: from collections import OrderedDict except ImportError: from ordereddict import OrderedDict def set_high_water_mark(socket, config): """ Set a high water mark on the zmq socket. Do so in a way that is cross-compatible with zeromq2 and zeromq3. """ if config['high_water_mark']: if hasattr(zmq, 'HWM'): # zeromq2 socket.setsockopt(zmq.HWM, config['high_water_mark']) else: # zeromq3 socket.setsockopt(zmq.SNDHWM, config['high_water_mark']) socket.setsockopt(zmq.RCVHWM, config['high_water_mark']) # TODO -- this should be in kitchen, not fedmsg def guess_calling_module(default=None): # Iterate up the call-stack and return the first new top-level module for frame in (f[0] for f in inspect.stack()): modname = frame.f_globals['__name__'].split('.')[0] if modname != "fedmsg": return modname # Otherwise, give up and just return the default. return default def set_tcp_keepalive(socket, config): """ Set a series of TCP keepalive options on the socket if and only if 1) they are specified explicitly in the config and 2) the version of pyzmq has been compiled with support We ran into a problem in FedoraInfrastructure where long-standing connections between some hosts would suddenly drop off the map silently. Because PUB/SUB sockets don't communicate regularly, nothing in the TCP stack would automatically try and fix the connection. With TCP_KEEPALIVE options (introduced in libzmq 3.2 and pyzmq 2.2.0.1) hopefully that will be fixed. See the following - http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html - http://api.zeromq.org/3-2:zmq-setsockopt """ keepalive_options = { # Map fedmsg config keys to zeromq socket constants 'zmq_tcp_keepalive': 'TCP_KEEPALIVE', 'zmq_tcp_keepalive_cnt': 'TCP_KEEPALIVE_CNT', 'zmq_tcp_keepalive_idle': 'TCP_KEEPALIVE_IDLE', 'zmq_tcp_keepalive_intvl': 'TCP_KEEPALIVE_INTVL', } for key, const in keepalive_options.items(): if key in config: attr = getattr(zmq, const, None) if attr: socket.setsockopt(attr, config[key]) def set_tcp_reconnect(socket, config): """ Set a series of TCP reconnect options on the socket if and only if 1) they are specified explicitly in the config and 2) the version of pyzmq has been compiled with support Once our fedmsg bus grew to include many hundreds of endpoints, we started notices a *lot* of SYN-ACKs in the logs. By default, if an endpoint is unavailable, zeromq will attempt to reconnect every 100ms until it gets a connection. With this code, you can reconfigure that to back off exponentially to some max delay (like 1000ms) to reduce reconnect storm spam. See the following - http://api.zeromq.org/3-2:zmq-setsockopt """ reconnect_options = { # Map fedmsg config keys to zeromq socket constants 'zmq_reconnect_ivl': 'RECONNECT_IVL', 'zmq_reconnect_ivl_max': 'RECONNECT_IVL_MAX', } for key, const in reconnect_options.items(): if key in config: attr = getattr(zmq, const, None) if attr: socket.setsockopt(attr, config[key]) def load_class(location): """ Take a string of the form 'fedmsg.consumers.ircbot:IRCBotConsumer' and return the IRCBotConsumer class. """ mod_name, cls_name = location = location.strip().split(':') tokens = mod_name.split('.') fromlist = '[]' if len(tokens) > 1: fromlist = '.'.join(tokens[:-1]) module = __import__(mod_name, fromlist=fromlist) try: return getattr(module, cls_name) except AttributeError as e: raise ImportError("%r not found in %r" % (cls_name, mod_name)) def dict_query(dic, query): """ Query a dict with 'dotted notation'. Returns an OrderedDict. A query of "foo.bar.baz" would retrieve 'wat' from this:: dic = { 'foo': { 'bar': { 'baz': 'wat', } } } Multiple queries can be specified if comma-separated. For instance, the query "foo.bar.baz,foo.bar.something_else" would return this:: OrderedDict({ "foo.bar.baz": "wat", "foo.bar.something_else": None, }) """ if not isinstance(query, six.string_types): raise ValueError("query must be a string, not %r" % type(query)) def _browse(tokens, d): """ Recurse through a dict to retrieve a value. """ current, rest = tokens[0], tokens[1:] if not rest: return d.get(current, None) if current in d: if isinstance(d[current], dict): return _browse(rest, d[current]) elif rest: return None else: return d[current] keys = [key.strip().split('.') for key in query.split(',')] return OrderedDict([ ('.'.join(tokens), _browse(tokens, dic)) for tokens in keys ]) fedmsg-0.9.3/fedmsg/replay/0000755000175000017500000000000012371202100017431 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/replay/__init__.py0000644000175000017500000001165412330204655021565 0ustar threebeanthreebean00000000000000# This file is part of fedmsg # Copyright (C) 2013 Simon Chopin # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Simon Chopin # Ralph Bean # import six import fedmsg.encoding import fedmsg.utils import socket import zmq class ReplayContext(object): def __init__(self, **config): ''' This will initiate a Context that just waits for clients to connect and proxies their queries to the store and back. To start the listening, use the listen() method. ''' self.config = config # No point of a replay context without message store if not config.get('persistent_store', None): raise ValueError("No valid persistent_store config value found.") self.store = config['persistent_store'] self.hostname = socket.gethostname().split('.', 1)[0] if not config.get("name", None): # Try to guess an appropriate name # It is however probably better if the name is explicitly defined. module_name = fedmsg.utils.guess_calling_module(default="fedmsg") config["name"] = module_name + '.' + self.hostname self.context = zmq.Context(config['io_threads']) self.publisher = self.context.socket(zmq.REP) # If there's a Key error, let if fail. endpoint = "tcp://*:{port}".format( port=config['replay_endpoints'][config['name']].rsplit(':')[-1] ) try: self.publisher.bind(endpoint) fedmsg.utils.set_high_water_mark(self.publisher, self.config) fedmsg.utils.set_tcp_keepalive(self.publisher, self.config) except zmq.ZMQError: raise IOError("The replay endpoint cannot be bound.") # Put this in a separate method to ease testing. def _req_rep_cycle(self): res = self.publisher.poll(1000) if res > 0: raw = self.publisher.recv() query = fedmsg.encoding.loads(raw.decode('utf-8')) try: self.publisher.send_multipart([ fedmsg.encoding.dumps(m).encode('utf-8') for m in self.store.get(query) ]) except ValueError as e: self.publisher.send( u"error: '{0}'".format(six.text_type(e)).encode('utf-8')) def listen(self): try: while True: self._req_rep_cycle() finally: self.publisher.close() def get_replay(name, query, config, context=None): endpoint = config.get('replay_endpoints', {}).get(name, None) if not endpoint: raise IOError("No appropriate replay endpoint " "found for {0}".format(name)) if not context: context = zmq.Context(config['io_threads']) # A replay endpoint isn't PUB/SUB but REQ/REP, as it allows # for bidirectional communication socket = context.socket(zmq.REQ) try: socket.connect(endpoint) except zmq.ZMQError as e: raise IOError("Error when connecting to the " "replay endpoint: '{0}'".format(str(e))) # REQ/REP dance socket.send(fedmsg.encoding.dumps(query).encode('utf-8')) msgs = socket.recv_multipart() socket.close() for m in msgs: try: yield fedmsg.encoding.loads(m.decode('utf-8')) except ValueError: # We assume that if it isn't JSON then it's an error message raise ValueError(m) def check_for_replay(name, names_to_seq_id, msg, config, context=None): prev_seq_id = names_to_seq_id.get(name, None) cur_seq_id = msg.get("seq_id", None) if prev_seq_id is None or cur_seq_id is None: return [msg] if cur_seq_id <= prev_seq_id: # Might have been delayed by network lag or something, in which case # we assume the replay has already been asked for and we dismiss it return [] if cur_seq_id == prev_seq_id+1 or prev_seq_id < 0: ret = [msg] else: ret = list(get_replay(name, { "seq_id_range": (prev_seq_id, cur_seq_id) }, config, context)) if len(ret) == 0 or ret[-1]['seq_id'] < msg['seq_id']: ret.append(msg) names_to_seq_id[name] = cur_seq_id return ret fedmsg-0.9.3/fedmsg/replay/sqlstore.py0000644000175000017500000000740112330204655021675 0ustar threebeanthreebean00000000000000# This file is part of fedmsg # Copyright (C) 2013 Simon Chopin # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Simon Chopin # from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() from sqlalchemy import Column, Integer, String, Text, DateTime, or_ from sqlalchemy.orm import sessionmaker from datetime import datetime import json class SqlMessage(Base): # This should probably be customizeable? __tablename__ = "fedmsg_messages" seq_id = Column(Integer, primary_key=True) uuid = Column(String(36)) topic = Column(String) timestamp = Column(DateTime) # The raw message, including the metadata (signature, topic, etc) msg = Column(Text) class SqlStore(object): def __init__(self, engine): self.engine = engine self.session_class = sessionmaker(bind=engine) Base.metadata.create_all(engine) def add(self, msg): session = self.session_class() msg_object = SqlMessage( uuid=msg['msg_id'], timestamp=datetime.fromtimestamp(msg['timestamp']), topic=msg['topic'], # We still have to add the seq_id field msg="" ) session.add(msg_object) session.commit() msg['seq_id'] = msg_object.seq_id msg_object.msg = json.dumps(msg) session.commit() session.close() return msg def _query_seq_ids(self, arg): return SqlMessage.seq_id.in_(arg) def _query_seq_id(self, arg): return SqlMessage.seq_id == arg def _query_seq_id_range(self, arg): try: sid_beg, sid_end = arg except (TypeError, ValueError): raise ValueError('Ill-format "sed_id_range" field') return SqlMessage.sed_id.between(sid_beg, sid_end) def _query_msg_ids(self, arg): return SqlMessage.uuid.in_(arg) def _query_msg_id(self, arg): return SqlMessage.uuid == arg def _query_time(self, arg): try: time_beg, time_end = arg except (TypeError, ValueError): raise ValueError('Ill-format "time" field') return SqlMessage.timestamp.between( datetime.fromtimestamp(time_beg), datetime.fromtimestamp(time_end) ) def get(self, query): predicates = [] for key, value in query.items(): fn = getattr(self, '_query_{0}'.format(key), None) if not fn: raise ValueError('Unsupported field: "key"') try: predicates.append(fn(value)) except ValueError: raise except Exception: raise ValueError('Something went wrong when processing ' 'the field "{0}"'.format(key)) session = self.session_class() ret = [json.loads(m[0]) for m in session.query(SqlMessage.msg) .filter(or_(*predicates)).all()] session.close() if len(ret) == 0: raise ValueError('There was no match for the given query') return ret fedmsg-0.9.3/fedmsg/consumers/0000755000175000017500000000000012371202100020153 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/consumers/relay.py0000644000175000017500000000410512231547317021662 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import fedmsg import logging from fedmsg.consumers import FedmsgConsumer log = logging.getLogger(__name__) class RelayConsumer(FedmsgConsumer): config_key = 'fedmsg.consumers.relay.enabled' def __init__(self, hub): self.hub = hub self.DBSession = None # The consumer should pick up *all* messages. self.topic = self.hub.config.get('topic_prefix', 'org.fedoraproject') if not self.topic.endswith('*'): self.topic += '*' super(RelayConsumer, self).__init__(hub) self.validate_signatures = False def consume(self, msg): ## FIXME - for some reason twisted is screwing up fedmsg. #fedmsg.__context.publisher.send_multipart( # [msg['topic'], fedmsg.encoding.dumps(msg['body'])] #) # # We have to do this instead. This works for the fedmsg-relay service # since it doesn't need to do any formatting of the message. It just # forwards raw messages. # # This isn't scalable though. It needs to be solved for future # consumers to use the nice fedmsg.send_message interface we use # everywhere else. log.debug("Got message %r" % msg) self.hub.send_message(topic=msg['topic'], message=msg['body']) fedmsg-0.9.3/fedmsg/consumers/dummy.py0000644000175000017500000000270012231547317021700 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import fedmsg from fedmsg.consumers import FedmsgConsumer import logging class DummyConsumer(FedmsgConsumer): config_key = 'fedmsg.consumers.dummy.enabled' def __init__(self, hub): self.hub = hub self.DBSession = None # The consumer should pick up *all* messages. self.topic = self.hub.config.get('topic_prefix', 'org.fedoraproject') if not self.topic.endswith('*'): self.topic += '*' return super(DummyConsumer, self).__init__(hub) def consume(self, msg): # Do nothing. log = logging.getLogger("moksha.hub") log.debug("Duhhhh... got: %r" % msg) fedmsg-0.9.3/fedmsg/consumers/ircbot.py0000644000175000017500000002403212362250750022026 0ustar threebeanthreebean00000000000000# -*- coding; utf-8 -*- # This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # Ryan Brown """ A bot that takes a config and puts messages matching given regexes in specified IRC channels. """ import fedmsg import fedmsg.encoding import fedmsg.meta from fedmsg.meta import _ import copy import re import time import pygments import pygments.lexers import pygments.formatters from fedmsg.consumers import FedmsgConsumer from twisted.words.protocols import irc from twisted.internet import protocol from twisted.internet import reactor from twisted.internet import defer import logging log = logging.getLogger(__name__) mirc_colors = { "white": 0, "black": 1, "blue": 2, "green": 3, "red": 4, "brown": 5, "purple": 6, "orange": 7, "yellow": 8, "light green": 9, "teal": 10, "light cyan": 11, "light blue": 12, "pink": 13, "grey": 14, "light grey": 15, } def ircprettify(title, subtitle, link="", config=None): def markup(s, color): return "\x03%i%s\x03" % (mirc_colors[color], s) config = config or {} if link: link = markup(link, "teal") else: link = "" color_lookup = config.get('irc_color_lookup', {}) title_color = color_lookup.get(title.split('.')[0], "light grey") title = markup(title, title_color) fmt = u"{title} -- {subtitle} {link}" return fmt.format(title=title, subtitle=subtitle, link=link) class FedMsngr(irc.IRCClient): # The 0.6 seconds here is empircally guessed so we don't get dropped by # freenode. FIXME - this should be pulled from the config. lineRate = 0.6 sourceURL = "https://github.com/fedora-infra/fedmsg" def __init__(self, *args, **kw): super(FedMsgnr, self).__init__(*args, **kw) def _get_nickname(self): return self.factory.nickname nickname = property(_get_nickname) def __init__(self, *args, **kwargs): self._modecallback = {} def signedOn(self): self.join(self.factory.channel) log.info("Signed on as %s." % (self.nickname,)) def joined(self, channel): log.info("Joined %s." % (channel,)) self.factory.parent_consumer.add_irc_client(self) def got_modes(modelist): modes = ''.join(modelist) if 'c' in modes: log.info("%s has +c is on. No prettiness" % channel) self.factory.pretty = False self.modes(channel).addCallback(got_modes) def modes(self, channel): channel = channel.lower() d = defer.Deferred() if channel not in self._modecallback: self._modecallback[channel] = ([], []) self._modecallback[channel][0].append(d) self.sendLine("MODE %s" % channel) return d def irc_RPL_CHANNELMODEIS(self, prefix, params): """ Handy reference for IRC mnemonics www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_3 """ channel = params[1].lower() modes = params[2] if channel not in self._modecallback: return n = self._modecallback[channel][1] n.append(modes) callbacks, modelist = self._modecallback[channel] for cb in callbacks: cb.callback(modelist) del self._modecallback[channel] class FedMsngrFactory(protocol.ClientFactory): protocol = FedMsngr def __init__(self, channel, nickname, filters, pretty, terse, parent_consumer): self.channel = channel self.nickname = nickname self.filters = filters self.pretty = pretty self.terse = terse self.parent_consumer = parent_consumer self.log = logging.getLogger("moksha.hub") def clientConnectionLost(self, connector, reason): self.log.warning("Lost connection (%s), reconnecting." % (reason,)) self.parent_consumer.del_irc_clients(factory=self) connector.connect() def clientConnectionFailed(self, connector, reason): self.log.error("Could not connect: %s" % (reason,)) class IRCBotConsumer(FedmsgConsumer): validate_signatures = False config_key = 'fedmsg.consumers.ircbot.enabled' def __init__(self, hub): self.hub = hub self.DBSession = None self.irc_clients = [] # The consumer should pick up *all* messages. self.topic = self.hub.config.get('topic_prefix', 'org.fedoraproject') if not self.topic.endswith('*'): self.topic += '*' super(IRCBotConsumer, self).__init__(hub) fedmsg.meta.make_processors(**hub.config) if not getattr(self, '_initialized', False): return irc_settings = hub.config.get('irc') for settings in irc_settings: network = settings.get('network', 'irc.freenode.net') port = settings.get('port', 6667) channel = settings.get('channel', None) if not channel: self.log.error("No channel specified. Ignoring entry.") continue if not channel.startswith("#"): channel = "#" + channel nickname = settings.get('nickname', "fedmsg-bot") pretty = settings.get('make_pretty', False) terse = settings.get('make_terse', False) timeout = settings.get('timeout', 120) filters = self.compile_filters(settings.get('filters', None)) factory = FedMsngrFactory(channel, nickname, filters, pretty, terse, self) reactor.connectTCP(network, port, factory, timeout=timeout) def add_irc_client(self, client): self.irc_clients.append(client) def del_irc_clients(self, client=None, factory=None): if factory: self.irc_clients = [ c for c in self.irc_clients if c.factory != factory ] if client and client in self.irc_clients: self.irc_clients.remove(client) def compile_filters(self, filters): compiled_filters = dict(topic=[], body=[]) for tag, flist in filters.items(): for f in flist: compiled_filters[tag].append(re.compile(f)) return compiled_filters def apply_filters(self, filters, topic, msg): for f in filters.get('topic', []): if f and re.search(f, topic): return False for f in filters.get('body', []): if f and re.search(f, str(msg)): return False return True def prettify(self, topic, msg, pretty=False, terse=False): if terse: if pretty: if (self.hub.config.get('validate_signatures') and not fedmsg.crypto.validate(msg, **self.hub.config)): # If we're validating signatures the message is invalid, # then be careful with it and don't pass it to fedmsg.meta. title = topic if 'signature' not in msg: subtitle = _("(unsigned)") else: subtitle = _("(invalid signature!)") link = None else: # Otherwise, either we aren't validating signatures, or we # are and the message passed validation. title = fedmsg.meta.msg2title(msg, **self.hub.config) subtitle = fedmsg.meta.msg2subtitle(msg, **self.hub.config) link = fedmsg.meta.msg2link(msg, **self.hub.config) return ircprettify( title=title, subtitle=subtitle, link=link, config=self.hub.config, ) else: return fedmsg.meta.msg2repr(msg, **self.hub.config) msg = copy.deepcopy(msg) if msg.get('topic', None): msg.pop('topic') if msg.get('timestamp', None): msg['timestamp'] = time.ctime(msg['timestamp']) if pretty: msg = pygments.highlight( fedmsg.encoding.pretty_dumps(msg), pygments.lexers.JavascriptLexer(), pygments.formatters.TerminalFormatter() ).strip().encode('UTF-8') return "{0:<30} {1}".format(topic, msg) def consume(self, msg): """ Forward on messages from the bus to all IRC connections. """ log.debug("Got message %r" % msg) topic, body = msg.get('topic'), msg.get('body') for client in self.irc_clients: if not client.factory.filters or ( client.factory.filters and self.apply_filters(client.factory.filters, topic, body) ): raw_msg = self.prettify( topic=topic, msg=body, pretty=client.factory.pretty, terse=client.factory.terse, ) send = getattr(client, self.hub.config['irc_method'], 'notice') send(client.factory.channel, raw_msg.encode('utf-8')) backlog = self.incoming.qsize() if backlog and (backlog % 20) == 0: warning = "* backlogged by %i messages" % backlog self.log.warning(warning) send(client.factory.channel, warning.encode('utf-8')) fedmsg-0.9.3/fedmsg/consumers/__init__.py0000644000175000017500000002331212371177264022313 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import inspect import json import logging import os import psutil import requests import threading import time import moksha.hub.api.consumer import fedmsg.crypto import fedmsg.encoding from fedmsg.replay import check_for_replay class FedmsgConsumer(moksha.hub.api.consumer.Consumer): """ Base class for fedmsg consumers. The fedmsg consumption API is really just a thin wrapper over moksha. Moksha expects consumers to: * Declare themselves on the moksha.consumers python entry-point. * Declare a ``consume(...)`` method. * Specify a ``topic``. All this class does in addition to moksha is: * Provide a mechanism for disabling/enabling consumers by configuration in a consistent way (namely, by use of ``config_key``). If you set ``validate_signatures = False`` on your consumer, it will be exempt from global validation rules. Messages will not be checked for authenticity before being handed off to your consume method. This is handy if you're developing or building a special-case consumer. The consumer used by ``fedmsg-relay`` (described in :doc:`commands`) sets ``validate_signatures = False`` so that it can transparently forward along everything and let the terminal endpoints decide whether or not to consume particular messages. * Provide a mechanism for automatically validating fedmsg messages with :mod:`fedmsg.crypto`. * Provide a mechanism to play back messages that haven't been received by the hub even though emitted. To make use of this feature, you have to set ``replay_name`` to some string corresponding to an endpoint in the ``replay_endpoints`` dict in the configuration. You must set ``config_key`` to some string. A config value by that name must be True in the config parsed by :mod:`fedmsg.config` in order for the consumer to be activated. """ validate_signatures = False config_key = None def __init__(self, hub): module = inspect.getmodule(self).__name__ name = self.__class__.__name__ self.log = logging.getLogger("fedmsg") if not self.config_key: raise ValueError("%s:%s must declare a 'config_key'" % ( module, name)) self.log.debug("%s is %r" % ( self.config_key, hub.config.get(self.config_key) )) if not hub.config.get(self.config_key, False): self.log.info('* disabled by config - %s:%s' % (module, name)) return self.log.info(' enabled by config - %s:%s' % (module, name)) # This call "completes" registration of this consumer with the hub. super(FedmsgConsumer, self).__init__(hub) # Now, re-get our logger to override the one moksha assigns us. self.log = logging.getLogger("fedmsg") if self.validate_signatures: self.validate_signatures = self.hub.config['validate_signatures'] if hasattr(self, "replay_name"): self.name_to_seq_id = {} if self.replay_name in self.hub.config.get("replay_endpoints", {}): self.name_to_seq_id[self.replay_name] = -1 # Check if we have a status file to see if we have a backlog or not. # Create its directory if it doesn't exist. self.status_directory = self.hub.config.get('status_directory') self.status_filename, self.status_lock = None, None if self.status_directory: # Extract proc name and handle differences between py2.6 and py2.7 proc_name = current_proc().name if callable(proc_name): proc_name = proc_name() self.status_filename = os.path.join( self.status_directory, proc_name, type(self).__name__) topmost_directory, _ = self.status_filename.rsplit('/', 1) if not os.path.exists(topmost_directory): os.makedirs(topmost_directory) self.datagrepper_url = self.hub.config.get('datagrepper_url') if self.status_filename and self.datagrepper_url: # First, try to read in the status from a previous run and fire off # a thread to set up our workload. self.log.info("Backlog handling setup. status: %r, url: %r" % ( self.status_filename, self.datagrepper_url)) self.status_lock = threading.Lock() try: with self.status_lock: with open(self.status_filename, 'r') as f: data = f.read() moksha.hub.reactor.reactor.callInThread(self._backlog, data) except IOError as e: self.log.info(e) else: self.log.info("No backlog handling. status: %r, url: %r" % ( self.status_filename, self.datagrepper_url)) def _backlog(self, data): """Find all the datagrepper messages between 'then' and 'now'. Put those on our work queue. Should be called in a thread so as not to block the hub at startup. """ try: data = json.loads(data) except ValueError as e: self.log.info("Status contents are %r" % data) self.log.exception(e) self.log.info("Skipping backlog retrieval.") return last = data['message']['body'] if isinstance(last, basestring): last = json.loads(last) then = last['timestamp'] now = int(time.time()) retrieved = 0 for message in self.get_datagrepper_results(then, now): if message['msg_id'] != last['msg_id']: retrieved = retrieved + 1 self.incoming.put(dict(body=message, topic=message['topic'])) else: self.log.warning("Already seen %r; Skipping." % last['msg_id']) self.log.info("Retrieved %i messages from datagrepper." % retrieved) def get_datagrepper_results(self, then, now): def _make_query(page=1): return requests.get(self.datagrepper_url, params=dict( rows_per_page=100, page=page, start=then, end=now)).json() # Grab the first page of results data = _make_query() messages = data['raw_messages'] # Grab and smash subsequent pages if there are any for page in range(1, data['pages'] + 1): self.log.info("Retrieving datagrepper page %i of %i" % ( page, data['pages'])) data = _make_query(page=page) for message in data['raw_messages']: if message['topic'].startswith(self.topic[:-1]): yield message def validate(self, message): """ This needs to raise an exception, caught by moksha. """ if hasattr(message, '__json__'): message = message.__json__() if isinstance(message['body'], basestring): message['body'] = json.loads(message['body']) # We assume these match inside fedmsg.crypto, so we should enforce it. if not message['topic'] == message['body']['topic']: raise RuntimeWarning("Topic envelope mismatch.") # If we're not validating, then everything is valid. # If this is turned on globally, our child class can override it. if not self.validate_signatures: return if not fedmsg.crypto.validate(message['body'], **self.hub.config): raise RuntimeWarning("Failed to authn message.") def _consume(self, message): try: self.validate(message) except RuntimeWarning as e: self.log.warn("Received invalid message {0}".format(e)) return if hasattr(self, "replay_name"): for m in check_for_replay( self.replay_name, self.name_to_seq_id, message, self.hub.config): try: self.validate(m) super(FedmsgConsumer, self)._consume(m) except RuntimeWarning as e: self.log.warn("Received invalid message {}".format(e)) else: super(FedmsgConsumer, self)._consume(message) def pre_consume(self, message): self.save_status(dict( message=message, status='pre', )) def post_consume(self, message): self.save_status(dict( message=message, status='post', )) def save_status(self, data): if self.status_filename and self.status_lock: with self.status_lock: with open(self.status_filename, 'w') as f: f.write(fedmsg.encoding.dumps(data)) def current_proc(): mypid = os.getpid() for proc in psutil.process_iter(): if proc.pid == mypid: return proc # This should be impossible. raise ValueError("Could not find process %r" % mypid) fedmsg-0.9.3/fedmsg/consumers/gateway.py0000644000175000017500000000647312330204655022214 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import fedmsg import threading import weakref import zmq from fedmsg.consumers import FedmsgConsumer class GatewayConsumer(FedmsgConsumer): config_key = 'fedmsg.consumers.gateway.enabled' jsonify = False def __init__(self, hub): self.hub = hub # The consumer should pick up *all* messages. self.topic = self.hub.config.get('topic_prefix', 'org.fedoraproject') if not self.topic.endswith('*'): self.topic += '*' super(GatewayConsumer, self).__init__(hub) # If fedmsg doesn't think we should be enabled, then we should quit # before setting up all the extra special zmq machinery. # _initialized is set in moksha.api.hub.consumer if not getattr(self, "_initialized", False): return self.port = hub.config['fedmsg.consumers.gateway.port'] self.validate_signatures = False self._setup_special_gateway_socket() # Register a destructor? This might be a bad idea inside Twisted. weakref.ref(threading.current_thread(), self.destroy) def _setup_special_gateway_socket(self): self.log.info("Setting up special gateway socket on " + "port %r" % self.port) self._context = zmq.Context(1) self.gateway_socket = self._context.socket(zmq.PUB) # Set this to an absurdly high number to increase the number of clients # we can serve. To be effective, also increase nofile for fedmsg in # /etc/security/limits.conf to near fs.file-limit. Try 160000. hwm = self.hub.config['fedmsg.consumers.gateway.high_water_mark'] if hasattr(zmq, 'HWM'): # zeromq2 self.gateway_socket.setsockopt(zmq.HWM, hwm) else: # zeromq3 self.gateway_socket.setsockopt(zmq.SNDHWM, hwm) self.gateway_socket.setsockopt(zmq.RCVHWM, hwm) self.gateway_socket.bind("tcp://*:{port}".format(port=self.port)) self.log.info("Gateway socket established.") def destroy(self): self.log.info("Destroying GatewayConsumer") if getattr(self, 'gateway_socket', None): self.gateway_socket.close() self.gateway_socket = None if getattr(self, '_context', None): self._context.term() self._context = None def consume(self, msg): self.log.debug("Gateway: %r" % msg.topic) self.gateway_socket.send_multipart([ msg.topic.encode('utf-8'), msg.body.encode('utf-8'), ]) fedmsg-0.9.3/fedmsg/core.py0000644000175000017500000003610512371162175017465 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import getpass import socket import threading import datetime import six import time import uuid import warnings import weakref import zmq from kitchen.iterutils import iterate from kitchen.text.converters import to_bytes import fedmsg.encoding import fedmsg.crypto from fedmsg.utils import ( set_high_water_mark, guess_calling_module, set_tcp_keepalive, set_tcp_reconnect, ) from fedmsg.replay import check_for_replay import logging class FedMsgContext(object): # A counter for messages sent. _i = 0 def __init__(self, **config): super(FedMsgContext, self).__init__() self.log = logging.getLogger("fedmsg") self.c = config self.hostname = socket.gethostname().split('.', 1)[0] # Prepare our context and publisher self.context = zmq.Context(config['io_threads']) method = ['bind', 'connect'][config['active']] # If no name is provided, use the calling module's __name__ to decide # which publishing endpoint to use. if not config.get("name", None): module_name = guess_calling_module(default="fedmsg") config["name"] = module_name + '.' + self.hostname if any(map(config["name"].startswith, ['fedmsg'])): config["name"] = None # Do a little special-case mangling. We never want to "listen" to the # relay_inbound address, but in the special case that we want to emit # our messages there, we add it to the :term:`endpoints` dict so that # the code below where we "Actually set up our publisher" can be # simplified. See Issue #37 - https://bit.ly/KN6dEK if config.get('active', False): # If the user has called us with "active=True" then presumably they # have given us a "name" as well. try: name = config.get("name", "relay_inbound") config['endpoints'][name] = config[name] except KeyError: raise KeyError("Could not find endpoint for fedmsg-relay." " Try installing fedmsg-relay.") # Actually set up our publisher if ( not config.get("mute", False) and config.get("name", None) and config.get("endpoints", None) and config['endpoints'].get(config['name']) ): # Construct it. self.publisher = self.context.socket(zmq.PUB) set_high_water_mark(self.publisher, config) set_tcp_keepalive(self.publisher, config) # Set a zmq_linger, thus doing a little bit more to ensure that our # message gets to the fedmsg-relay (*if* we're talking to the relay # which is the case when method == 'connect'). if method == 'connect': self.publisher.setsockopt(zmq.LINGER, config['zmq_linger']) # "Listify" our endpoints. If we're given a list, good. If we're # given a single item, turn it into a list of length 1. config['endpoints'][config['name']] = list(iterate( config['endpoints'][config['name']])) # Try endpoint after endpoint in the list of endpoints. If we # succeed in establishing one, then stop. *That* is our publishing # endpoint. _established = False for endpoint in config['endpoints'][config['name']]: if method == 'bind': endpoint = "tcp://*:{port}".format( port=endpoint.rsplit(':')[-1] ) try: # Call either bind or connect on the new publisher. # This will raise an exception if there's another process # already using the endpoint. getattr(self.publisher, method)(endpoint) # If we can do this successfully, then stop trying. _established = True break except zmq.ZMQError: # If we fail to bind or connect, there's probably another # process already using that endpoint port. Try the next # one. pass # If we make it through the loop without establishing our # connection, then there are not enough endpoints listed in the # config for the number of processes attempting to use fedmsg. if not _established: raise IOError( "Couldn't find an available endpoint " "for name %r" % config.get("name", None)) elif config.get('mute', False): # Our caller doesn't intend to send any messages. Pass silently. pass else: # Something is wrong. warnings.warn( "fedmsg is not configured to send any messages " "for name %r" % config.get("name", None)) # Cleanup. See https://bit.ly/SaGeOr for discussion. weakref.ref(threading.current_thread(), self.destroy) # Sleep just to make sure that the socket gets set up before anyone # tries anything. This is a documented zmq 'feature'. time.sleep(config['post_init_sleep']) def destroy(self): """ Destroy a fedmsg context """ if getattr(self, 'publisher', None): self.publisher.close() self.publisher = None if getattr(self, 'context', None): self.context.term() self.context = None def send_message(self, topic=None, msg=None, modname=None): warnings.warn(".send_message is deprecated.", DeprecationWarning) return self.publish(topic, msg, modname) def publish(self, topic=None, msg=None, modname=None): """ Send a message over the publishing zeromq socket. >>> import fedmsg >>> fedmsg.publish(topic='testing', modname='test', msg={ ... 'test': "Hello World", ... }) The above snippet will send the message ``'{test: "Hello World"}'`` over the ``.dev.test.testing`` topic. This function (and other API functions) do a little bit more heavy lifting than they let on. If the "zeromq context" is not yet initialized, :func:`fedmsg.init` is called to construct it and store it as :data:`fedmsg.__local.__context` before anything else is done. The ``modname`` argument will be omitted in most use cases. By default, ``fedmsg`` will try to guess the name of the module that called it and use that to produce an intelligent topic. Specifying ``modname`` explicitly overrides this behavior. The fully qualified topic of a message is constructed out of the following pieces: <:term:`topic_prefix`>.<:term:`environment`>.<``modname``>.<``topic``> ---- **An example from Fedora Tagger -- SQLAlchemy encoding** Here's an example from `fedora-tagger `_ that sends the information about a new tag over ``org.fedoraproject.{dev,stg,prod}.fedoratagger.tag.update``:: >>> import fedmsg >>> fedmsg.publish(topic='tag.update', msg={ ... 'user': user, ... 'tag': tag, ... }) Note that the `tag` and `user` objects are SQLAlchemy objects defined by tagger. They both have ``.__json__()`` methods which :func:`fedmsg.publish` uses to encode both objects as stringified JSON for you. Under the hood, specifically, ``.publish`` uses :mod:`fedmsg.encoding` to do this. ``fedmsg`` has also guessed the module name (``modname``) of it's caller and inserted it into the topic for you. The code from which we stole the above snippet lives in ``fedoratagger.controllers.root``. ``fedmsg`` figured that out and stripped it down to just ``fedoratagger`` for the final topic of ``org.fedoraproject.{dev,stg,prod}.fedoratagger.tag.update``. ---- **Shell Usage** You could also use the ``fedmsg-logger`` from a shell script like so:: $ echo "Hello, world." | fedmsg-logger --topic testing $ echo '{"foo": "bar"}' | fedmsg-logger --json-input """ topic = topic or 'unspecified' msg = msg or dict() # If no modname is supplied, then guess it from the call stack. modname = modname or guess_calling_module(default="fedmsg") topic = '.'.join([modname, topic]) if topic[:len(self.c['topic_prefix'])] != self.c['topic_prefix']: topic = '.'.join([ self.c['topic_prefix'], self.c['environment'], topic, ]) if isinstance(topic, six.text_type): topic = to_bytes(topic, encoding='utf8', nonstring="passthru") year = datetime.datetime.now().year self._i += 1 msg = dict( topic=topic.decode('utf-8'), msg=msg, timestamp=int(time.time()), msg_id=str(year) + '-' + str(uuid.uuid4()), i=self._i, username=getpass.getuser(), ) # Find my message-signing cert if I need one. if self.c.get('sign_messages', False): if not self.c.get("crypto_backend") == "gpg": if 'cert_prefix' in self.c: cert_index = "%s.%s" % (self.c['cert_prefix'], self.hostname) else: cert_index = self.c['name'] if cert_index == 'relay_inbound': cert_index = "shell.%s" % self.hostname self.c['certname'] = self.c['certnames'][cert_index] else: self.c['gpg_signing_key'] = self.c['gpg_keys'][cert_index] if self.c.get('sign_messages', False): msg = fedmsg.crypto.sign(msg, **self.c) store = self.c.get('persistent_store', None) if store: # Add the seq_id field msg = store.add(msg) self.publisher.send_multipart( [topic, fedmsg.encoding.dumps(msg).encode('utf-8')], flags=zmq.NOBLOCK, ) def tail_messages(self, topic="", passive=False, **kw): """ Tail messages on the bus. Generator that yields tuples of the form: ``(name, endpoint, topic, message)`` """ # TODO -- do the zmq_strict logic dance with "topic" here. # It is buried in moksha.hub, but we need it to work the same way # here. # TODO -- the 'passive' here and the 'active' are ambiguous. They # don't actually mean the same thing. This should be resolved. method = passive and 'bind' or 'connect' failed_hostnames = [] subs = {} watched_names = {} for _name, endpoint_list in self.c['endpoints'].iteritems(): # Listify endpoint_list in case it is a single string endpoint_list = iterate(endpoint_list) for endpoint in endpoint_list: # First, some sanity checking. zeromq will potentially # segfault if we don't do this check. hostname = endpoint.split(':')[1][2:] if hostname in failed_hostnames: continue if hostname != '*': try: socket.gethostbyname_ex(hostname) except: failed_hostnames.append(hostname) self.log.warn("Couldn't resolve %r" % hostname) continue # OK, sanity checks pass. Create the subscriber and connect. subscriber = self.context.socket(zmq.SUB) subscriber.setsockopt(zmq.SUBSCRIBE, topic) set_high_water_mark(subscriber, self.c) set_tcp_keepalive(subscriber, self.c) set_tcp_reconnect(subscriber, self.c) getattr(subscriber, method)(endpoint) subs[subscriber] = (_name, endpoint) if _name in self.c.get("replay_endpoints", {}): # At first we don't know where the sequence is at. watched_names[_name] = -1 # Register the sockets we just built with a zmq Poller. poller = zmq.Poller() for subscriber in subs: poller.register(subscriber, zmq.POLLIN) # TODO -- what if user wants to pass in validate_signatures in **kw? validate = self.c.get('validate_signatures', False) # Poll that poller. This is much more efficient than it used to be. try: while True: sockets = dict(poller.poll()) for s in sockets: _name, ep = subs[s] _topic, message = s.recv_multipart() msg = fedmsg.encoding.loads(message) if not validate or fedmsg.crypto.validate(msg, **self.c): # If there is even a slight change of replay, use # check_for_replay if len(self.c.get('replay_endpoints', {})) > 0: for m in check_for_replay( _name, watched_names, msg, self.c, self.context): # Revalidate all the replayed messages. if not validate or \ fedmsg.crypto.validate(m, **self.c): yield _name, ep, m['topic'], m else: warnings.warn("!! invalid message " + "received: %r" % msg) else: yield _name, ep, _topic, msg else: # Else.. we are supposed to be validating, but the # message failed validation. # Warn, but don't throw an exception. Keep tailing. warnings.warn("!! invalid message received: %r" % msg) finally: for subscriber in subs: subscriber.close() fedmsg-0.9.3/fedmsg/text/0000755000175000017500000000000012371202100017121 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/text/announce.py0000644000175000017500000000000012362250750027571 1fedmsg-0.9.3/fedmsg/meta/announce.pyustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/text/logger.py0000644000175000017500000000000012362250750026713 1fedmsg-0.9.3/fedmsg/meta/logger.pyustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/text/__init__.py0000644000175000017500000000000012330204655027451 1fedmsg-0.9.3/fedmsg/meta/__init__.pyustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/text/default.py0000644000175000017500000000000012362250750027225 1fedmsg-0.9.3/fedmsg/meta/default.pyustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/text/base.py0000644000175000017500000000000012362250750026001 1fedmsg-0.9.3/fedmsg/meta/base.pyustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/config.py0000644000175000017500000002674612330204655020007 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ :mod:`fedmsg.config` handles loading, processing and validation of all configuration. The configuration values used at runtime are determined by checking in the following order - Built-in defaults - Config file (/etc/fedmsg-config.py) - Command line arguments For example, if a config value does not appear in either the config file or on the command line, then the built-in default is used. If a value appears in both the config file and as a command line argument, then the command line value is used. You can print the runtime configuration to the terminal by using the ``fedmsg-config`` command implemented by :func:`fedmsg.commands.config.config`. """ import argparse import collections import copy import os import sys import textwrap import warnings from kitchen.iterutils import iterate from fedmsg.encoding import pretty_dumps VALID_ENVIRONMENTS = ['dev', 'stg', 'prod'] bare_format = "[%(asctime)s][%(name)10s %(levelname)7s] %(message)s" defaults = dict( topic_prefix="org.fedoraproject", environment="dev", io_threads=1, post_init_sleep=0.5, timeout=2, print_config=False, high_water_mark=0, # zero means no limit zmq_linger=1000, # Wait one second before timing out on fedmsg-relay active=False, # generally only true for fedmsg-logger persistent_store=None, # an object. See the fedmsg.replay module. logging=dict( version=1, formatters=dict( bare={ "datefmt": "%Y-%m-%d %H:%M:%S", "format": bare_format }, ), handlers=dict( console={ "class": "logging.StreamHandler", "formatter": "bare", "level": "INFO", "stream": "ext://sys.stdout", } ), loggers=dict( fedmsg={ "level": "INFO", "propagate": False, "handlers": ["console"], }, moksha={ "level": "INFO", "propagate": False, "handlers": ["console"], }, ), ), ) __cache = {} def load_config(extra_args=None, doc=None, filenames=None, invalidate_cache=False, fedmsg_command=False, disable_defaults=False): """ Setup a runtime config dict by integrating the following sources (ordered by precedence): - defaults (unless disable_defaults = True) - config file - command line arguments If the ``fedmsg_command`` argument is False, no command line arguments are checked. """ global __cache if invalidate_cache: __cache = {} if __cache: return __cache # Coerce defaults if arguments are not supplied. extra_args = extra_args or [] doc = doc or "" if not disable_defaults: config = copy.deepcopy(defaults) else: config = {} config.update(_process_config_file(filenames=filenames)) # This is optional (and defaults to false) so that only 'fedmsg-*' commands # are required to provide these arguments. # For instance, the moksha-hub command takes a '-v' argument and internally # makes calls to fedmsg. We don't want to impose all of fedmsg's CLI # option constraints on programs that use fedmsg, so we make it optional. if fedmsg_command: config.update(_process_arguments(extra_args, doc, config)) # If the user specified a config file on the command line, then start over # but read in that file instead. if not filenames and config.get('config_filename', None): return load_config(extra_args, doc, filenames=[config['config_filename']]) # Just a little debug option. :) if config.get('print_config'): print(pretty_dumps(config)) sys.exit(0) if config.get('environment', 'prod') not in VALID_ENVIRONMENTS: raise ValueError("%r not one of %r" % ( config['environment'], VALID_ENVIRONMENTS)) if not disable_defaults and 'endpoints' not in config: raise ValueError("No config value 'endpoints' found.") if not isinstance(config.get('endpoints', {}), dict): raise ValueError("The 'endpoint' config value must be a dict.") if 'endpoints' in config: config['endpoints'] = dict([ (k, list(iterate(v))) for k, v in config['endpoints'].items() ]) if 'srv_endpoints' in config and len(config['srv_endpoints']) > 0: from dns.resolver import query, NXDOMAIN, Timeout, NoNameservers for e in config['srv_endpoints']: urls = [] try: records = query('_fedmsg._tcp.{0}'.format(e), 'SRV') except NXDOMAIN: warnings.warn("There is no appropriate SRV records " + "for {0}".format(e)) continue except Timeout: warnings.warn("The DNS query for the SRV records of" + " {0} timed out.".format(e)) continue except NoNameservers: warnings.warn("No name server is available, please " + "check the configuration") break for rec in records: urls.append('tcp://{hostname}:{port}'.format( hostname=rec.target.to_text(), port=rec.port )) config['endpoints'][e] = list(iterate(urls)) if 'topic_prefix_re' not in config and 'topic_prefix' in config: # Turn "org.fedoraproject" into "org\.fedoraproject\.(dev|stg|prod)" config['topic_prefix_re'] = config['topic_prefix'].replace('.', '\.')\ + '\.(%s)' % '|'.join(VALID_ENVIRONMENTS) __cache = config return config def build_parser(declared_args, doc, config=None, prog=None): """ Return the global :class:`argparse.ArgumentParser` used by all fedmsg commands. Extra arguments can be supplied with the `declared_args` argument. """ config = config or copy.deepcopy(defaults) prog = prog or sys.argv[0] parser = argparse.ArgumentParser( description=textwrap.dedent(doc), formatter_class=argparse.RawDescriptionHelpFormatter, prog=prog, ) parser.add_argument( '--io-threads', dest='io_threads', type=int, help="Number of io threads for 0mq to use", default=config['io_threads'], ) parser.add_argument( '--topic-prefix', dest='topic_prefix', type=str, help="Prefix for the topic of each message sent.", default=config['topic_prefix'], ) parser.add_argument( '--post-init-sleep', dest='post_init_sleep', type=float, help="Number of seconds to sleep after initializing.", default=config['post_init_sleep'], ) parser.add_argument( '--config-filename', dest='config_filename', help="Config file to use.", default=None, ) parser.add_argument( '--print-config', dest='print_config', help='Simply print out the configuration and exit. No action taken.', default=False, action='store_true', ) parser.add_argument( '--timeout', dest='timeout', help="Timeout in seconds for any blocking zmq operations.", type=float, default=config['timeout'], ) parser.add_argument( '--high-water-mark', dest='high_water_mark', help="Limit on the number of messages in the queue before blocking.", type=int, default=config['high_water_mark'], ) parser.add_argument( '--linger', dest='zmq_linger', help="Number of milliseconds to wait before timing out connections.", type=int, default=config['zmq_linger'], ) for args, kwargs in declared_args: # Replace the hard-coded extra_args default with the config file value # (if it exists) if all([k in kwargs for k in ['dest', 'default']]): kwargs['default'] = config.get( kwargs['dest'], kwargs['default']) # Having slurped smart defaults from the config file, add the CLI arg. parser.add_argument(*args, **kwargs) return parser def _process_arguments(declared_args, doc, config): parser = build_parser(declared_args, doc, config) args = parser.parse_args() return dict(args._get_kwargs()) def _gather_configs_in(directory): """ Return list of fully qualified python filenames in the given dir """ try: return [ os.path.join(directory, fname) for fname in os.listdir(directory) if fname.endswith('.py') ] except OSError: return [] def _recursive_update(d1, d2): """ Little helper function that does what d1.update(d2) does, but works nice and recursively with dicts of dicts of dicts. It's not necessarily very efficient. """ for k in set(d1).intersection(d2): if isinstance(d1[k], dict) and isinstance(d2[k], dict): d1[k] = _recursive_update(d1[k], d2[k]) else: d1[k] = d2[k] for k in set(d2).difference(d1): d1[k] = d2[k] return d1 def execfile(fname, variables): """ This is builtin in python2, but we have to roll our own on py3. """ with open(fname) as f: code = compile(f.read(), fname, 'exec') exec(code, variables) def _process_config_file(filenames=None): filenames = filenames or [] # Validate that these files are really files for fname in filenames: if not os.path.isfile(fname): raise ValueError("%r is not a file." % fname) # If nothing specified, look in the default locations if not filenames: filenames = [ '/etc/fedmsg-config.py', os.path.expanduser('~/.fedmsg-config.py'), os.getcwd() + '/fedmsg-config.py', ] folders = ["/etc/fedmsg.d/", os.path.expanduser('~/.fedmsg.d/'), os.getcwd() + '/fedmsg.d/', ] if 'VIRTUAL_ENV' in os.environ: folders.append(os.path.join( os.environ['VIRTUAL_ENV'], 'etc/fedmsg.d')) filenames = sum(map(_gather_configs_in, folders), []) + filenames # Each .ini file should really be a python module that # builds a config dict. config = {} for fname in filenames: if os.path.isfile(fname): variables = {} try: execfile(fname, variables) config = _recursive_update(config, variables['config']) except IOError as e: warnings.warn(str(e)) return config fedmsg-0.9.3/fedmsg/commands/0000755000175000017500000000000012371202100017736 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/commands/announce.py0000644000175000017500000000524212362250750022137 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import sys import fedmsg from fedmsg.commands import BaseCommand class AnnounceCommand(BaseCommand): """ Emit an announcement message to the FI bus. Example:: $ echo "Fedora Core 4 has been declared GOLD" | fedmsg-announce \ --link https://fedoraproject.org/news Technically this command is a simpler version of fedmsg-logger that emits on a special topic. It is expected that :term:`routing_policy` is specified such that only restricted parties can issue fedmsg announcements. This command expects its message to come from stdin. """ name = "fedmsg-announce" extra_args = [ (['--link'], { 'dest': 'link', 'metavar': "URL", 'default': None, 'help': "Specify a link to go along with the announcement.", }), ] def run(self): # This specifies that a special certificate should be used to sign this # message. At the sysadmin level, you are responsible for taking care # of two things: # 1) That the announce cert is readable only by appropriate persons. # 2) That the routing_policy is setup so that "announce.announcement" # messages are valid only if signed by such a certificate. self.config['cert_prefix'] = "announce" # This just specifies that we should be talking to the fedmsg-relay. self.config['active'] = True self.config['name'] = 'relay_inbound' fedmsg.init(**self.config) # Read in and setup our message. Include --link, even if it is None. message = "\n".join(map(str.strip, sys.stdin.readlines())) msg = dict(message=message, link=self.config['link']) # Fire! fedmsg.publish(modname="announce", topic="announcement", msg=msg) def announce(): command = AnnounceCommand() command.execute() fedmsg-0.9.3/fedmsg/commands/logger.py0000644000175000017500000000677712330204655021624 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import sys import fedmsg import fedmsg.encoding from fedmsg.commands import BaseCommand class LoggerCommand(BaseCommand): """ Emit log messages to the FI bus. If the fedmsg-relay service is not running at the address specified in the config, then this command will *hang* until that service becomes available. If --message is not specified, this command accepts messages from stdin. Some examples:: $ echo '{"a": 1}; | fedmsg-logger --json-input $ echo "Hai there." | fedmsg-logger --modname=git --topic=repo.update $ fedmsg-logger --message="This is a message." $ fedmsg-logger --message='{"a": 1}' --json-input Note that when using --json-input, you must send valid JSON, including the use of double quotes as opposed to single quotes: '{"a": 1}' is good. "{'a': 1}" is bad. """ name = 'fedmsg-logger' extra_args = [ (['--message'], { 'dest': 'logger_message', 'help': "The message to send.", }), (['--json-input'], { 'dest': 'json_input', 'action': 'store_true', 'default': False, 'help': "Take each line of input as JSON.", }), (['--topic'], { 'dest': 'topic', 'metavar': "TOPIC", 'default': "log", 'help': "Think org.fedoraproject.dev.logger.TOPIC", }), (['--modname'], { 'dest': 'modname', 'metavar': "MODNAME", 'default': "logger", 'help': "More control over the topic. Think org.fp.MODNAME.TOPIC.", }), (['--cert-prefix'], { 'dest': 'cert_prefix', 'metavar': "CERT_PREFIX", 'default': "shell", 'help': "Specify a different cert from /etc/pki/fedmsg", }), ] def _log_message(self, kw, message): if kw['json_input']: msg = fedmsg.encoding.loads(message) else: msg = {'log': message} fedmsg.publish( topic=kw['topic'], msg=msg, modname=kw['modname'], ) def __init__(self): super(LoggerCommand, self).__init__() def run(self): self.config['active'] = True self.config['name'] = 'relay_inbound' fedmsg.init(**self.config) if self.config.get('logger_message'): self._log_message(self.config, self.config.get('logger_message')) else: line = sys.stdin.readline() while line: self._log_message(self.config, line.strip()) line = sys.stdin.readline() def logger(): command = LoggerCommand() return command.execute() fedmsg-0.9.3/fedmsg/commands/tail.py0000644000175000017500000001410212330204655021253 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean import pprint import re import time import sys import pygments import pygments.lexers import pygments.formatters import fedmsg import fedmsg.encoding import fedmsg.meta from fedmsg.commands import BaseCommand class TailCommand(BaseCommand): """ Watch all endpoints on the bus and print each message to stdout. """ name = "fedmsg-tail" extra_args = [ (['--topic'], { 'dest': 'topic', 'help': 'The topic pattern to listen for. Everything by default.', 'default': '', }), (['--query'], { 'dest': 'query', 'help': 'Displays only the element of the message specified.', 'type': str, 'default': None }), (['--pretty'], { 'dest': 'pretty', 'help': 'Pretty print the JSON messages.', 'default': False, 'action': 'store_true', }), (['--really-pretty'], { 'dest': 'really_pretty', 'help': 'Extra-pretty print the JSON messages.', 'default': False, 'action': 'store_true', }), (['--terse'], { 'dest': 'terse', 'help': 'Print "english" representations of messages only.', 'default': False, 'action': 'store_true', }), (['--exclude'], { 'dest': 'exclusive_regexp', 'metavar': 'REGEXP', 'help': 'Only show topics that do not match the supplied regexp.', 'default': '_heartbeat', }), (['--include'], { 'dest': 'inclusive_regexp', 'metavar': 'REGEXP', 'help': 'Only show topics that match the supplied regexp.', 'default': '^((?!_heartbeat).)*$', }), (['--users'], { 'dest': 'users', 'metavar': 'USERS', 'default': None, 'help': 'A comma-separated list of usernames. Show only messages' 'related to these users.', }), (['--packages'], { 'dest': 'packages', 'metavar': 'PACKAGES', 'default': None, 'help': 'A comma-separated list of packages. Show only messages' 'related to these packages.', }), ] def run(self): # Disable sending self.config['publish_endpoint'] = None # Disable timeouts. We want to tail forever! self.config['timeout'] = 0 # Even though fedmsg-tail won't be sending any messages, give it a # name to conform with the other commands. self.config['name'] = 'relay_inbound' # Tail is never going to send any messages, so we suppress warnings # about having no publishing sockets established. self.config['mute'] = True fedmsg.init(**self.config) # Build a message formatter formatter = lambda d: d if self.config['pretty']: def formatter(d): d['timestamp'] = time.ctime(d['timestamp']) d = fedmsg.crypto.strip_credentials(d) return "\n" + pprint.pformat(d) if self.config['really_pretty']: def formatter(d): d = fedmsg.crypto.strip_credentials(d) fancy = pygments.highlight( fedmsg.encoding.pretty_dumps(d), pygments.lexers.JavascriptLexer(), pygments.formatters.TerminalFormatter() ).strip() return "\n" + fancy if self.config['query']: def formatter(d): result = fedmsg.utils.dict_query(d, self.config['query']) return ", ".join([unicode(value) for value in result.values()]) if self.config['terse']: formatter = lambda d: "\n" + fedmsg.meta.msg2repr(d, **self.config) # Build regular expressions for use in our loop. exclusive_regexp = re.compile(self.config['exclusive_regexp']) inclusive_regexp = re.compile(self.config['inclusive_regexp']) # Build username and package filter sets for use in our loop. users, packages = set(), set() if self.config['users']: users = set(map(str.strip, self.config['users'].split(','))) if self.config['packages']: packages = set(map(str.strip, self.config['packages'].split(','))) # Only initialize this if we have to if users or packages or self.config['terse']: fedmsg.meta.make_processors(**self.config) # Spin up a zmq.Poller and yield messages for name, ep, topic, message in fedmsg.tail_messages(**self.config): if exclusive_regexp.search(topic): continue if not inclusive_regexp.search(topic): continue if users: actual = fedmsg.meta.msg2usernames(message, **self.config) if not users.intersection(actual): continue if packages: actual = fedmsg.meta.msg2packages(message, **self.config) if not packages.intersection(actual): continue output = formatter(message) if output: self.log.info(output) def tail(): command = TailCommand() return command.execute() fedmsg-0.9.3/fedmsg/commands/config.py0000644000175000017500000000614612330204655021600 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # Copyright (C) 2014 Nicolas Dandrimont # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # Nicolas Dandrimont # from __future__ import print_function import argparse import six import sys import textwrap import fedmsg.config import fedmsg.encoding def config(): __doc__ = """ Query or print the parsed fedmsg-config. fedmsg-config is a simple utility that prints out the contents of the fully parsed fedmsg config as a JSON dictionary. The tool allows you to query a specific configuration key with the --query option. It returns an error code of 1 if the key isn't found. In query mode, the configuration key has the following syntax: foo.bar.baz retrieves the value of config["foo"]["bar"]["baz"] If the configuration value is an atomic value, it is printed directly. If the value is a list, each item gets printed line by line. Else, the value is printed as a JSON dictionary. """ parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter, prog=sys.argv[0], ) parser.add_argument( '--config-filename', dest='config_filename', help="Config file to use.", default=None, ) parser.add_argument( '--disable-defaults', dest='disable_defaults', help="Disable the configuration defaults.", action="store_true", ) parser.add_argument( '--query', dest='query', help="The key to dump from the given config.", type=str, default=None ) args = parser.parse_args() filenames = None if args.config_filename: filenames = [args.config_filename] config = fedmsg.config.load_config( extra_args=[], doc=__doc__, filenames=filenames, disable_defaults=args.disable_defaults, ) cur = config if args.query: cur = fedmsg.utils.dict_query(cur, args.query)[args.query] if cur is None: print ("Key `%s` does not exist in config" % args.query, file=sys.stderr) sys.exit(1) if isinstance(cur, list): for i in cur: print(i) elif isinstance(cur, six.string_types): print(cur) else: print(fedmsg.encoding.pretty_dumps(cur)) fedmsg-0.9.3/fedmsg/commands/relay.py0000644000175000017500000000564212275017145021453 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ """ import zmq from fedmsg.commands import BaseCommand from fedmsg.consumers.relay import RelayConsumer from kitchen.iterutils import iterate class RelayCommand(BaseCommand): """ Relay connections from active loggers to the bus. ``fedmsg-relay`` is a service which binds to two ports, listens for messages on one and emits them on the other. ``fedmsg-logger`` requires that an instance of ``fedmsg-relay`` be running *somewhere* and that it's inbound address be listed in the config as one of the entries in :term:`relay_inbound`. ``fedmsg-relay`` becomes a necessity for integration points that cannot bind consistently to and serve from a port. See :doc:`topology` for the mile-high view. More specifically, ``fedmsg-relay`` is a SUB.bind()->PUB.bind() relay. """ daemonizable = True name = 'fedmsg-relay' def run(self): # Do just like in fedmsg.commands.hub and mangle fedmsg.d/ to work # with moksha's expected configuration. moksha_options = dict( zmq_subscribe_endpoints=",".join(list(iterate( self.config['relay_inbound'] ))), zmq_subscribe_method="bind", ) self.config.update(moksha_options) # Flip the special bit that allows the RelayConsumer to run self.config[RelayConsumer.config_key] = True from moksha.hub import main for publish_endpoint in self.config['endpoints']['relay_outbound']: self.config['zmq_publish_endpoints'] = publish_endpoint try: return main( # Pass in our config dict options=self.config, # Only run this *one* consumer consumers=[RelayConsumer], # Tell moksha to quiet its logging. framework=False, ) except zmq.ZMQError: self.log.debug("Failed to bind to %r" % publish_endpoint) raise IOError("Failed to bind to any outbound endpoints.") def relay(): command = RelayCommand() return command.execute() fedmsg-0.9.3/fedmsg/commands/ircbot.py0000644000175000017500000000424512231547317021620 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # Ryan Brown # # -*- coding; utf-8 -*- """ Description: A bot that takes a config and puts messages matching given regexes in specified IRC channels. See :term:`irc` for options. Think of it like a one-way firehose that spews fedmsg messages to IRC. """ from fedmsg.commands import BaseCommand from fedmsg.consumers.ircbot import IRCBotConsumer class IRCCommand(BaseCommand): """ Relay messages from the bus to any number of IRC channels. This is highly configurable by way of the :term:`irc` config value. """ name = "fedmsg-irc" extra_args = [] daemonizable = True def run(self): # Do just like in fedmsg.commands.hub and mangle fedmsg-config.py to # work with moksha's expected configuration. moksha_options = dict( zmq_subscribe_endpoints=','.join( ','.join(bunch) for bunch in self.config['endpoints'].values() ), ) self.config.update(moksha_options) self.config[IRCBotConsumer.config_key] = True from moksha.hub import main main( # Pass in our config dict options=self.config, # Only run this *one* consumer consumers=[IRCBotConsumer], # Tell moksah to quiet its logging framework=False, ) def ircbot(): command = IRCCommand() command.execute() fedmsg-0.9.3/fedmsg/commands/hub.py0000644000175000017500000000655512231547317021122 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import fedmsg from fedmsg.utils import load_class from fedmsg.commands import BaseCommand class HubCommand(BaseCommand): """ Run the fedmsg hub. ``fedmsg-hub`` is the all-purpose daemon. This should be run on every host that has services which declare their own consumers. ``fedmsg-hub`` will listen to every endpoint discovered by :mod:`fedmsg.config` and forward messages in-process to the locally-declared consumers. It is a thin wrapper over a moksha-hub. Other commands like ``fedmsg-irc`` are just specialized, restricted versions of ``fedmsg-hub``. ``fedmsg-hub`` is the most general/abstract. ``fedmsg-hub`` also houses the functions to run a websocket server. """ name = 'fedmsg-hub' daemonizable = True extra_args = [ (['--with-consumers'], { 'dest': 'explicit_hub_consumers', 'type': str, 'help': 'A comma-delimited list of conumers to run.', 'default': None, }), (['--websocket-server-port'], { 'dest': 'moksha.livesocket.websocket.port', 'type': int, 'help': 'Port on which to host the websocket server.', 'default': None, }), ] def run(self): # Check if the user wants the websocket server to run if self.config['moksha.livesocket.websocket.port']: self.config['moksha.livesocket.backend'] = 'websocket' # If the user wants to override any consumers installed on the system # and *only* run the ones they want to, they can do that. consumers = None if self.config['explicit_hub_consumers']: locations = self.config['explicit_hub_consumers'].split(',') locations = [load_class(location) for location in locations] # Rephrase the fedmsg-config.py config as moksha *.ini format. # Note that the hub we kick off here cannot send any message. You # should use fedmsg.publish(...) still for that. moksha_options = dict( zmq_subscribe_endpoints=','.join( ','.join(bunch) for bunch in self.config['endpoints'].values() ), ) self.config.update(moksha_options) from moksha.hub import main main( # Pass in our config dict options=self.config, # Only run the specified consumers if any are so specified. consumers=consumers, # Tell moksha to quiet its logging. framework=False, ) def hub(): command = HubCommand() command.execute() fedmsg-0.9.3/fedmsg/commands/__init__.py0000644000175000017500000000631412330204655022067 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import fedmsg import fedmsg.config import warnings import six import sys import logging try: # Python2.7 and later from logging.config import dictConfig except ImportError: # For Python2.6, we rely on a third party module. from logutils.dictconfig import dictConfig class BaseCommand(object): daemonizable = False extra_args = None def __init__(self): if not self.extra_args: self.extra_args = [] if self.daemonizable: self.extra_args.append( (['--daemon'], { 'dest': 'daemon', 'help': 'Run in the background as a daemon.', 'action': 'store_true', 'default': False, }) ) self.config = self.get_config() dictConfig(self.config.get('logging', {'version': 1})) self.log = logging.getLogger("fedmsg") def get_config(self): return fedmsg.config.load_config( self.extra_args, self.__doc__, fedmsg_command=True, ) def _handle_signal(self, signum, stackframe): from moksha.hub.reactor import reactor from moksha.hub import hub from twisted.internet.error import ReactorNotRunning if hub._hub: hub._hub.stop() try: reactor.stop() except ReactorNotRunning as e: warnings.warn(six.text_type(e)) def _daemonize(self): import psutil from daemon import DaemonContext try: from daemon.pidfile import TimeoutPIDLockFile as PIDLockFile except: from daemon.pidlockfile import PIDLockFile pidlock = PIDLockFile('/var/run/fedmsg/%s.pid' % self.name) pid = pidlock.read_pid() if pid and not psutil.pid_exists(pid): self.log.warn("PID file exists but with no proc: coup d'etat!") pidlock.break_lock() output = file('/var/log/fedmsg/%s.log' % self.name, 'a') daemon = DaemonContext(pidfile=pidlock, stdout=output, stderr=output) daemon.terminate = self._handle_signal with daemon: return self.run() def execute(self): if self.daemonizable and self.config['daemon'] is True: return self._daemonize() else: try: return self.run() except KeyboardInterrupt: print fedmsg-0.9.3/fedmsg/commands/trigger.py0000644000175000017500000000710212231547317021774 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean import re import subprocess import sys import fedmsg import fedmsg.encoding from fedmsg.commands import BaseCommand class TriggerCommand(BaseCommand): """ Run a command whenever certain messages arrive. Feed the message to the given command over stdin. """ name = "fedmsg-trigger" extra_args = [ (['--topic'], { 'dest': 'topic', 'help': 'The topic pattern to listen for. Everything by default.', 'default': '', }), (['--exclude'], { 'dest': 'exclusive_regexp', 'metavar': 'REGEXP', 'help': 'Only show topics that do not match the supplied regexp.', 'default': '_heartbeat', }), (['--include'], { 'dest': 'inclusive_regexp', 'metavar': 'REGEXP', 'help': 'Only show topics that match the supplied regexp.', 'default': '^((?!_heartbeat).)*$', }), (['--command'], { 'dest': 'command', 'metavar': 'COMMAND', 'help': 'Command to run when a message matches our criteria.', 'default': None, }), ] def run_command(self, command, message): """ Use subprocess; feed the message to our command over stdin """ proc = subprocess.Popen([ 'echo \'%s\' | %s' % (fedmsg.encoding.dumps(message), command) ], shell=True, executable='/bin/bash') return proc.wait() def run(self): # This is a "required" option... :P if not self.config['command']: self.log.error("You must provide a --command to run.") sys.exit(1) # Disable sending self.config['publish_endpoint'] = None # Disable timeouts. We want to tail forever! self.config['timeout'] = 0 # Even though fedmsg-trigger won't be sending any messages, give it a # name to conform with the other commands. self.config['name'] = 'relay_inbound' # Tail is never going to send any messages, so we suppress warnings # about having no publishing sockets established. self.config['mute'] = True fedmsg.init(**self.config) exclusive_regexp = re.compile(self.config['exclusive_regexp']) inclusive_regexp = re.compile(self.config['inclusive_regexp']) for name, ep, topic, message in fedmsg.tail_messages(**self.config): if exclusive_regexp.search(topic): continue if not inclusive_regexp.search(topic): continue result = self.run_command(self.config['command'], message) if result != 0: self.log.info("Command returned error code %r" % result) def trigger(): command = TriggerCommand() return command.execute() fedmsg-0.9.3/fedmsg/commands/replay.py0000644000175000017500000000557512362250750021636 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean from __future__ import print_function import requests import sys import fedmsg from fedmsg.commands import BaseCommand class ReplayCommand(BaseCommand): """ Replay a message from the datagrepper history on your local bus. Example:: $ fedmsg-dg-replay --msg-id 2014-8909e1e9-2a46-4e53-9a0e-f5415a9bedcf This depends on there being a datagrepper instance available to query. The default is to query the Fedora Project history at https://apps.fedoraproject.org/datagrepper This also requires that the local configuration be pointed at a ``fedmsg-relay`` instance. The message is stripped of its original credentials. Local credentials are applied if :term:`sign_messages` is set to ``True``. """ name = "fedmsg-dg-replay" extra_args = [ (['--msg-id'], { 'dest': 'msg_id', 'help': 'The msg_id of the message you want to replay.', 'default': None, }), (['--datagrepper-url'], { 'dest': 'datagrepper_url', 'help': 'The URL of a datagrepper instance to query for history.', 'default': 'https://apps.fedoraproject.org/datagrepper', }), ] def run(self): self.config['active'] = True self.config['name'] = 'relay_inbound' fedmsg.init(**self.config) idx = self.config.get('msg_id') if not idx: print("--msg-id is required") sys.exit(1) print("Retrieving %r" % idx) url = self.config['datagrepper_url'] + "/id" resp = requests.get(url, params={'id': idx}) code = resp.status_code if code != 200: print("datagrepper request of %r failed. Status: %r" % (idx, code)) sys.exit(2) msg = resp.json() tokens = msg['topic'].split('.') modname = tokens[3] topic = '.'.join(tokens[4:]) print("Broadcasting %r" % idx) fedmsg.publish(modname=modname, topic=topic, msg=msg['msg']) print("OK.") def replay(): command = ReplayCommand() return command.execute() fedmsg-0.9.3/fedmsg/commands/gateway.py0000644000175000017500000000467712231547317022010 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ """ import fedmsg from fedmsg.commands import BaseCommand from fedmsg.consumers.gateway import GatewayConsumer class GatewayCommand(BaseCommand): """ Rebroadcast messages to a special zmq endpoint. A repeater that rebroadcasts all messages received to a special zmq endpoint. This is used to get messages from inside Fedora Infrastructure out to users. Its communication is uni-directional. It does not relay messages from "outside the bus" back in. The special zmq endpoint is specified by the presence of :term:`fedmsg.consumers.gateway.port` in the config. This service is what makes using ":doc:`consuming`" outside the VPN/firewalled bus environment possible. """ name = 'fedmsg-gateway' daemonizable = True extra_args = [] def run(self): # Do just like in fedmsg.commands.hub and mangle fedmsg-config.py # to work with moksha's expected configuration. moksha_options = dict( zmq_subscribe_endpoints=','.join( ','.join(bunch) for bunch in self.config['endpoints'].values() ), ) self.config.update(moksha_options) # Flip the special bit that allows the GatewayConsumer to run self.config[GatewayConsumer.config_key] = True from moksha.hub import main main( # Pass in our config dict options=self.config, # Only run this *one* consumer consumers=[GatewayConsumer], # Tell moksha to quiet its logging. framework=False, ) def gateway(): command = GatewayCommand() command.execute() fedmsg-0.9.3/fedmsg/commands/collectd.py0000644000175000017500000001010112240775423022114 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import datetime import socket import time import fedmsg import fedmsg.meta from fedmsg.commands import BaseCommand from fedmsg.consumers import FedmsgConsumer from moksha.hub.api import PollingProducer class CollectdConsumer(FedmsgConsumer): config_key = "fedmsg.commands.collectd.enabled" validate_messages = False def __init__(self, hub): self.hub = hub # The consumer should pick up *all* messages. self.topic = self.hub.config.get('topic_prefix', 'org.fedoraproject') if not self.topic.endswith('*'): self.topic += '*' super(CollectdConsumer, self).__init__(hub) self._dict = dict([ (p.__name__.lower(), 0) for p in fedmsg.meta.processors ]) self.host = socket.gethostname().split('.')[0] def consume(self, msg): processor = fedmsg.meta.msg2processor(msg, **self.hub.config) modname = processor.__name__.lower() self._dict[modname] += 1 def dump(self): """ Called by CollectdProducer every `n` seconds. """ # Print out the collectd feedback. # This is sent to stdout while other log messages are sent to stderr. for k, v in sorted(self._dict.items()): print self.formatter(k, v) # Reset each entry to zero for k, v in sorted(self._dict.items()): self._dict[k] = 0 def formatter(self, key, value): """ Format messages for collectd to consume. """ template = "PUTVAL {host}/fedmsg/fedmsg_wallboard-{key} " +\ "interval={interval} {timestamp}:{value}" timestamp = int(time.time()) interval = self.hub.config['collectd_interval'] return template.format( host=self.host, timestamp=timestamp, value=value, interval=interval, key=key, ) class CollectdProducer(PollingProducer): # "Frequency" is set later at runtime. def poll(self): self.hub.consumers[0].dump() class CollectdCommand(BaseCommand): """ Print machine-readable information for collectd to monitor the bus. """ name = "fedmsg-collectd" extra_args = [ (['--collectd-interval'], { 'dest': 'collectd_interval', 'type': int, 'help': 'Number of seconds to sleep between collectd updates.', 'default': 2, }), ] def run(self): # Initialize the processors before CollectdConsumer is instantiated. fedmsg.meta.make_processors(**self.config) # Do just like in fedmsg.commands.hub and mangle fedmsg-config.py # to work with moksha's expected configuration. moksha_options = dict( mute=True, # Disable some warnings. zmq_subscribe_endpoints=','.join( ','.join(bunch) for bunch in self.config['endpoints'].values() ), ) self.config.update(moksha_options) self.config[CollectdConsumer.config_key] = True CollectdProducer.frequency = datetime.timedelta( seconds=self.config['collectd_interval'] ) from moksha.hub import main main(self.config, [CollectdConsumer], [CollectdProducer], framework=False) def collectd(): command = CollectdCommand() command.execute() fedmsg-0.9.3/fedmsg/__init__.py0000644000175000017500000000540712231547317020275 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ Fedora Messaging Client API """ import threading import fedmsg.core import fedmsg.config __local = threading.local() __all__ = [ 'init', 'send_message', 'publish', 'subscribe', 'destroy', '__local', ] def init(**kw): """ Initialize an instance of :class:`fedmsg.core.FedMsgContext`. The config is loaded with :func:`fedmsg.config.load_config` and updated by any keyword arguments. This config is used to initialize the context object. The object is stored in a thread local as :data:`fedmsg.__local.__context`. """ if getattr(__local, '__context', None): raise ValueError("fedmsg already initialized") # Read config from CLI args and a config file config = fedmsg.config.load_config([], None) # Override the defaults with whatever the user explicitly passes in. config.update(kw) __local.__context = fedmsg.core.FedMsgContext(**config) return __local.__context def API_function(doc=None): def api_function(func): def _wrapper(*args, **kw): if not hasattr(__local, '__context'): init(**kw) assert(__local.__context) return func(*args, **kw) if not doc: _wrapper.__doc__ = func.__doc__ else: _wrapper.__doc__ = doc _wrapper.__name__ = func.__name__ return _wrapper return api_function @API_function(doc=fedmsg.core.FedMsgContext.publish.__doc__) def publish(topic=None, msg=None, **kw): return __local.__context.publish(topic, msg, **kw) # This is old-school, and deprecated. send_message = publish @API_function(doc=fedmsg.core.FedMsgContext.destroy.__doc__) def destroy(**kw): if hasattr(__local, '__context'): __local.__context.destroy() __local.__context = None @API_function(doc=fedmsg.core.FedMsgContext.tail_messages.__doc__) def tail_messages(**kw): for item in __local.__context.tail_messages(**kw): yield item fedmsg-0.9.3/fedmsg/crypto/0000755000175000017500000000000012371202100017455 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/crypto/gpg.py0000644000175000017500000001445012330204655020624 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2013-2014 Simon Chopin # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Simon Chopin # Ralph Bean import os import os.path import tempfile import shutil import six import subprocess from base64 import b64encode, b64decode import logging log = logging.getLogger(__name__) class GpgBinaryError(Exception): pass class Context(object): def __init__(self, keyrings=None, homedir=None): self.homedir = homedir or os.path.expanduser(u'~/.gnupg/') self.keyrings = keyrings or [] def _get_keyrings_cl(self, keyrings): cl = [] if keyrings: keyrings = self.keyrings + keyrings else: keyrings = self.keyrings for k in keyrings: cl.extend(["--keyring", k]) return cl def verify(self, data, signature=None, keyrings=None, homedir=None): ''' `data` the data to verify. `signature` The signature, if detached from the data. `keyrings` Additional keyrings to search in. `homedir` Override the configured homedir. ''' if isinstance(data, six.text_type): data = data.encode('utf-8') tmpdir = tempfile.mkdtemp() data_file, data_path = tempfile.mkstemp(dir=tmpdir) data_file = os.fdopen(data_file, 'wb') data_file.write(data) data_file.close() if signature: sig_file, sig_path = tempfile.mkstemp(dir=tmpdir) sig_file = os.fdopen(sig_file, 'wb') sig_file.write(signature) sig_file.close() else: sig_path = None try: return self.verify_from_file( data_path, sig_path=sig_path, keyrings=keyrings, homedir=homedir ) finally: shutil.rmtree(tmpdir) def verify_from_file(self, data_path, sig_path=None, keyrings=None, homedir=None): ''' `data_path` The path to the data to verify. `sig_path` The signature file, if detached from the data. `keyrings` Additional keyrings to search in. `homedir` Override the configured homedir. ''' cmd_line = ['gpg', '--homedir', homedir or self.homedir] cmd_line.extend(self._get_keyrings_cl(keyrings)) cmd_line.append('--verify') if sig_path: cmd_line.extend([sig_path, data_path]) else: cmd_line.append(data_path) p = subprocess.Popen(cmd_line, stderr=subprocess.PIPE) stdout, stderr = p.communicate() if p.returncode: raise GpgBinaryError(stderr) return True def clearsign(self, data, fingerprint, keyrings=None, homedir=None): if isinstance(data, six.text_type): data = data.encode('utf-8') cmd_line = ['gpg', '--homedir', homedir or self.homedir] cmd_line.extend(self._get_keyrings_cl(keyrings)) cmd_line.extend(['--local-user', fingerprint, '--clearsign']) p = subprocess.Popen( cmd_line, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) stdout, stderr = p.communicate(data) if p.returncode: raise GpgBinaryError(stderr) return stdout def sign(self, data, fingerprint, keyrings=None, homedir=None): if isinstance(data, six.text_type): data = data.encode('utf-8') cmd_line = ['gpg', '--homedir', homedir or self.homedir] cmd_line.extend(self._get_keyrings_cl(keyrings)) cmd_line.extend(['--local-user', fingerprint, '--detach-sign']) p = subprocess.Popen( cmd_line, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) stdout, stderr = p.communicate(data) if p.returncode: raise GpgBinaryError(stderr) return stdout # Here comes the part actually relevent to fedmsg """ ``fedmsg.crypto.gpg`` - GnuPG backend for :mod:`fedmsg.crypto` """ import fedmsg.encoding _ctx = Context() def sign(message, gpg_home=None, gpg_signing_key=None, **config): """ Insert a new field into the message dict and return it. The new field is: - 'signature' - the computed GPG message digest of the JSON repr of the `msg` field. """ if gpg_home is None or gpg_signing_key is None: raise ValueError("You must set the gpg_home \ and gpg_signing_key keyword arguments.") message['crypto'] = 'gpg' signature = _ctx.sign( fedmsg.encoding.dumps(message['msg']), gpg_signing_key, homedir=gpg_home ) return dict(list(message.items()) + [('signature', b64encode(signature))]) def validate(message, gpg_home=None, **config): """ Return true or false if the message is signed appropriately. Two things must be true: 1) The signature must be valid (obviously) 2) The signing key must be in the local keyring as defined by the `gpg_home` config value. """ if gpg_home is None: raise ValueError("You must set the gpg_home keyword argument.") try: _ctx.verify( fedmsg.encoding.dumps(message['msg']), b64decode(message['signature']), homedir=gpg_home ) return True except GpgBinaryError as e: log.warn("Failed validation. {0}".format(six.text_type(message))) return False fedmsg-0.9.3/fedmsg/crypto/__init__.py0000644000175000017500000002351512330204655021610 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ ``fedmsg.crypto`` - Cryptographic component of fedmsg. Introduction ------------ In general, we assume that 'everything on the bus is public'. Even though all the zmq endpoints are firewalled off from the outside world with iptables, we do have a forwarding service setup that indiscriminantly forwards all messages to anyone who wants them. (See :mod:`fedmsg.commands.gateway.gateway` for that service.) So, the issue is not encrypting messages so they can't be read. It is up to sensitive services like FAS to *not send* sensitive information in the first place (like passwords, for instance). However, since at some point, services will respond to and act on messages that come across the bus, we need facilities for guaranteeing a message comes from where it *ought* to come from. (Tangentially, message consumers need a simple way to declare where they expect their messages to come from and have the filtering and validation handled for them). There should also be a convenient way to turn crypto off both globally and locally. Justification: a developer may want to work out a bug without any messages being signed or validated. In production, certain senders may send non-critical data from a corner of Fedora Infrastructure in which it's difficult to sign messages. A consumer of those messages should be allowed to ignore validation for those and only those expected unsigned messages Two backend methods are available to accomplish this: - :mod:`fedmsg.crypto.x509` - :mod:`fedmsg.crypto.gpg` Which backend is used is configured by the :term:`crypto_backend` configuration value. Certificates ------------ To accomplish message signing, fedmsg must be able to read certificates and a private key on disk in the case of the :mod:`fedmsg.crypto.x509` backend or to read public and private GnuPG keys in the came of the :mod:`fedmsg.crypto.gpg` backend. For message validation, it only need be able to read the x509 certificate or gpg public key. Exactly *which* certificates are used are determined by looking up the ``certname`` in the :term:`certnames` config dict. We use a large number of certs for the deployment of fedmsg. We have one cert per `service-host`. For example, if we have 3 fedmsg-enabled services and each service runs on 10 hosts, then we have 30 unique certificate/key pairs in all. The intent is to create difficulty for attackers. If a low-security service on a particular box is compromised, we don't want the attacker automatically have access to the same certificate used for signing high-security service messages. Furthermore, attempts are made at the sysadmin-level to ensure that fedmsg-enabled services run as users that have exclusive read access to their own keys. See the `Fedora Infrastructure SOP `_ for more information (including how to generate new certs/bring up new services). Routing Policy -------------- Messages are also checked to see if the name of the certificate they bear and the topic they're routed on match up in a :term:`routing_policy` dict. Is the build server allowed to send messages about wiki updates? Not if the routing policy has anything to say about it. .. note:: By analogy, "signature validation is to authentication as routing policy checks are to authorization." If the topic of a message appears in the :term:`routing_policy`, the name borne on the certificate must also appear under the associated list of permitted publishers or the message is marked invalid. If the topic of a message does *not* appear in the :term:`routing_policy`, two different courses of action are possible: - If :term:`routing_nitpicky` is set to ``False``, then the message is given the green light. Our routing policy doesn't have anything specific to say about messages of this topic and so who are we to deny it passage, right? - If :term:`routing_nitpicky` is set to ``True``, then we deny the message and mark it as invalid. Typically, you'll deploy fedmsg with nitpicky mode turned off. You can build your policy over time as you determine what services will be sending what messages. Once deployment of fedmsg reaches a certain level of stability, you can turn nitpicky mode on for enhanced security, but by doing so you may break certain message paths that you've forgotten to include in your routing policy. Configuration ------------- By convention, configuration values for :mod:`fedmsg.crypto` are kept in ``/etc/fedmsg.d/ssl.py``, although technically they can be kept in any config ``dict`` in ``/etc/fedmsg.d`` (or in any of the config locations checked by :mod:`fedmsg.config`). The cryptography routines expect the following values to be defined: - :term:`crypto_backend` - :term:`crypto_validate_backends` - :term:`sign_messages` - :term:`validate_signatures` - :term:`ssldir` - :term:`crl_location` - :term:`crl_cache` - :term:`crl_cache_expiry` - :term:`certnames` - :term:`routing_policy` - :term:`routing_nitpicky` For general information on configuration, see :mod:`fedmsg.config`. Module Contents --------------- :mod:`fedmsg.crypto` encapsulates standalone functions for: - Message signing. - Signature validation. - Stripping crypto information for view. See :mod:`fedmsg.crypto.x509` and :mod:`fedmsg.crypto.gpg` for implementation details. """ import copy import os import logging log = logging.getLogger(__name__) _implementation = None _validate_implementations = None from . import gpg from . import x509 _possible_backends = { 'gpg': gpg, 'x509': x509, } def init(**config): """ Initialize the crypto backend. The backend can be one of two plugins: - 'x509' - Uses x509 certificates. - 'gpg' - Uses GnuPG keys. """ global _implementation global _validate_implementations if config.get('crypto_backend') == 'gpg': _implementation = gpg else: _implementation = x509 _validate_implementations = [] for mod in config.get('crypto_validate_backends', []): if mod == 'gpg': _validate_implementations.append(gpg) elif mod == 'x509': _validate_implementations.append(x509) else: raise ValueError("%r is not a valid crypto backend" % mod) if not _validate_implementations: _validate_implementations.append(_implementation) def sign(message, **config): """ Insert two new fields into the message dict and return it. Those fields are: - 'signature' - the computed message digest of the JSON repr. - 'certificate' - the base64 certificate or gpg key of the signator. """ if not _implementation: init(**config) return _implementation.sign(message, **config) def validate(message, **config): """ Return true or false if the message is signed appropriately. """ if not _validate_implementations: init(**config) cfg = copy.deepcopy(config) if 'gpg_home' not in cfg: cfg['gpg_honme'] = os.path.expanduser('~/.gnupg/') if 'ssldir' not in cfg: cfg['ssldir'] = '/etc/pki/fedmsg' if 'crypto' in message: if not message['crypto'] in _possible_backends: log.warn("Message specified an unpossible crypto backend") return False try: backend = _possible_backends[message['crypto']] except Exception as e: log.warn("Failed to load %r %r" % (message['crypto'], e)) return False # fedmsg 0.7.2 and earlier did not specify which crypto backend a message # was signed with. As long as we care about interoperability with those # versions, attempt to guess the backend to use elif 'certificate' in message: backend = x509 elif 'signature' in message: backend = gpg else: log.warn('Could not determine crypto backend. Message unsigned?') return False if backend in _validate_implementations: return backend.validate(message, **cfg) else: log.warn("Crypto backend %r is disallowed" % backend) return False def validate_signed_by(message, signer, **config): """ Validate that a message was signed by a particular certificate. This works much like ``validate(...)``, but additionally accepts a ``signer`` argument. It will reject a message for any of the regular circumstances, but will also reject it if its not signed by a cert with the argued name. """ config = copy.deepcopy(config) config['routing_nitpicky'] = True config['routing_policy'] = {message['topic']: [signer]} return validate(message, **config) def strip_credentials(message): """ Strip credentials from a message dict. A new dict is returned without either `signature` or `certificate` keys. This method can be called safely; the original dict is not modified. This function is applicable using either using the x509 or gpg backends. """ message = copy.deepcopy(message) for field in ['signature', 'certificate']: if field in message: del message[field] return message fedmsg-0.9.3/fedmsg/crypto/x509.py0000644000175000017500000002234412330204655020555 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ ``fedmsg.crypto.x509`` - X.509 backend for :mod:`fedmsg.crypto`. """ import os import requests import time import fedmsg.crypto import fedmsg.encoding import logging log = logging.getLogger(__name__) try: import M2Crypto # FIXME - m2ext will be unnecessary once the following bug is closed. # https://bugzilla.osafoundation.org/show_bug.cgi?id=11690 import m2ext disabled = False except ImportError as e: logging.basicConfig() log.warn("Crypto disabled %r" % e) disabled = True def sign(message, ssldir=None, certname=None, **config): """ Insert two new fields into the message dict and return it. Those fields are: - 'signature' - the computed RSA message digest of the JSON repr. - 'certificate' - the base64 X509 certificate of the sending host. """ if disabled: return message if ssldir is None or certname is None: error = "You must set the ssldir and certname keyword arguments." raise ValueError(error) message['crypto'] = 'x509' certificate = M2Crypto.X509.load_cert( "%s/%s.crt" % (ssldir, certname)).as_pem() # Opening this file requires elevated privileges in stg/prod. rsa_private = M2Crypto.RSA.load_key( "%s/%s.key" % (ssldir, certname)) digest = M2Crypto.EVP.MessageDigest('sha1') digest.update(fedmsg.encoding.dumps(message)) signature = rsa_private.sign(digest.digest()) # Return a new dict containing the pairs in the original message as well # as the new authn fields. return dict(message.items() + [ ('signature', signature.encode('base64')), ('certificate', certificate.encode('base64')), ]) def validate(message, ssldir=None, **config): """ Return true or false if the message is signed appropriately. Four things must be true: 1) The X509 cert must be signed by our CA 2) The cert must not be in our CRL. 3) We must be able to verify the signature using the RSA public key contained in the X509 cert. 4) The topic of the message and the CN on the cert must appear in the :term:`routing_policy` dict. """ if ssldir is None: raise ValueError("You must set the ssldir keyword argument.") def fail(reason): log.warn("Failed validation. %s" % reason) return False if disabled: fail("M2Crypto and/or m2ext missing!") # Some sanity checking for field in ['signature', 'certificate']: if not field in message: return fail("No %r field found." % field) if not isinstance(message[field], basestring): return fail("msg[%r] is not a string" % field) # Peal off the auth datums decode = lambda obj: obj.decode('base64') signature, certificate = map(decode, ( message['signature'], message['certificate'])) message = fedmsg.crypto.strip_credentials(message) # Build an X509 object cert = M2Crypto.X509.load_cert_string(certificate) # Validate the cert. Make sure it is signed by our CA. # validate_certificate will one day be a part of M2Crypto.SSL.Context # https://bugzilla.osafoundation.org/show_bug.cgi?id=11690 default_ca_cert_loc = 'https://fedoraproject.org/fedmsg/ca.crt' cafile = _load_remote_cert( config.get('ca_cert_location', default_ca_cert_loc), config.get('ca_cert_cache', '/etc/pki/fedmsg/ca.crt'), config.get('ca_cert_cache_expiry', 0), **config) ctx = m2ext.SSL.Context() ctx.load_verify_locations(cafile=cafile) if not ctx.validate_certificate(cert): return fail("X509 certificate is not valid.") # Load and check against the CRL crl = _load_remote_cert( config.get('crl_location', 'https://fedoraproject.org/fedmsg/crl.pem'), config.get('crl_cache', '/var/cache/fedmsg/crl.pem'), config.get('crl_cache_expiry', 1800), **config) crl = M2Crypto.X509.load_crl(crl) # FIXME -- We need to check that the CRL is signed by our own CA. # See https://bugzilla.osafoundation.org/show_bug.cgi?id=12954#c2 #if not ctx.validate_certificate(crl): # return fail("X509 CRL is not valid.") # FIXME -- we check the CRL, but by doing string comparison ourselves. # This is not what we want to be doing. # There is a patch into M2Crypto to handle this for us. We should use it # once its integrated upstream. # See https://bugzilla.osafoundation.org/show_bug.cgi?id=12954#c2 revoked_serials = [long(line.split(': ')[1].strip(), base=16) for line in crl.as_text().split('\n') if 'Serial Number:' in line] if cert.get_serial_number() in revoked_serials: return fail("X509 certificate is in the Revocation List (CRL)") # If the cert is good, then test to see if the signature in the messages # matches up with the provided cert. rsa_public = cert.get_pubkey().get_rsa() digest = M2Crypto.EVP.MessageDigest('sha1') digest.update(fedmsg.encoding.dumps(message)) try: if not rsa_public.verify(digest.digest(), signature): raise M2Crypto.RSA.RSAError("RSA signature failed to validate.") except M2Crypto.RSA.RSAError as e: return fail(str(e)) # Now we know that the cert is valid. The message is *authenticated*. # * Next step: Authorization * # Load our policy from the config dict. routing_policy = config.get('routing_policy', {}) # Determine the name of the signer of the message. # This will be something like "shell-pkgs01.stg.phx2.fedoraproject.org" subject = cert.get_subject() signer = subject.get_entries_by_nid(subject.nid['CN'])[0]\ .get_data().as_text() # Perform the authz dance # Do we have a list of permitted senders for the topic of this message? if message.get('topic') in routing_policy: # If so.. is the signer one of those permitted senders? if signer in routing_policy[message['topic']]: # We are good. The signer of this message is explicitly # whitelisted to send on this topic in our config policy. pass else: # We have a policy for this topic and $homeboy isn't on the list. return fail("Authorization/routing_policy error. " "Topic %r. Signer %r." % (message['topic'], signer)) else: # We don't have a policy for this topic. How we react next for an # underspecified routing_policy is based on a configuration option. # Ideally, we are in nitpicky mode. We leave it disabled while # standing up fedmsg across our environment so that we can build our # policy without having the whole thing come crashing down. if config.get('routing_nitpicky', False): # We *are* in nitpicky mode. We don't have an entry in the # routing_policy for the topic of this message.. and *nobody* # gets in without a pass. That means that we fail the message. return fail("Authorization/routing_policy underspecified.") else: # We are *not* in nitpicky mode. We don't have an entry in the # routing_policy for the topic of this message.. but we don't # really care. We pass on the message and ultimately return # True later on. pass return True def _load_remote_cert(location, cache, cache_expiry, **config): """ Get a fresh copy from fp.o/fedmsg/crl.pem if ours is getting stale. Return the local filename. """ try: modtime = os.stat(cache).st_mtime except OSError: # File does not exist yet. modtime = 0 if ( (not modtime and not cache_expiry) or (cache_expiry and time.time() - modtime > cache_expiry) ): try: response = requests.get(location) with open(cache, 'w') as f: f.write(response.content) except requests.exceptions.ConnectionError: log.warn("Could not access %r" % location) except IOError as e: # If we couldn't write to the specified cache location, try a # similar place but inside our home directory instead. cache = os.path.expanduser("~/.local" + cache) usr_dir = '/'.join(cache.split('/')[:-1]) if not os.path.isdir(usr_dir): os.makedirs(usr_dir) with open(cache, 'w') as f: f.write(response.content) return cache fedmsg-0.9.3/fedmsg/tests/0000755000175000017500000000000012371202100017277 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/tests/test_crypto_switching.py0000644000175000017500000000500012330204655024316 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import six import os import nose.tools.nontrivial try: # For python-2.6, so we can do skipTest import unittest2 as unittest except ImportError: import unittest import fedmsg.crypto SEP = os.path.sep here = SEP.join(__file__.split(SEP)[:-1]) def skip_if_missing_x509_libs(f): def _wrapper(self, *args, **kw): try: import M2Crypto import m2ext except ImportError as e: self.skipTest(six.text_type(e)) return f(self, *args, **kw) return nose.tools.nontrivial.make_decorator(f)(_wrapper) class TestCryptoSwitching(unittest.TestCase): def setUp(self): self.config = { # Normally this is /var/lib/puppet/ssl 'ssldir': SEP.join((here, 'test_certs/keys')), # Normally this is 'app01.stg.phx2.fedoraproject.org' 'certname': 'shell-app01.phx2.fedoraproject.org', 'crl_location': "http://threebean.org/fedmsg-tests/crl.pem", 'crl_cache': "/tmp/crl.pem", 'crl_cache_expiry': 10, # But *not* x509 'crypto_validate_backends': ['gpg'], } # Need to reset this global fedmsg.crypto._validate_implementations = None def tearDown(self): self.config = None # Need to reset this global fedmsg.crypto._validate_implementations = None @skip_if_missing_x509_libs def test_invalid_validator(self): """ Try to verify an x509 message when only gpg is allowed. """ message = dict(msg='awesome') signed = fedmsg.crypto.sign(message, **self.config) assert not fedmsg.crypto.validate(signed, **self.config) if __name__ == '__main__': unittest.main() fedmsg-0.9.3/fedmsg/tests/test_meta.py0000644000175000017500000002351712362250750021664 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ Tests for fedmsg.meta """ import os import unittest from nose import SkipTest from nose.tools import eq_ try: from nose.tools.nontrivial import make_decorator except ImportError: # It lives here in older versions of nose (el6) from nose.tools import make_decorator import fedmsg.meta from fedmsg.tests.common import load_config def skip_on(attributes): """ A test decorator that will skip if any of the named attributes are left unspecified (are None-valued). """ def wrapper(func): @make_decorator(func) def inner(self): for attr in attributes: if getattr(self, attr) is None: raise SkipTest("%r left unspecified" % attr) return func(self) return inner return wrapper def skip_if_fedmsg_meta_FI_is_present(f): """ A test decorator that will skip if fedmsg_meta_fedora_infrastructure is installed. The presence of that module will screw up some tests. """ def _wrapper(self, *args, **kw): try: import fedmsg_meta_fedora_infrastructure raise SkipTest("fedmsg_meta_FI is present") except ImportError: pass return f(self, *args, **kw) return make_decorator(f)(_wrapper) class TestForWarning(unittest.TestCase): def setUp(self): dirname = os.path.abspath(os.path.dirname(__file__)) self.config = fedmsg.config.load_config( filenames=[os.path.join(dirname, "fedmsg-test-config.py")], invalidate_cache=True, ) self.config['topic_prefix'] = 'org.fedoraproject' self.config['topic_prefix_re'] = '^org\.fedoraproject\.(dev|stg|prod)' @skip_if_fedmsg_meta_FI_is_present def test_for_no_plugins(self): """ Test that we print a warning if no plugin is installed """ messages = [] def mocked_warning(message): messages.append(message) expected = 'No fedmsg.meta plugins found. fedmsg.meta.msg2* crippled' original = fedmsg.meta.log.warn try: fedmsg.meta.log.warn = mocked_warning fedmsg.meta.make_processors(**self.config) eq_(messages, [expected]) finally: fedmsg.meta.log.warn = original class TestProcessorRegex(unittest.TestCase): def setUp(self): dirname = os.path.abspath(os.path.dirname(__file__)) self.config = fedmsg.config.load_config( filenames=[os.path.join(dirname, "fedmsg-test-config.py")], invalidate_cache=True, ) self.config['topic_prefix'] = 'org.fedoraproject' self.config['topic_prefix_re'] = '^org\.fedoraproject\.(dev|stg|prod)' class MyGitProcessor(fedmsg.meta.base.BaseProcessor): __name__ = 'git' __description__ = 'This processor handles git messages' __link__ = 'http://fedmsg.com' __docs__ = 'http://fedmsg.com' __obj__ = 'git commits' self.proc = MyGitProcessor(lambda x: x, **self.config) def test_processor_handle_hit(self): """ Test that a proc can handle what it should. """ fake_message = { 'topic': 'org.fedoraproject.dev.git.push', } result = self.proc.handle_msg(fake_message, **self.config) assert result is not None, "Proc didn't say it could handle the message." def test_processor_handle_miss(self): """ Test that a proc says it won't handle what it shouldn't. """ fake_message = { 'topic': 'org.fedoraproject.dev.github.push', } result = self.proc.handle_msg(fake_message, **self.config) assert result is None, "Proc falsely claimed it could handle the msg." def test_processor_handle_empty_subtopic(self): """Test that a processor will handle a message with an empty subtopic""" fake_message = { 'topic': 'org.fedoraproject.dev.git', } result = self.proc.handle_msg(fake_message, **self.config) assert result is "", "Proc said it couldn't handle the msg." class Base(unittest.TestCase): msg = None expected_title = None expected_subti = None expected_markup = None expected_link = None expected_icon = None expected_secondary_icon = None expected_usernames = None expected_packages = None expected_objects = None expected_emails = None expected_avatars = None def setUp(self): dirname = os.path.abspath(os.path.dirname(__file__)) self.config = fedmsg.config.load_config( filenames=[os.path.join(dirname, "fedmsg-test-config.py")], invalidate_cache=True, ) self.config['topic_prefix'] = 'org.fedoraproject' self.config['topic_prefix_re'] = '^org\.fedoraproject\.(dev|stg|prod)' fedmsg.meta.make_processors(**self.config) @skip_on(['msg', 'expected_title']) def test_title(self): """ Does fedmsg.meta produce the expected title? """ actual_title = fedmsg.meta.msg2title(self.msg, **self.config) eq_(actual_title, self.expected_title) @skip_on(['msg', 'expected_markup']) def test_markup(self): """ Does fedmsg.meta produce the right html when markup=True? """ actual_markup = fedmsg.meta.msg2subtitle( self.msg, markup=True, **self.config) eq_(actual_markup, self.expected_markup) @skip_on(['msg', 'expected_subti']) def test_subtitle(self): """ Does fedmsg.meta produce the expected subtitle? """ actual_subti = fedmsg.meta.msg2subtitle(self.msg, **self.config) eq_(actual_subti, self.expected_subti) @skip_on(['msg', 'expected_link']) def test_link(self): """ Does fedmsg.meta produce the expected link? """ actual_link = fedmsg.meta.msg2link(self.msg, **self.config) eq_(actual_link, self.expected_link) @skip_on(['msg', 'expected_icon']) def test_icon(self): """ Does fedmsg.meta produce the expected icon? """ actual_icon = fedmsg.meta.msg2icon(self.msg, **self.config) eq_(actual_icon, self.expected_icon) @skip_on(['msg', 'expected_secondary_icon']) def test_secondary_icon(self): """ Does fedmsg.meta produce the expected secondary icon? """ actual_icon = fedmsg.meta.msg2secondary_icon(self.msg, **self.config) eq_(actual_icon, self.expected_secondary_icon) @skip_on(['msg', 'expected_usernames']) def test_usernames(self): """ Does fedmsg.meta produce the expected list of usernames? """ actual_usernames = fedmsg.meta.msg2usernames(self.msg, **self.config) eq_(actual_usernames, self.expected_usernames) @skip_on(['msg', 'expected_packages']) def test_packages(self): """ Does fedmsg.meta produce the expected list of packages? """ actual_packages = fedmsg.meta.msg2packages(self.msg, **self.config) eq_(actual_packages, self.expected_packages) @skip_on(['msg', 'expected_objects']) def test_objects(self): """ Does fedmsg.meta produce the expected list of objects? """ actual_objects = fedmsg.meta.msg2objects(self.msg, **self.config) eq_(actual_objects, self.expected_objects) @skip_on(['msg', 'expected_emails']) def test_emails(self): """ Does fedmsg.meta produce the expected list of emails? """ actual_emails = fedmsg.meta.msg2emails(self.msg, **self.config) eq_(actual_emails, self.expected_emails) @skip_on(['msg', 'expected_avatars']) def test_avatars(self): """ Does fedmsg.meta produce the expected list of avatars? """ actual_avatars = fedmsg.meta.msg2avatars(self.msg, **self.config) eq_(actual_avatars, self.expected_avatars) class TestUnhandled(Base): expected_title = "unhandled_service.some_event" expected_subti = "" msg = { "topic": "org.fedoraproject.stg.unhandled_service.some_event" } class TestAnnouncement(Base): expected_title = "announce.announcement" expected_subti = 'hello, world.' expected_link = 'foo' expected_usernames = set(['ralph']) msg = { "i": 1, "timestamp": 1344352873.714926, "topic": "org.fedoraproject.dev.announce.announcement", "msg": { "message": "hello, world.", "link": "foo", }, 'username': 'ralph', } class TestLoggerNormal(Base): expected_title = "logger.log" expected_subti = 'hello, world. (ralph)' expected_usernames = set(['ralph']) msg = { "i": 1, "timestamp": 1344352873.714926, "topic": "org.fedoraproject.dev.logger.log", "msg": { "log": "hello, world." }, 'username': 'ralph', } class TestLoggerJSON(Base): expected_title = "logger.log" expected_subti = ' (root)' expected_usernames = set(['root']) msg = { "i": 1, "timestamp": 1344352929.415939, "topic": "org.fedoraproject.dev.logger.log", "msg": { "foo": "bar" }, 'username': 'root', } if __name__ == '__main__': unittest.main() fedmsg-0.9.3/fedmsg/tests/test_utils.py0000644000175000017500000000350212362250750022066 0ustar threebeanthreebean00000000000000from nose.tools import raises, eq_ from fedmsg.utils import load_class, dict_query def test_load_class_succeed(): cls = load_class("shelve:Shelf") from shelve import Shelf eq_(cls, Shelf) @raises(ImportError) def test_load_class_import_error(): cls = load_class("thisisnotapackage:ThisIsNotAClass") @raises(ImportError) def test_load_class_attribute_error(): cls = load_class("shelve:ThisIsNotAClass") def test_dict_query_basic(): dct = { 'foo': { 'bar': { 'baz': 'wat', } } } key = 'foo.bar.baz' result = dict_query(dct, key) eq_(result, {key: 'wat'}) def test_dict_query_miss(): dct = { 'foo': { 'bar': { 'baz': 'wat', } } } key = 'foo.bar.zomg' result = dict_query(dct, key) eq_(result, {key: None}) def test_dict_query_fancy_one(): dct = { 'foo': { 'bar': { 'zip': 'zoom', 'baz': 'wat', } } } key = 'foo.bar' result = dict_query(dct, key) eq_(result, {key: {'baz': 'wat', 'zip': 'zoom'}}) def test_dict_query_fancy_two(): dct = { 'foo': { 'bar': { 'zip': 'zoom', 'baz': 'wat', }, 'har': 'loktar ogar', } } key1 = 'foo.bar' result = dict_query(dct, key1) eq_(result, {key1: {'baz': 'wat', 'zip': 'zoom'}}) key2 = 'foo.har' result = dict_query(dct, key2) eq_(result, {key2: 'loktar ogar'}) @raises(ValueError) def test_dict_query_weird_inputs(): dct = { 'foo': { 'bar': { 'baz': 'wat', }, } } key = None result = dict_query(dct, key) eq_(result, {key: {'baz': 'wat', 'zip': 'zoom'}}) fedmsg-0.9.3/fedmsg/tests/test_config.py0000644000175000017500000000434312330204655022175 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ Tests for fedmsg.config """ import unittest from nose.tools import eq_ import fedmsg.config from fedmsg.tests.common import load_config class RecursiveUpdateBase(unittest.TestCase): originals = None expected = None def test_match(self): """ Does fedmsg.config._recursive_update produce the expected result? """ if None in (self.originals, self.expected): return actual = dict() for o in self.originals: actual = fedmsg.config._recursive_update(actual, o) eq_(actual, self.expected) class TestSimpleOne(RecursiveUpdateBase): originals = [dict(a=2)] expected = dict(a=2) class TestSimpleTwo(RecursiveUpdateBase): originals = [ dict(a=2), dict(b=3), ] expected = dict(a=2, b=3) class TestOverwrite(RecursiveUpdateBase): originals = [ dict(a=2), dict(a=3), ] expected = dict(a=3) class TestMerge(RecursiveUpdateBase): originals = [ dict(a=dict(a=2)), dict(a=dict(b=3)), ] expected = dict(a=dict(a=2, b=3)) class TestConfig(unittest.TestCase): """Test for try out the function iterate in endpoints config""" def test_config(self): config = load_config() endpoints = config['endpoints'] for key, value in endpoints.items(): assert isinstance(value, list), value if __name__ == '__main__': unittest.main() fedmsg-0.9.3/fedmsg/tests/test_crypto_gpg.py0000644000175000017500000000777012330204655023114 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import os import functools from nose.tools import raises from nose.exc import SkipTest try: from nose.tools.nontrivial import make_decorator except ImportError: # It lives here in older versions of nose (el6) from nose.tools import make_decorator import unittest import fedmsg.crypto.gpg SEP = os.path.sep here = SEP.join(__file__.split(SEP)[:-1]) data_dir = SEP.join((here, 'test_certs', 'gpg')) keyrings = [] clear_data_path = os.path.join(data_dir, "test_data") secret_fp = 'FBDA 92E4 338D FFD9 EB83 F8F6 3FBD B725 DA19 B4EC' def skip_on_travis(fn): """ A decorator that just skips some tests on travis-ci.org """ @functools.wraps(fn) def newfunc(self, *args, **kw): if os.environ.get('TRAVIS', None): raise SkipTest("gpg permissions are weird on travis-ci.org") return fn(self, *args, **kw) return make_decorator(fn)(newfunc) class TestGpg(unittest.TestCase): def setUp(self): self.ctx = fedmsg.crypto.gpg.Context(keyrings=keyrings, homedir=data_dir) def test_verif_detach_sig(self): signature_path = os.path.join(data_dir, "test_data.sig") self.ctx.verify(open(clear_data_path, 'r').read(), signature=open(signature_path, 'rb').read()) self.ctx.verify_from_file(clear_data_path, sig_path=signature_path) @raises(fedmsg.crypto.gpg.GpgBinaryError) def test_corrupt_detach_sig(self): signature_path = os.path.join(data_dir, "corrupt.sig") self.ctx.verify_from_file(clear_data_path, sig_path=signature_path) @skip_on_travis def test_sign_cleartext(self): test_data = u'I can haz a signature?' signed_text = self.ctx.clearsign(test_data, fingerprint=secret_fp) self.ctx.verify(signed_text) @skip_on_travis def test_sign_detached(self): test_data = u'I can haz a signature?' signature = self.ctx.sign(test_data, fingerprint=secret_fp) self.ctx.verify(test_data, signature) import fedmsg.crypto class TestCryptoGPG(unittest.TestCase): def setUp(self): gpg_key = 'FBDA 92E4 338D FFD9 EB83 F8F6 3FBD B725 DA19 B4EC' self.config = { 'crypto_backend': 'gpg', 'gpg_home': SEP.join((here, 'test_certs', 'gpg')), 'gpg_signing_key': gpg_key } def tearDown(self): self.config = None @skip_on_travis def test_full_circle(self): """ Try to sign and validate a message. """ message = dict(msg='awesome') signed = fedmsg.crypto.sign(message, **self.config) assert fedmsg.crypto.validate(signed, **self.config) @skip_on_travis def test_failed_validation(self): message = dict(msg='awesome') signed = fedmsg.crypto.sign(message, **self.config) # space aliens read data off the wire and inject incorrect data signed['msg'] = "eve wuz here" assert not fedmsg.crypto.validate(signed, **self.config) def tearDown(self): # We have to reset the implementation in fedmsg.crypto # otherwise all the other tests will use the gpg backend fedmsg.crypto._implementation = None if __name__ == '__main__': unittest.main() fedmsg-0.9.3/fedmsg/tests/test_commands.py0000644000175000017500000002102012314301572022516 0ustar threebeanthreebean00000000000000import unittest from mock import Mock from mock import patch from datetime import datetime import time import json import os import fedmsg import fedmsg.core import fedmsg.config import fedmsg.commands from fedmsg.commands.logger import LoggerCommand from fedmsg.commands.tail import TailCommand from fedmsg.commands.relay import RelayCommand from fedmsg.commands.config import config as config_command import fedmsg.consumers.relay from nose.tools import eq_ import threading import six CONF_FILE = os.path.join(os.path.dirname(__file__), "fedmsg.d", "ircbot.py") class TestCommands(unittest.TestCase): def setUp(self): self.local = threading.local() # Crazy. I'm sorry. os.environ['TZ'] = 'US/Central' time.tzset() def tearDown(self): del self.local self.local = None @patch("sys.argv", new_callable=lambda: ["fedmsg-logger"]) @patch("sys.stdout", new_callable=six.StringIO) def test_logger_basic(self, stdout, argv): test_input = "a message for you" if six.PY3: stdin = lambda: six.StringIO(test_input) else: stdin = lambda: six.StringIO(test_input.encode('utf-8')) msgs = [] def mock_publish(context, topic=None, msg=None, modname=None): msgs.append(msg) config = {} with patch("fedmsg.__local", self.local): with patch("fedmsg.config.__cache", config): with patch("fedmsg.core.FedMsgContext.publish", mock_publish): with patch("sys.stdin", new_callable=stdin): command = LoggerCommand() command.execute() eq_(msgs, [{'log': test_input}]) @patch("sys.argv", new_callable=lambda: ["fedmsg-logger", "--json-input"]) @patch("sys.stdout", new_callable=six.StringIO) def test_logger_json(self, stdout, argv): test_input_dict = {"hello": "world"} test_input = json.dumps(test_input_dict) if six.PY3: stdin = lambda: six.StringIO(test_input) else: stdin = lambda: six.StringIO(test_input.encode('utf-8')) msgs = [] def mock_publish(context, topic=None, msg=None, modname=None): msgs.append(msg) config = {} with patch("fedmsg.__local", self.local): with patch("fedmsg.config.__cache", config): with patch("fedmsg.core.FedMsgContext.publish", mock_publish): with patch("sys.stdin", new_callable=stdin): command = LoggerCommand() command.execute() eq_(msgs, [test_input_dict]) @patch("sys.argv", new_callable=lambda: ["fedmsg-tail"]) @patch("sys.stdout", new_callable=six.StringIO) def test_tail_basic(self, stdout, argv): def mock_tail(self, topic="", passive=False, **kw): yield ("name", "endpoint", "topic", dict(topic="topic")) config = {} with patch("fedmsg.__local", self.local): with patch("fedmsg.config.__cache", config): with patch("fedmsg.core.FedMsgContext.tail_messages", mock_tail): command = fedmsg.commands.tail.TailCommand() command.execute() output = stdout.getvalue() expected = "{'topic': 'topic'}\n" assert(output.endswith(expected)) @patch("sys.argv", new_callable=lambda: ["fedmsg-tail", "--pretty"]) @patch("sys.stdout", new_callable=six.StringIO) def test_tail_pretty(self, stdout, argv): msgs = [] def mock_tail(self, topic="", passive=False, **kw): msg = dict( msg=dict(hello="world"), msg_id='2ad5aaf8-68af-4a6d-9196-2a8b43a73238', timestamp=1354563717.472648, # Once upon a time... topic="org.threebean.prod.testing", ) yield ("name", "endpoint", "topic", msg) config = {} with patch("fedmsg.__local", self.local): with patch("fedmsg.config.__cache", config): with patch("fedmsg.core.FedMsgContext.tail_messages", mock_tail): command = fedmsg.commands.tail.TailCommand() command.execute() output = stdout.getvalue() expected = "{'msg': {'hello': 'world'}," assert(expected in output) @patch("sys.argv", new_callable=lambda: ["fedmsg-tail", "--really-pretty"]) @patch("sys.stdout", new_callable=six.StringIO) def test_tail_really_pretty(self, stdout, argv): msgs = [] def mock_tail(self, topic="", passive=False, **kw): msg = dict( msg=dict(hello="world"), msg_id='2ad5aaf8-68af-4a6d-9196-2a8b43a73238', timestamp=1354563717.472648, # Once upon a time... topic="org.threebean.prod.testing", ) yield ("name", "endpoint", "topic", msg) config = {} with patch("fedmsg.__local", self.local): with patch("fedmsg.config.__cache", config): with patch("fedmsg.core.FedMsgContext.tail_messages", mock_tail): command = fedmsg.commands.tail.TailCommand() command.execute() output = stdout.getvalue() expected = \ '\x1b[33m"hello"\x1b[39;49;00m:\x1b[39;49;00m \x1b[39;49;00m' + \ '\x1b[33m"world"\x1b[39;49;00m' assert(expected in output) @patch("sys.argv", new_callable=lambda: ["fedmsg-relay"]) def test_relay(self, argv): actual_options = [] def mock_main(options, consumers, framework): actual_options.append(options) config = {} with patch("fedmsg.__local", self.local): with patch("fedmsg.config.__cache", config): with patch("moksha.hub.main", mock_main): command = fedmsg.commands.relay.RelayCommand() command.execute() actual_options = actual_options[0] assert( fedmsg.consumers.relay.RelayConsumer.config_key in actual_options ) assert( actual_options[fedmsg.consumers.relay.RelayConsumer.config_key] ) @patch("sys.argv", new_callable=lambda: ["fedmsg-config"]) @patch("sys.stdout", new_callable=six.StringIO) def test_config_basic(self, stdout, argv): with patch('fedmsg.config.__cache', {}): config_command() output = stdout.getvalue() output_conf = json.loads(output) with patch('fedmsg.config.__cache', {}): fedmsg_conf = fedmsg.config.load_config() eq_(output_conf, fedmsg_conf) @patch("sys.argv", new_callable=lambda: [ "fedmsg-config", "--query", "endpoints", ]) @patch("sys.stdout", new_callable=six.StringIO) def test_config_query(self, stdout, argv): with patch('fedmsg.config.__cache', {}): config_command() output = stdout.getvalue() output_conf = json.loads(output) with patch('fedmsg.config.__cache', {}): fedmsg_conf = fedmsg.config.load_config() eq_(output_conf, fedmsg_conf["endpoints"]) @patch("sys.argv", new_callable=lambda: [ "fedmsg-config", "--query", "endpoints.broken", ]) @patch("sys.stdout", new_callable=six.StringIO) @patch("sys.stderr", new_callable=six.StringIO) def test_config_query_broken(self, stderr, stdout, argv): try: with patch('fedmsg.config.__cache', {}): config_command() except SystemExit as exc: eq_(exc.code, 1) else: output = "output: %r, error: %r" % ( stdout.getvalue(), stderr.getvalue()) assert False, output output = stdout.getvalue() error = stderr.getvalue() eq_(output.strip(), "") eq_(error.strip(), "Key `endpoints.broken` does not exist in config") @patch("sys.argv", new_callable=lambda: [ "fedmsg-config", "--disable-defaults", "--config-filename", CONF_FILE, ]) @patch("sys.stdout", new_callable=six.StringIO) def test_config_single_file(self, stdout, argv): with patch('fedmsg.config.__cache', {}): config_command() output = stdout.getvalue() output_conf = json.loads(output) with patch('fedmsg.config.__cache', {}): fedmsg_conf = fedmsg.config.load_config( filenames=[CONF_FILE], disable_defaults=True, ) eq_(output_conf, fedmsg_conf) fedmsg-0.9.3/fedmsg/tests/test_hub.py0000644000175000017500000001466512330204655021516 0ustar threebeanthreebean00000000000000# This file *was* a part of Moksha. # Copyright (C) 2008 - 2014 Red Hat, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. try: # For python-2.6, so we can do skipTest import unittest2 as unittest except ImportError: import unittest import os import socket from time import sleep, time from uuid import uuid4 from moksha.hub.tests.test_hub import simulate_reactor from moksha.hub.hub import MokshaHub from moksha.hub import CentralMokshaHub from fedmsg.core import FedMsgContext from nose.tools import eq_, assert_true, assert_false, raises import fedmsg.config import fedmsg.consumers import fedmsg.encoding from fedmsg.tests.common import load_config # Some constants used throughout the hub tests sleep_duration = 0.25 secret = "secret_message" @raises(KeyError) def test_init_missing_cert(): """ Try to initialize the context with a nonexistant cert. """ config = load_config() config['name'] = "failboat" config['sign_messages'] = True context = FedMsgContext(**config) context.publish(topic='awesome', msg=dict(foo='bar')) class TestHub(unittest.TestCase): def setUp(self): config = load_config() self.hub = CentralMokshaHub(config=config) self.context = FedMsgContext(**config) # fully qualified self.fq_topic = "com.test_prefix.dev.%s.foo" % unittest.__name__ # short version self.topic = "foo" def tearDown(self): self.context.destroy() self.hub.close() def test_send_recv(self): """ Send a message and receive it. Admittedly, this is not a unit test, but an integration test. It tests: - Sending a message. - Receiving a message. - Encoding *and* decoding. """ messages_received = [] def callback(json): messages_received.append(fedmsg.encoding.loads(json.body)) self.hub.subscribe(topic=self.fq_topic, callback=callback) sleep(sleep_duration) self.context.publish(topic=self.topic, msg=secret) simulate_reactor(sleep_duration) sleep(sleep_duration) eq_(len(messages_received), 1) eq_(messages_received[0]['msg'], secret) def fake_register_consumer(self, cons): """ Fake register a consumer, not by entry-point like usual. Normally, consumers are identified by the hub by way of entry-points Ideally, this test would register the TestConsumer on the moksha.consumers entry point, and the hub would pick it up. I'm not sure how to do that, so we're going to fake it and manually add this consumer to the list of consumers of which the Hub is aware. """ self.hub.topics[cons.topic] = self.hub.topics.get(cons.topic, []) self.hub.topics[cons.topic].append(cons(self.hub).consume) sleep(sleep_duration) def test_consumer(self): """ Check that a consumer can get messages. """ obj = {'secret': secret} messages_received = [] class TestConsumer(fedmsg.consumers.FedmsgConsumer): topic = self.fq_topic config_key = "test_consumer_enabled" def _consume(self, message): messages_received.append( message['body']['msg'] ) self.fake_register_consumer(TestConsumer) # Now, send a generic message to that topic, and see if the consumer # processed it. self.context.publish(topic=self.topic, msg=obj) simulate_reactor(sleep_duration) sleep(sleep_duration) simulate_reactor(sleep_duration) sleep(sleep_duration) eq_(len(messages_received), 1) eq_(messages_received[0], obj) def test_double_consumers(self): """ Check that two consumers can get messages. """ obj = {'secret': secret} messages_received = [] class TestConsumer1(fedmsg.consumers.FedmsgConsumer): topic = self.fq_topic config_key = "test_consumer_enabled" def _consume(self, message): messages_received.append( message['body']['msg'] ) class TestConsumer2(fedmsg.consumers.FedmsgConsumer): topic = self.fq_topic config_key = "test_consumer_enabled" def _consume(self, message): messages_received.append( message['body']['msg'] ) self.fake_register_consumer(TestConsumer1) self.fake_register_consumer(TestConsumer2) # Now, send a generic message to that topic, and see if the consumer # processed it. self.context.publish(topic=self.topic, msg=obj) simulate_reactor(sleep_duration) sleep(sleep_duration) eq_(len(messages_received), 2) eq_(messages_received[0], obj) eq_(messages_received[1], obj) def test_consumer_failed_validation(self): """ Check that a consumer won't consume invalid message. """ # TODO -- now that moksha.hub is doing its internal threading/queueing # behavior, this feature of fedmsg is a bit more difficult to test. raise self.skipTest("Not sure how to test this behavior now.") obj = {'secret': secret} messages_received = [] class TestConsumer(fedmsg.consumers.FedmsgConsumer): topic = self.fq_topic config_key = "test_consumer_enabled" def _consume(self, message): messages_received.append( message['body']['msg'] ) def validate(self, message): raise RuntimeWarning("Marking message as invalid.") self.fake_register_consumer(TestConsumer) self.context.publish(topic=self.topic, msg=obj) simulate_reactor(sleep_duration) sleep(sleep_duration) # Verify that we received no message. eq_(len(messages_received), 0) if __name__ == '__main__': unittest.main() fedmsg-0.9.3/fedmsg/tests/test_core.py0000644000175000017500000000226312330204655021657 0ustar threebeanthreebean00000000000000import unittest import mock import warnings from fedmsg.core import FedMsgContext from fedmsg.tests.common import load_config class TestCore(unittest.TestCase): def setUp(self): config = load_config() config['io_threads'] = 1 self.ctx = FedMsgContext(**config) def test_send_message(self): """send_message is deprecated It tests - deprecation warning showing up appropriately - that we call publish method behind the scene """ fake_topic = "org.fedoraproject.prod.compose.rawhide.complete" fake_msg = "{'arch'': 's390', 'branch': 'rawhide', 'log': 'done'}" self.ctx.publish = mock.Mock(spec_set=FedMsgContext.publish) with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always") self.ctx.send_message(topic=fake_topic, msg=fake_msg) assert len(w) == 1 assert str(w[0].message) == ".send_message is deprecated." assert self.ctx.publish.called topic, msg, modname = self.ctx.publish.call_args[0] assert topic == fake_topic assert msg == fake_msg assert modname is None fedmsg-0.9.3/fedmsg/tests/test_replay.py0000644000175000017500000002050312330204655022220 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2013 Simon Chopin # ''' Tests for fedmsg.replay ''' import sys if sys.version_info[0] == 2 and sys.version_info[1] < 7: import unittest2 as unittest else: import unittest from nose.tools import raises from mock import Mock, call import json import time from datetime import datetime import zmq import socket from threading import Thread, Event from fedmsg.tests.common import load_config from fedmsg.replay import ReplayContext, get_replay from fedmsg.replay.sqlstore import SqlStore, SqlMessage from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine hostname = socket.gethostname().split('.', 1)[0] local_name = '{0}.{1}'.format(unittest.__name__, hostname) @raises(KeyError) def test_init_missing_endpoint(): """ Try to initialize the context with a nonexistant service name. """ config = load_config() config['persistent_store'] = Mock() config['name'] = "failboat" context = ReplayContext(**config) @raises(ValueError) def test_init_missing_store(): config = load_config() context = ReplayContext(**config) @raises(IOError) def test_init_invalid_endpoint(): try: config = load_config() config['name'] = local_name config['persistent_store'] = Mock() tmp = zmq.Context() placeholder = tmp.socket(zmq.REP) placeholder.bind('tcp://*:{0}'.format( config["replay_endpoints"][local_name].rsplit(':')[-1] )) context = ReplayContext(**config) finally: placeholder.close() class TestReplayContext(unittest.TestCase): def setUp(self): self.config = load_config() self.config['name'] = local_name self.config['persistent_store'] = Mock() self.replay_context = ReplayContext(**self.config) self.request_context = zmq.Context() self.request_socket = self.request_context.socket(zmq.REQ) self.request_socket.connect( self.config['replay_endpoints'][local_name]) def tearDown(self): self.request_socket.close() self.replay_context.publisher.close() def test_get_replay(self): # Setup the store to return what we ask. answer = [{'foo': 'bar'}] self.config['persistent_store'].get = Mock(side_effect=[answer]) # Doesn't matter what we send as long as it is legit JSON, # since the store is mocked self.request_socket.send(u'{"id": 1}'.encode('utf-8')) self.replay_context._req_rep_cycle() rep = self.request_socket.recv_multipart() print(rep) print(answer) assert len(answer) == len(rep) for r, a in zip(rep, answer): self.assertDictEqual(json.loads(r.decode('utf-8')), a) def test_get_error(self): # Setup the store to return what we ask. answer = ValueError('No luck!') self.config['persistent_store'].get = Mock(side_effect=[answer]) # Doesn't matter what we send as long as it is legit JSON, # since the store is mocked self.request_socket.send(u'{"id": 1}'.encode('utf-8')) self.replay_context._req_rep_cycle() rep = self.request_socket.recv_multipart() print(rep) assert len(rep) == 1 and "error: 'No luck!'" == rep[0].decode('utf-8') class TestSqlStore(unittest.TestCase): def setUp(self): self.engine = create_engine('sqlite:///:memory:') self.store = SqlStore(self.engine) msgs = [ { "i": 0, "topic": "org.foo.bar", "msg_id": "11111111-1111-1111-1111-111111111111", "timestamp": 2, "seq_id": 1, "msg": {"foo": "bar"}, }, { "i": 1, "topic": "org.foo.bar", "msg_id": "22222222-2222-2222-2222-222222222222", "timestamp": 10, "seq_id": 2, "msg": {"foo": "baz"}, } ] session = self.store.session_class() for m in msgs: session.add(SqlMessage( seq_id=m['seq_id'], uuid=m['msg_id'], timestamp=datetime.fromtimestamp(m['timestamp']), topic=m['topic'], msg=json.dumps(m) )) session.commit() def test_add(self): orig_msg = { "i": 2, "topic": "org.foo.bar", "msg_id": "33333333-3333-3333-3333-333333333333", "timestamp": 20, "msg": {"foo": "foo"} } # make a copy to avoid squewing the comparison ret = self.store.add(dict(orig_msg)) orig_msg['seq_id'] = 3 self.assertDictEqual(ret, orig_msg) session = self.store.session_class() sql_msg = session.query(SqlMessage)\ .filter(SqlMessage.seq_id == 3).one() self.assertDictEqual(json.loads(sql_msg.msg), orig_msg) def test_get_seq_id(self): first = self.store.get({"seq_id": 1}) assert len(first) == 1 and first[0]['i'] == 0 def test_get_time(self): first, second = self.store.get({"time": [0, 15]}) assert ( (first['i'] == 0 and second['i'] == 1) or (first['i'] == 1 and second['i'] == 0)) @raises(ValueError) def test_get_wrong_seq_id(self): first = self.store.get({"seq_id": 18}) @raises(ValueError) def test_get_illformed_time(self): first, second = self.store.get({"time": [0, 15, 3]}) class ReplayThread(Thread): def __init__(self, context): self.stop = Event() self.context = context super(ReplayThread, self).__init__() def run(self): try: while not self.stop.is_set(): self.context._req_rep_cycle() finally: self.context.publisher.close() class TestGetReplay(unittest.TestCase): def setUp(self): self.config = load_config() self.config['name'] = local_name self.config['mute'] = True self.config['persistent_store'] = Mock() self.replay_context = ReplayContext(**self.config) self.replay_thread = ReplayThread(self.replay_context) self.context = zmq.Context() def tearDown(self): self.replay_thread.stop.set() @raises(IOError) def test_get_replay_no_available_endpoint(self): #self.replay_thread.start() msgs = list(get_replay( "phony", {"seq_ids": [1, 2]}, self.config, self.context )) @raises(ValueError) def test_get_replay_wrong_query(self): # We don't actually test with a wrong query, we just throw back an # error from the store. self.config['persistent_store'].get = Mock( side_effect=[ValueError("this is an error")]) self.replay_thread.start() msgs = list(get_replay( local_name, {"seq_ids": [1, 2]}, self.config, self.context )) def test_get_replay(self): # As before, the correctness of the query doesn't matter much # since it is taken care of on the server side. orig_msg = { "i": 2, "seq_id": 3, "topic": "org.foo.bar", "msg_id": "33333333-3333-3333-3333-333333333333", "timestamp": 20, "msg": {"foo": "foo"} } self.config['persistent_store'].get = Mock(side_effect=[[orig_msg]]) self.replay_thread.start() msgs = list(get_replay( local_name, {"seq_id": 3}, self.config, self.context )) assert len(msgs) == 1 self.assertDictEqual(msgs[0], orig_msg) fedmsg-0.9.3/fedmsg/tests/test_crypto_x509.py0000644000175000017500000001004512330204655023031 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # import os import shutil import six import nose.tools.nontrivial try: # For python-2.6, so we can do skipTest import unittest2 as unittest except ImportError: import unittest import fedmsg.crypto SEP = os.path.sep here = SEP.join(__file__.split(SEP)[:-1]) def skip_if_missing_libs(f): def _wrapper(self, *args, **kw): try: import M2Crypto import m2ext except ImportError as e: self.skipTest(six.text_type(e)) return f(self, *args, **kw) return nose.tools.nontrivial.make_decorator(f)(_wrapper) class TestCryptoX509(unittest.TestCase): def setUp(self): self.config = { # Normally this is /var/lib/puppet/ssl 'ssldir': SEP.join((here, 'test_certs/keys')), # Normally this is 'app01.stg.phx2.fedoraproject.org' 'certname': 'shell-app01.phx2.fedoraproject.org', 'ca_cert_cache': '/var/tmp/fedmsg-ca.crt', 'ca_cert_cache_expiry': 10000, 'crl_location': "http://threebean.org/fedmsg-tests/crl.pem", 'crl_cache': "/var/tmp/crl.pem", 'crl_cache_expiry': 10000, 'crypto_validate_backends': ['x509'], } # Need to reset this global fedmsg.crypto._validate_implementations = None shutil.copy( src=SEP.join([self.config['ssldir'], 'ca.crt']), dst=self.config['ca_cert_cache'], ) shutil.copy( src=SEP.join([self.config['ssldir'], 'crl.pem']), dst=self.config['crl_cache'], ) def tearDown(self): os.remove(self.config['ca_cert_cache']) os.remove(self.config['crl_cache']) self.config = None # Need to reset this global fedmsg.crypto._validate_implementations = None @skip_if_missing_libs def test_full_circle(self): """ Try to sign and validate a message. """ message = dict(msg='awesome') signed = fedmsg.crypto.sign(message, **self.config) assert fedmsg.crypto.validate(signed, **self.config) @skip_if_missing_libs def test_failed_validation(self): """ Try to fail validation. """ message = dict(msg='awesome') signed = fedmsg.crypto.sign(message, **self.config) # space aliens read data off the wire and inject incorrect data signed['msg'] = "eve wuz here" assert not fedmsg.crypto.validate(signed, **self.config) @skip_if_missing_libs def test_signed_by_true(self): """ Try to succeed at specific-signer validation. """ message = dict(topic='biz.bar', msg='awesome') signed = fedmsg.crypto.sign(message, **self.config) signer = "shell-app01.phx2.fedoraproject.org" res = fedmsg.crypto.validate_signed_by(signed, signer, **self.config) assert res @skip_if_missing_libs def test_signed_by_false(self): """ Try to fail at specific-signer validation. """ message = dict(topic='biz.bar', msg='awesome') signed = fedmsg.crypto.sign(message, **self.config) signer = "shell-app02.phx2.fedoraproject.org" res = fedmsg.crypto.validate_signed_by(signed, signer, **self.config) assert not res if __name__ == '__main__': unittest.main() fedmsg-0.9.3/fedmsg/tests/fedmsg-test-config.py0000644000175000017500000000657712330204655023371 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ Test config. """ import os import socket import random SEP = os.path.sep here = os.getcwd() hostname = socket.gethostname().split('.', 1)[0] ssl_enabled_for_tests = True try: import M2Crypto import m2ext except ImportError: ssl_enabled_for_tests = False # Pick random ports for the tests so travis-ci doesn't flip out. port = random.randint(4000, 20000) gpg_key_unittest = 'FBDA 92E4 338D FFD9 EB83 F8F6 3FBD B725 DA19 B4EC' gpg_key_main = 'FBDA 92E4 338D FFD9 EB83 F8F6 3FBD B725 DA19 B4EC' config = dict( topic_prefix="com.test_prefix", endpoints={ "unittest.%s" % hostname: [ "tcp://*:%i" % (port + 1), "tcp://*:%i" % (port + 2), ], "twisted.%s" % hostname: [ "tcp://*:%i" % (port + 3), ], "__main__.%s" % hostname: [ "tcp://*:%i" % (port + 4), "tcp://*:%i" % (port + 5), "tcp://*:%i" % (port + 6), "tcp://*:%i" % (port + 7), "tcp://*:%i" % (port + 8), "tcp://*:%i" % (port + 9), ], "unittest2.%s" % hostname: [ "tcp://*:%i" % (port + 10), "tcp://*:%i" % (port + 11), ], # Guarantee that we don't fall over with a bogus endpoint. "blah.%s": "tcp://www.flugle.horn:88", }, relay_inbound=["tcp://127.0.0.1:%i" % (port - 1)], replay_endpoints={ 'unittest.%s' % hostname: "tcp://127.0.0.1:%i" % (port + 1), 'unittest2.%s' % hostname: "tcp://127.0.0.1:%i" % (port + 2), }, persistent_store=None, environment="dev", high_water_mark=0, io_threads=1, irc=[], zmq_enabled=True, zmq_strict=False, zmq_reconnect_ivl=100, zmq_reconnect_ivl_max=1000, # SSL stuff. sign_messages=ssl_enabled_for_tests, validate_signatures=ssl_enabled_for_tests, ssldir=SEP.join([here, 'test_certs/keys']), crl_location="http://threebean.org/fedmsg-tests/crl.pem", crl_cache="/tmp/crl.pem", crl_cache_expiry=10, certnames={ "unittest.%s" % hostname: "shell-app01.phx2.fedoraproject.org", "unittest2.%s" % hostname: "shell-app01.phx2.fedoraproject.org", "__main__.%s" % hostname: "shell-app01.phx2.fedoraproject.org", # In prod/stg, map hostname to the name of the cert in ssldir. # Unfortunately, we can't use socket.getfqdn() #"app01.stg": "app01.stg.phx2.fedoraproject.org", }, gpg_keys={ "unittest.%s" % hostname: gpg_key_unittest, "unittest2.%s" % hostname: gpg_key_unittest, "__main__.%s" % hostname: gpg_key_main, } ) fedmsg-0.9.3/fedmsg/tests/__init__.py0000644000175000017500000000146612231547317021440 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # fedmsg-0.9.3/fedmsg/tests/common.py0000644000175000017500000000162012326044656021164 0ustar threebeanthreebean00000000000000import os import socket import fedmsg.config def load_config(name='fedmsg-test-config.py'): here = os.path.sep.join(__file__.split(os.path.sep)[:-1]) test_config = os.path.sep.join([here, name]) config = fedmsg.config.load_config( [], "awesome", filenames=[ test_config, ], invalidate_cache=True ) # Enable all of our test consumers so they can do their thing. config['test_consumer_enabled'] = True # TODO -- this appears everywhere and should be encapsulated in a func # Massage the fedmsg config into the moksha config. config['zmq_subscribe_endpoints'] = ','.join( ','.join(bunch) for bunch in config['endpoints'].values() ) hub_name = "twisted.%s" % socket.gethostname().split('.', 1)[0] config['zmq_publish_endpoints'] = ','.join( config['endpoints'][hub_name] ) return config fedmsg-0.9.3/fedmsg/tests/test_certs/0000755000175000017500000000000012371202100021456 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/tests/test_certs/build-and-sign-key0000755000175000017500000000032212231547317025005 0ustar threebeanthreebean00000000000000#!/bin/sh # Make a certificate/private key pair using a locally generated # root certificate. KEY_CN=$* KEY_NAME=$* export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --csr $* "$EASY_RSA/pkitool" --sign $* fedmsg-0.9.3/fedmsg/tests/test_certs/build-key-server0000755000175000017500000000040112231547317024611 0ustar threebeanthreebean00000000000000#!/bin/sh # Make a certificate/private key pair using a locally generated # root certificate. # # Explicitly set nsCertType to server using the "server" # extension in the openssl.cnf file. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --server $* fedmsg-0.9.3/fedmsg/tests/test_certs/keys/0000755000175000017500000000000012371202100022431 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app02.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032350 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmbWVkaWF3aWtpLWFwcDAyLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJm1lZGlhd2lraS1hcHAwMi5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAudJJDxGgaxT2xRDMnoM9jwMFINnZ X5mSDuN9Twh9Pfa5TLSNfWQVrbPeB6lkDqmbT8pHMqdXlSfTjRbzWMxrY6TZrduT qhxeSrQ5lN3SQ74mU4vvy4IRYYKLYdHDVB4XNyVvyKjRDqS2zOH7S0KINPYvPaH0 0/a38bW/LtMRf+8CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAITlywq2AcQE6rdh cuV7HqvxSi85DcpFnGY39Fg8h/mPz5m/KblgwkzB1kR4dLruzDSpK2P5sow+jL92 bkZ7UVwZuXENaLlDX49aO5xn0TutSNKpfHrC1xOVG7pemF2PgUpFXT2Ir60jAvAy dgfcNdzFye35reNg1FTLufhEOnSv -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000145212231547317031736 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICHTCCAYYCAQAwgdwxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEtMCsGA1UEAxMkZmFzLWZhczAxLnN0Zy5waHgyLmZlZG9yYXByb2plY3Qu b3JnMS0wKwYDVQQpEyRmYXMtZmFzMDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5v cmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0G CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDP5EUqGWnCSQ3pcvHpPBynxTTnmtKvQfTd OfaO3mNg5jL+M73Ax+O6y23VtqxQVI38LBaHaMLRwZLxtlUHd5/SMobMxdN2jsi6 5Wdp85gqPn5SOQ0pEw6FUw8zGx8zfz/q5qsDGLj+Xm/HLf8M3bBUuxyqu7UvfBsW XrwEnv0rAwIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEARLRXHBVNXbbrVO9YbnLV r6DfvQdslSbmTY/V1EzG3B99icceljTRyPZYNnR2obQrCDLN4XZSjttvzHW0aRgS lThoKiAHiHNFNb38qMCzy/N9fuGVHG0F/6r1RPqVdH+e8pdZmGQ/N7wuJnqPPrFL SJAlQgPv65GS835u7F+eMqE= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031502 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJPr/Xf+v1zXuNxK Zq6PmsIbosxI0SzTywF/GPzd17DYeC2iDsSPkybIpSACC3e/GDKvXrh7uCXZM/jO yHpvyHgMFwi3lvtRajTQNEogYjZ853np06uFWycJDqhQYOx+EHDYLBhq44JTvVti CFMrICogNAXvA2bzZyrlCory8phhAgMBAAECgYBhJY6c3QiOj/qPaqmPIS7xJjc/ 1N7TgvEDNZaSk5uRQEmFJrZuLyDkSsfvgohHh4/70aLypAYnjUONtziA+KL9/Mor WgMXGvlngTxnmWtw95pZctUBVkJrFcWuOPJUmlLfqyUwARWya8OScG/Z/scu+qtL csP9KgCMbwyxw/NAhQJBAMUyHwXpd0+SiJpbhnseKw4q83cCb93mTWFRKwLCwB0w FTXxM/5mH92J9+nU1u3+WFsEopITkUoVgsd426Af57cCQQDACE63dl9r+m3LzDWZ 0OYITR3HGeP7Una97UxNJQr0KMvkh/4xrfagA5Ef+zpwt2oWumHJWFmepnnWgn7H kRCnAkADe/08V4G6MDals5ROvJu6Jlwi8DIV06nuXEbMR7CpU14sk9R9XESX34Y3 5YDet63L/er5dcsNag/jgmkvDSFFAkB+wH0Ex9NwOFpknKP8pVBQxmYTV1mON/48 mvc0LHEwfAUpEUKNlCAnunL+Qxtt7wLNgbSt6+0rtQLSvkvkejIdAkEAmL3td1vl btZzxbDdV2MF7bY6jdnEdMEm34kdWNbDBaRmAX8vo7d+7DsuHJMzsA5Cy1eZw3rC +6FvKIchD0jUWg== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/ca.key0000644000175000017500000000162412231547317023552 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAPSekZhq9S80ieRW rtsHZFVIkuVlwXHdGzT8lCffxu7fUq8nJy5xCuBkIdgeduaeEgqr7B2bTPK6oov2 NjzxeT26YFYyS2LCZOEkr/OGh/lT2HGhLWJTwpV4B29yfY4AMYBwR5CTEO5r8YiG ru36yhapiRmZMTtjPkr/HiwiiyT/AgMBAAECgYAd0q9Be9jElo0xL3hF79LFqwFt wkghT6mffiO58MhaGxQDkqxuNw3yaYLOzHgGicL9VhSFT4fEGAj1M2FNcMstBGN0 Oi5u18SOQ3bUsPmXpLX7851ODPtz7r1NCv488d+04c318pSX9/YsClQRdBZg2jOA tqYK3gUfYz66YX098QJBAP4DhNjqRL6maWCq5Xx0g5LwteBj4gWGFlVF/lIYrgUr ssdjTYZdvOtMt20pGKbVg4codzl8fdViyvNNVHN7h/UCQQD2iD6Npcc+ZYYOD6/p cz1q24l2iscKdJn6qoIZLRAqSvxTYb0a2CZmHDKtevJZ65LLmgVPBV5kp3xyJeOI HMSjAkAXnKQgtcYmIrnw7nHem8YPRqjhbud3s/snehYl831ZpbI8rpJqRxRkmwEB +Kv99iL/0Vcj1Nqtlz1eWHXdNkJxAkBBy9z+CvehNJFRoWguox4KLeuDIsi6hqIt 32H3fCprTzYGvvgsePHOoMn5uO2DiDbWdhXioCkwLe8tu+T9B8iHAkEAgdeY/Lso bRJnUuiv+AR+asslTvKjzBYgFkwDbaOLqr7jPHTAP39TsXyYCxTP56Os+I13Qzg5 2PpmSgiv6wRhpw== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages01.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032507 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMEIJ5DsgElhnW0C KrsisU/WK/PPkJCROCtZppAvakGCTxUSThX8ifelV5ZwuOWBX9qLx6pbs4xhvukT 90PzaaIJGn1yJcVvKL63KR5H+Y5wNjbKDHXfPn3BugHRdsvutb/EkxM3sXntief4 +fVTk2jvbMqlba/Xw8qplElj1qfhAgMBAAECgYEAguPbqGqlxpx5WgxpG0G4B9HL NeTeOxkthD+jMQvlugv5QemKp1/50cH89Vb0GTOz4oZ72mmaAyvYf0V5mkr4qaW2 Iflb3m2j7csGIi/NkatFnJKrPPZvJgrDVmJgThBCkUKsElHLtqDN26A3VdCu3pjo tf7mVhAPUTOBjX2TZUECQQD/OQQ1TrR5IOlcT53Tm2hGunSio16DzPRTWwzgVItb kz9aUwuw1P6VjguV0094Uqoh4BVjSi+vI91eVLcKEOZJAkEAwZ6mtbfH9V22Jj/A yl1wEqP/cjzGuIHO3wZs6QfAHojR/bMAacCRmZ5W0DrrbDGvatgMDqFa34ToYBSY ylfU2QJAdLqJGDB1DmllEdlAIAYV/TNOIQyDL9jPbkhYbUl9q1Z/RTpyQGBKR/B9 j/rjf+6e7XtljNHjWUEYAArS5IGyMQJADO8mP9lpGDEMa/2ySVJ4nCYseFsrA0RY p3lsaRzFbsTBEmuUyXu9vj9fmUV2WKHxD/gixg9tXKUqSNDXbBz18QJAYQRLpVYB ejZ5ZdqcwEPifqyj3D84FP1/CvInsLlZww2PHTF0q/2IriNmOtZN0AIVLLF8ZoCC haUwPPKiFlPCEg== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032265 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmYm9kaGktYXBwMDEuc3RnLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJmJvZGhpLWFwcDAxLnN0Zy5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAq65z1ahZm1YPmpO6YWVKD7ccC8sB KO1JTJP4tRNVVqu1ljrmBesoAQZSP+6DRJLewpowZt9FLov0quBBeKaElFi4NVVE LzdG5rXBQAKrq7iQaqJhXU/TjTLKdTcTb+FUQta10HOma2XysnB2D+szDizAEmya tq0WR3RHM0eZCw8CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBADAaG3hgd5IjIe0B V4WTpEr+G0ERxHqM6zMT1gUS440DlRkf/pJ38CbkV5+9hEbUcK0Y72SukeFTe4na 7+Zq12YRZw91hdD40cMUy1gZfRGdKpOcy1Gqxc8ISsTm8AFh5AprmB/xx5wVus94 SEkPl14grNm3lYFQYQKWlYz64e/u -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app06.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031516 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKwzCuM82stqEskE 4DFhJV/Ysml62cr5s47Nb7Az+t3L76Y60mBpK2oE6YOOYxAfgfRYI4965MS5Etby QgTjcg0iBDMwdi30TPP8YlFJ64cp2JWJL65UXaSxFNeP72bfl9QgGyZfuOaESbeP sh+1Sfi6+K4kxeJa5DYPt4X6v/XjAgMBAAECgYBPLsl65KjXkNdCiHNvQXSmNkcU KeGsbFYc/Gq3Y6+f/f8dOT80BihogAnA7OCwsUxYx47Sk3hO3avEG3IwPUZb8eCh eN4+R+h0SurJrOBdNxxOQ8AIAW6aagqG7ZUvjjjmfYpYL1hIcioUoBls/cI6XuXc h3JiANNHTthVKPgqwQJBAOP3QBYwyu20H1s7h1XkkWYJ7DnQxNjkNjdGKwryARFK 3QciLLzaV8zSuWy4X4CIk2rrNuBC73pxwTbnOP23aE8CQQDBYCuhpZ+Xswbj5Qiu jmI7MpUxno6tXiXBMJgQIlLRA96lTMmTPCNjpoGMzb0E2e19/Zo4oMUuay8JETwx C2AtAkBqNdov/I+vbApn8TY+uH1dsyXSUghEnR79Zb3MHbCNo/mSx0NcwcXCcjNe ChDEy90TJX+twMHepH1G3TfaTcdVAkALVViZS7yzxmFT//tnR58IOym1U8am8Iqj 7PYsk+Zoq6Jj68EwqOimEX8sQm6elystJCzivsFvvAZwsJrngPQtAkEAzBmZ2USv +DzjxZtiBJax8oinxt3RmT8qD2i2NMbs3AFWxLBxIoSLB2TxfZ5cG729TTrANP/B XgNrNuGtzWMF2A== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/dummy-revoked.crt0000644000175000017500000000766112231547317025766 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 2 (0x2) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=dummy-revoked/name=dummy-revoked/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:af:fa:8b:29:48:86:3c:1e:66:01:5d:f9:50:97: 0b:3a:31:f6:16:00:ab:9a:61:b6:36:19:3e:e3:7a: 75:36:da:d6:c4:70:41:31:03:9d:17:9d:8d:5d:fa: c7:e6:06:2e:45:62:f0:82:72:10:98:a9:2b:2e:cb: fb:4e:7a:cc:50:e5:5c:50:57:01:0c:41:66:07:b7: 06:6f:e4:0b:13:dd:b3:ce:d2:8c:2c:d9:c3:1d:a4: 22:51:ab:cd:47:7f:5b:35:32:b0:6f:45:01:f5:da: 78:8d:f9:7b:6f:c1:81:f1:a6:40:49:6e:26:c1:d7: a8:bd:1e:fb:0c:60:11:df:8f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 2D:7E:F4:ED:38:1E:85:3B:D6:28:61:93:AE:D4:39:FC:44:21:72:ED X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 30:70:4e:0b:c2:3e:07:7f:a2:f7:cb:55:ac:a3:89:06:4f:cc: 47:ff:a5:fa:6b:4f:9d:58:2b:72:3f:db:72:6b:7a:2f:dc:82: 0f:a4:17:23:be:26:86:5e:3d:87:f6:1b:db:16:87:81:ae:08: c7:37:d7:0b:6b:7f:4f:b5:53:24:4d:0a:ab:53:1c:66:a7:92: c7:4a:8b:cd:8c:f0:c2:5f:78:d0:21:37:30:b7:02:e8:3d:03: 10:e0:c4:7d:c5:f9:da:7f:23:66:e6:92:80:3b:63:73:c2:9e: 90:89:c7:14:cc:6a:5c:b1:1b:df:ed:02:99:59:f2:6e:32:f4: d5:17 -----BEGIN CERTIFICATE----- MIIEHzCCA4igAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCBrjELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMRYwFAYDVQQDEw1kdW1teS1yZXZv a2VkMRYwFAYDVQQpEw1kdW1teS1yZXZva2VkMSYwJAYJKoZIhvcNAQkBFhdhZG1p bkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA r/qLKUiGPB5mAV35UJcLOjH2FgCrmmG2Nhk+43p1NtrWxHBBMQOdF52NXfrH5gYu RWLwgnIQmKkrLsv7TnrMUOVcUFcBDEFmB7cGb+QLE92zztKMLNnDHaQiUavNR39b NTKwb0UB9dp4jfl7b8GB8aZASW4mwdeovR77DGAR348CAwEAAaOCAVcwggFTMAkG A1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0 aWZpY2F0ZTAdBgNVHQ4EFgQULX707TgehTvWKGGTrtQ5/EQhcu0wgdUGA1UdIwSB zTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVT MQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3Jh IFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYD VQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qu b3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeA MA0GCSqGSIb3DQEBBQUAA4GBADBwTgvCPgd/ovfLVayjiQZPzEf/pfprT51YK3I/ 23Jrei/cgg+kFyO+JoZePYf2G9sWh4GuCMc31wtrf0+1UyRNCqtTHGanksdKi82M 8MJfeNAhNzC3Aug9AxDgxH3F+dp/I2bmkoA7Y3PCnpCJxxTMalyxG9/tAplZ8m4y 9NUX -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/28.pem0000644000175000017500000001004212231547317023403 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 40 (0x28) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fas-fas01.dev.phx2.fedoraproject.org/name=fas-fas01.dev.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:9a:89:37:49:5c:35:fd:f1:bf:3f:30:9b:a0:d5: 0e:39:b6:1b:d7:19:39:79:11:b1:26:d3:4e:9b:e2: ce:a4:10:c4:36:fd:13:d9:f5:e8:87:ac:c4:96:66: cc:c0:2b:4e:94:c1:64:1d:41:64:eb:3e:48:47:d8: 20:32:f5:6b:f7:75:15:fb:9a:2b:19:20:79:ea:36: cb:fe:04:ce:c3:dd:8f:bb:49:ae:04:81:f9:08:8a: 1a:a0:78:4e:bd:83:52:7d:44:28:72:3c:ba:a2:77: 28:be:f1:e6:87:33:fc:84:f1:f0:95:9f:02:6b:f1: b1:30:c1:f7:8a:7b:18:ba:b7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E1:72:E7:FD:75:0C:CE:D5:DF:B5:FF:AE:FF:52:B8:51:19:F4:7B:84 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 17:a3:c9:ac:f3:97:26:55:a5:9f:b6:1a:4f:e8:12:b8:a8:cc: b8:f3:3d:33:f7:ef:9b:ce:93:c3:fd:ff:b7:50:60:e6:24:03: 38:45:c6:2b:cc:c8:ab:a2:c2:e1:0e:67:d7:2a:d8:26:d7:90: 47:52:c0:cf:f7:a7:44:d4:ec:79:a3:cf:60:98:2e:07:34:1b: 40:57:36:e5:71:b8:6e:fc:ff:16:da:3e:3b:bc:fe:8d:55:22: 95:ff:b9:18:3a:57:6d:bf:28:9b:b3:19:8c:ae:38:74:6a:8c: f1:2e:e4:f5:8b:39:22:16:55:15:6e:f5:c3:cd:ab:e8:35:af: 8c:4b -----BEGIN CERTIFICATE----- MIIETTCCA7agAwIBAgIBKDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB3DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS0wKwYDVQQDEyRmYXMtZmFzMDEu ZGV2LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxLTArBgNVBCkTJGZhcy1mYXMwMS5k ZXYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5A ZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJqJ N0lcNf3xvz8wm6DVDjm2G9cZOXkRsSbTTpvizqQQxDb9E9n16IesxJZmzMArTpTB ZB1BZOs+SEfYIDL1a/d1FfuaKxkgeeo2y/4EzsPdj7tJrgSB+QiKGqB4Tr2DUn1E KHI8uqJ3KL7x5ocz/ITx8JWfAmvxsTDB94p7GLq3AgMBAAGjggFXMIIBUzAJBgNV HRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQgQ2VydGlm aWNhdGUwHQYDVR0OBBYEFOFy5/11DM7V37X/rv9SuFEZ9HuEMIHVBgNVHSMEgc0w gcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQGEwJVUzEL MAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZlZG9yYSBQ cm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEPMA0GA1UE KRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9y Z4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDAN BgkqhkiG9w0BAQUFAAOBgQAXo8ms85cmVaWfthpP6BK4qMy48z0z9++bzpPD/f+3 UGDmJAM4RcYrzMirosLhDmfXKtgm15BHUsDP96dE1Ox5o89gmC4HNBtAVzblcbhu /P8W2j47vP6NVSKV/7kYOldtvyibsxmMrjh0aozxLuT1izkiFlUVbvXDzavoNa+M Sw== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/20.pem0000644000175000017500000001005212231547317023374 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 32 (0x20) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app04.phx2.fedoraproject.org/name=mediawiki-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:eb:55:b8:4b:6f:d0:85:8e:b6:ce:92:e4:09:d0: 4a:d4:2b:e9:47:3a:b6:27:57:61:27:64:b4:71:46: 79:1e:04:33:54:23:72:59:48:e4:73:86:2b:68:33: 85:a9:3a:85:d2:9e:7a:1a:89:c9:a0:0c:1a:b9:ad: e3:25:b2:f1:17:1b:85:83:07:56:03:b2:e2:1a:32: fd:17:3f:90:c2:f9:1d:39:f7:22:5a:77:c3:61:35: a3:fe:64:9f:5b:a7:20:89:60:4c:70:51:af:34:c8: 01:f7:c9:ef:76:02:0d:7d:69:f5:9b:11:05:5f:89: 9c:4b:ff:d6:eb:e7:96:73:03 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 05:2F:27:1F:0B:FE:55:17:3A:FA:C7:59:E3:EF:2A:96:9A:EC:49:49 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption f3:50:1d:7d:e5:e3:71:04:fb:cd:42:29:71:20:95:36:04:d4: 45:f6:5e:14:4e:e8:f6:b9:8d:f1:53:82:a4:b8:28:a0:79:4d: db:3b:99:10:bc:50:c8:39:d7:b1:cd:49:c9:5f:9e:a4:f9:95: c4:41:68:5e:8b:65:d8:28:d1:81:cc:0c:57:ab:d8:95:3d:03: 17:b3:5a:25:12:a7:b7:65:ed:fe:ec:48:4b:b6:b3:f7:ae:48: 51:72:e0:55:45:8e:ef:ed:f7:50:73:f4:b4:ba:03:c9:be:68: 3d:3b:7e:44:3b:ab:d9:2d:e2:5a:54:bf:bd:af:de:ca:17:b2: b3:c8 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBIDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDQucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDA0LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDrVbhLb9CFjrbOkuQJ0ErUK+lHOrYnV2EnZLRxRnkeBDNUI3JZSORzhitoM4Wp OoXSnnoaicmgDBq5reMlsvEXG4WDB1YDsuIaMv0XP5DC+R059yJad8NhNaP+ZJ9b pyCJYExwUa80yAH3ye92Ag19afWbEQVfiZxL/9br55ZzAwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQFLycfC/5VFzr6x1nj7yqWmuxJSTCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEA81AdfeXjcQT7zUIpcSCVNgTURfZeFE7o9rmN 8VOCpLgooHlN2zuZELxQyDnXsc1JyV+epPmVxEFoXotl2CjRgcwMV6vYlT0DF7Na JRKnt2Xt/uxIS7az965IUXLgVUWO7+33UHP0tLoDyb5oPTt+RDur2S3iWlS/va/e yheys8g= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app02.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317033142 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMSxvtyclb+VWRvD 5+hrVYTbpelGlmzWUV6cjGLAsJiGTeIfVl3i2S1hAAY/uJ6HUNvJfNh+VgM1uVgH wqo41+q4ioehCfhME9MBjsMubsC2+G2i9nmxTINv+BGhsuJ1FbDKYXdPSxyluUDZ RopBANxgmT7N678xE3rmqDwGf4MjAgMBAAECgYEAqY3HR4k7lTD65XJVAQc1axek x5hvp1aAQhyU77PHB1QO4zO8UaZxLCsHyFs5nH5s92mS01TkdFPld7sI1Y+2nzwM lQKl3HsQQ1O6II5gDSKFD3C4cnvSxWWqCSK84IT0gew2JX2iUhtZOMcCb8TStWev PHor0KDOFS992Snb2ZECQQD73gl1L/PXV1RAMCbE9P93iN09tHSwR0+rrNyXF7kH JHyPPfsczR5A85PYuIPRcs0ODP7h3pveJwBedN+SSSg3AkEAx+v0otWpfxeDHVn8 1HzY+M7C0pNBBsKxbAqvSZoyCjyKPmtIaasCp5roSBeGKaaJqS+1JPlgkXkEaHLV tTvudQJBAMue4ziJbvIeGO/XvdAnXc1OqcZz+I526HMbSi8gr6aVmdnYOwY60gWi pllkOrV+wUZlvT3v0UVVdJfolsLWQBsCQGfgTegdpEgI63NgwmGVzRbaN5g6MttU ZeOBWbqgh8eR1TLBg4qD9Ikpj++FaYxSn8xsoW5otKhhfMzYffoA/dECQD+mJrTq X46F1NSEd+7nCV1zvBUOxNFDF72u7wEvFg+0kkO5opc/AktieJYjw7BS4VAw0rDe 3nNW0MWqjFc3l9g= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/19.pem0000644000175000017500000001002512231547317023404 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 25 (0x19) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app06.phx2.fedoraproject.org/name=bodhi-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:b5:fc:9a:da:08:04:27:9e:c8:11:f3:fb:a0:20: bb:41:2a:91:e2:a6:48:f7:27:ab:d8:f8:a1:cd:8b: b3:d6:1d:ce:8d:d3:7e:9d:71:4f:65:ce:7b:c1:b0: 49:8a:33:87:58:c7:1b:29:5c:2d:0e:d2:fb:9d:7a: 41:90:99:15:a7:3a:f7:6f:64:7a:a9:75:e7:27:33: f9:42:30:99:c5:64:c7:e3:9e:65:d2:f8:fa:33:b6: 71:39:64:b9:2b:e1:3e:51:71:37:ea:b3:a5:c1:25: 41:dc:8d:41:c0:4f:f8:07:0c:90:8a:d4:87:63:eb: 45:f6:a2:5c:e5:78:0c:59:ab Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 03:B9:F9:5C:00:5B:75:A4:26:CD:A7:4E:4B:B0:50:D7:BE:01:06:F8 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption be:8f:ec:83:41:35:69:9d:45:82:1b:c6:83:3f:b1:24:1a:1a: 1b:8a:ca:bf:35:95:42:62:08:d3:04:62:08:e2:ed:fe:d3:72: a6:12:0d:75:95:ec:ff:1d:1c:3e:77:cc:54:17:76:19:e5:06: 47:51:a7:83:11:49:ba:29:58:eb:31:b7:06:1c:d3:7b:42:71: 23:c0:40:27:90:1c:ed:62:58:ca:f4:76:2d:f4:40:f9:3d:0b: 64:71:17:53:a8:ab:13:40:f3:c7:61:2b:3b:b4:38:be:4d:1b: 69:60:17:16:d2:63:f5:b7:6d:01:15:99:02:d5:60:ae:6a:a4: 9e:e1 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBGTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw Ni5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwNi5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtfya2ggE J57IEfP7oCC7QSqR4qZI9yer2PihzYuz1h3OjdN+nXFPZc57wbBJijOHWMcbKVwt DtL7nXpBkJkVpzr3b2R6qXXnJzP5QjCZxWTH455l0vj6M7ZxOWS5K+E+UXE36rOl wSVB3I1BwE/4BwyQitSHY+tF9qJc5XgMWasCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUA7n5XABbdaQmzadOS7BQ174BBvgwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAL6P7INBNWmdRYIbxoM/sSQaGhuKyr81lUJiCNMEYgji7f7T cqYSDXWV7P8dHD53zFQXdhnlBkdRp4MRSbopWOsxtwYc03tCcSPAQCeQHO1iWMr0 di30QPk9C2RxF1OoqxNA88dhKzu0OL5NG2lgFxbSY/W3bQEVmQLVYK5qpJ7h -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/crl.pem0000644000175000017500000000107012231547317023733 0ustar threebeanthreebean00000000000000-----BEGIN X509 CRL----- MIIBfDCB5jANBgkqhkiG9w0BAQQFADCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgT Ak5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEP MA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1z ZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcXDTEyMDcx NTIxMTg1MloXDTEyMDgxNDIxMTg1MlowFDASAgECFw0xMjA3MTUyMTE4NTJaMA0G CSqGSIb3DQEBBAUAA4GBAGP/pXsMWD0AhgUs01qkscO/DU6QarFWAMqTjbrL5V4e eEvyGOBDkOKgPsRKHF7x3ahLb14BGFTxCH0PosJsXUNQ8aSr24xlNDZ7O333PG1q BfB1UONpQ0Gt0w/vEu+YUK53MXMEd8mkN3AG6ckqk2puVTlM8+c5RzMIauftWfKQ -----END X509 CRL----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/13.pem0000644000175000017500000001006012231547317023375 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 19 (0x13) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-pkgs01.stg.phx2.fedoraproject.org/name=shell-pkgs01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:db:13:2d:35:7c:1d:8f:c3:72:ee:16:a9:26:a4: 62:7d:f6:88:48:66:cb:f9:0b:18:e6:a2:20:10:ba: 57:2d:0a:30:b8:01:b0:15:10:1c:14:dc:6e:2c:a1: 02:b1:1d:d7:d7:e6:1a:ed:6a:e8:b5:f0:01:04:8b: f6:fc:2d:bc:f6:29:44:16:8a:c8:b4:10:64:ad:19: 9a:93:c8:82:68:05:06:a9:3a:76:f4:e8:88:d1:5a: 68:dd:83:13:6f:d9:a0:cc:a1:c3:40:13:e6:18:b9: e3:d3:a2:e4:ec:69:80:30:46:65:3e:e7:3c:57:c4: 34:c3:99:7a:0b:73:15:e7:5b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 4A:A6:F7:EE:01:81:BB:57:3C:1C:A6:2C:EE:4E:FE:B0:44:58:12:91 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption df:3c:0d:60:4d:56:a2:27:be:69:5e:47:99:23:05:15:ec:e1: 22:0b:8b:00:95:06:f8:01:24:f9:e9:2c:7f:58:35:8d:8f:37: 93:f9:e8:e9:6f:cd:5c:d3:26:89:88:99:2c:95:a5:56:40:e5: ae:66:f5:3e:55:4e:d5:f0:a6:03:10:ec:83:33:05:e0:0c:b1: c3:5a:8e:bd:4e:64:6c:c3:75:bf:7b:21:1e:cf:68:32:83:85: 35:89:83:68:f8:00:ca:6c:e7:ad:b2:23:49:12:20:80:22:ff: ec:0e:fa:7b:4e:0b:5c:ad:de:18:88:8e:41:f8:e5:da:5b:c6: 27:94 -----BEGIN CERTIFICATE----- MIIEUzCCA7ygAwIBAgIBEzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTAwLgYDVQQDEydzaGVsbC1wa2dz MDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMDAuBgNVBCkTJ3NoZWxsLXBr Z3MwMS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYX YWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBANsTLTV8HY/Dcu4WqSakYn32iEhmy/kLGOaiIBC6Vy0KMLgBsBUQHBTcbiyh ArEd19fmGu1q6LXwAQSL9vwtvPYpRBaKyLQQZK0ZmpPIgmgFBqk6dvToiNFaaN2D E2/ZoMyhw0AT5hi549Oi5OxpgDBGZT7nPFfENMOZegtzFedbAgMBAAGjggFXMIIB UzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQg Q2VydGlmaWNhdGUwHQYDVR0OBBYEFEqm9+4BgbtXPBymLO5O/rBEWBKRMIHVBgNV HSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQG EwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZl ZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEP MA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9q ZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQE AwIHgDANBgkqhkiG9w0BAQUFAAOBgQDfPA1gTVaiJ75pXkeZIwUV7OEiC4sAlQb4 AST56Sx/WDWNjzeT+ejpb81c0yaJiJkslaVWQOWuZvU+VU7V8KYDEOyDMwXgDLHD Wo69TmRsw3W/eyEez2gyg4U1iYNo+ADKbOetsiNJEiCAIv/sDvp7Tgtcrd4YiI5B +OXaW8YnlA== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000147612231547317033307 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICKzCCAZQCAQAwgeoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzE0MDIGA1UEAxMrc2hlbGwtcGFja2FnZXMwMS5zdGcucGh4Mi5mZWRvcmFw cm9qZWN0Lm9yZzE0MDIGA1UEKRMrc2hlbGwtcGFja2FnZXMwMS5zdGcucGh4Mi5m ZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJv amVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANpkZKVJh0Nk/0Pc iISXP0RK1+HcMpL84U2oqzU5GT/UpxwgX5x81i9YM0Kuv26PKsLaX5PkHOuI6bZT QIMGtPrc662Zbht7DSDQ8urd8y7dGlF4ii4r8xpDxPWMRBItLB49H3Q3W295Tk/8 /iMAJqnMka2B8GqwRbCjcDG0Xu7DAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQBx 5ChA+DHhwpPliDRziVlajCSCPYOfr8cWKsr0fQqkvHxcgtGZNBQTLmVBnpvrIkOL i258yjGwYUSWd3UB6rqWBZryf1goD5ycV3QzjiRkqt53IktIQ2jfH4BFyS4GfwhC hl9egtYDJ7MT27hCieAVhnZVx2iPQN3SP7CtStSTsw== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/1C.pem0000644000175000017500000001005212231547317023416 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 28 (0x1c) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app02.stg.phx2.fedoraproject.org/name=bodhi-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c4:65:3f:d8:8c:e8:35:dd:f0:08:56:7d:6e:36: cd:91:39:80:77:7c:00:64:5e:0b:c3:83:81:04:4e: 12:8f:dd:97:54:0e:dc:25:cd:55:9f:cc:b3:64:02: 75:10:c9:0a:b9:a0:f5:f6:b3:b6:a0:c4:de:26:20: e7:7e:e2:92:c2:94:a9:25:5f:a2:71:9d:fc:04:41: 39:e0:75:a5:07:ee:01:21:b2:4a:ee:aa:99:1c:be: f4:31:d2:30:bf:ba:0b:23:a9:9e:54:03:9d:35:c2: c9:6c:15:3f:89:37:92:72:4a:d8:87:e5:eb:45:55: 94:96:fa:c4:1d:9f:b1:f9:2f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 52:1F:96:23:E1:BA:58:03:AC:D0:F7:32:CA:BF:03:4D:4F:4B:88:02 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption ac:5c:0b:f5:5b:bb:df:ed:fc:7a:bf:79:4b:9f:37:b5:77:7e: 99:6e:54:cf:1c:62:8e:fa:71:e0:0a:c3:80:05:54:6d:b2:b0: 38:f3:17:bd:10:73:05:1d:5c:1e:1e:24:c8:cf:50:a6:5e:1f: b1:dd:53:fa:92:ba:26:af:61:3f:a0:7a:a1:d8:7d:73:24:43: ad:a5:f0:df:e7:85:84:27:60:85:0c:d8:8c:44:7b:85:07:6a: a3:2e:01:9c:61:57:e6:50:fe:74:26:78:14:00:ed:1f:2c:d9: 73:7b:4e:a0:f7:95:b4:5b:c7:bb:af:e0:cd:72:4c:c1:a9:e9: 34:92 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBHDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZib2RoaS1hcHAw Mi5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmYm9kaGktYXBw MDIuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDEZT/YjOg13fAIVn1uNs2ROYB3fABkXgvDg4EEThKP3ZdUDtwlzVWfzLNkAnUQ yQq5oPX2s7agxN4mIOd+4pLClKklX6JxnfwEQTngdaUH7gEhskruqpkcvvQx0jC/ ugsjqZ5UA501wslsFT+JN5JyStiH5etFVZSW+sQdn7H5LwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBRSH5Yj4bpYA6zQ9zLKvwNNT0uIAjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEArFwL9Vu73+38er95S583tXd+mW5Uzxxijvpx 4ArDgAVUbbKwOPMXvRBzBR1cHh4kyM9Qpl4fsd1T+pK6Jq9hP6B6odh9cyRDraXw 3+eFhCdghQzYjER7hQdqoy4BnGFX5lD+dCZ4FADtHyzZc3tOoPeVtFvHu6/gzXJM wanpNJI= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/server.csr0000644000175000017500000000133112231547317024467 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIIB4TCCAUoCAQAwgaAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG 9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUA A4GNADCBiQKBgQCxolzXEGqDpB1lZlGA9XItFa93kq0drYDYyOLuzxA7BwIeTxjE R9aCjVP/whtySf5i/mgm8JGP1+CeuEaW7+9LB/QhEAnZkJKmJTopyrboaQbfuqdz sXHDbBzTfdb/Os4Vt7x7/Gxr1m+n/eAoWQdJv2acPh9fuIXEYVH5ZwBApwIDAQAB oAAwDQYJKoZIhvcNAQEFBQADgYEAX8P9MUVTGBnokVx/24SX/uPQj8sBqNyMzaTo 1mbCqpOKKMbb0T2K6DBi83bjn/t1SwrrbVc5Pqq/phKk0K7VhZoSeo0K5yNXOdPX x/b2+co9jjGwpT+5K95nuEGyA6pHCfKQf6Q3Dnnmy1HcZu7bsOD22y9N0sjCHnD/ c/+cWmw= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/index.txt.attr0000644000175000017500000000002512231547317025270 0ustar threebeanthreebean00000000000000unique_subject = yes fedmsg-0.9.3/fedmsg/tests/test_certs/keys/03.pem0000644000175000017500000001002312231547317023373 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 3 (0x3) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app01.phx2.fedoraproject.org/name=shell-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c9:5d:32:76:f9:e8:a4:84:e6:16:cd:24:7e:99: 68:2a:3e:a7:5b:4f:c2:3b:3a:74:ac:3c:30:be:e5: 99:17:62:83:76:5d:40:79:15:b3:7e:ca:4e:40:e5: 88:2b:95:7e:a3:6a:b1:60:0e:ad:6a:22:b8:6c:f7: f2:95:82:f5:20:62:30:95:53:fd:99:ae:73:c2:44: 6f:5a:47:ad:5a:31:8e:46:9e:41:ee:0e:e8:10:24: 0e:06:8d:e0:9d:0b:74:51:fe:53:58:04:35:e9:69: f4:6c:2a:c8:41:2a:8e:59:52:92:70:af:6f:52:4f: e8:a2:65:25:01:96:e4:b0:47 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 77:71:57:05:B0:F6:25:6D:EA:72:6A:BE:E5:53:FB:19:CB:B1:1C:5E X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 11:b5:cc:6f:e5:cd:8c:b3:fe:98:61:44:ea:ba:9f:39:37:41: 45:5e:34:6c:b1:15:dc:71:a0:1e:7b:8f:8c:43:8b:ad:32:cf: 2d:b2:01:87:bd:b3:0a:a5:2f:51:a4:f6:38:c0:e3:f6:5f:fe: 52:cf:17:13:8c:f8:d8:a7:4c:e8:7f:a3:ac:f4:6c:40:41:0a: e7:f0:14:a8:92:fa:e8:3f:a6:3b:08:a3:af:6f:0b:4d:c5:db: 54:b4:a6:ab:8c:f1:b4:23:71:da:00:e6:ae:69:76:26:3f:06: ae:47:50:b9:a8:b3:20:3e:10:db:ba:f6:8b:d0:19:96:54:88: 96:ff -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw MS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwMS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyV0ydvno pITmFs0kfploKj6nW0/COzp0rDwwvuWZF2KDdl1AeRWzfspOQOWIK5V+o2qxYA6t aiK4bPfylYL1IGIwlVP9ma5zwkRvWketWjGORp5B7g7oECQOBo3gnQt0Uf5TWAQ1 6Wn0bCrIQSqOWVKScK9vUk/oomUlAZbksEcCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUd3FXBbD2JW3qcmq+5VP7GcuxHF4wgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBABG1zG/lzYyz/phhROq6nzk3QUVeNGyxFdxxoB57j4xDi60y zy2yAYe9swqlL1Gk9jjA4/Zf/lLPFxOM+NinTOh/o6z0bEBBCufwFKiS+ug/pjsI o69vC03F21S0pquM8bQjcdoA5q5pdiY/Bq5HULmosyA+ENu69ovQGZZUiJb/ -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/serial0000644000175000017500000000000312231547317023645 0ustar threebeanthreebean000000000000002E fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-pkgs01.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031675 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANU3+9SKpTBAESXr ZrqNVTFoo+Aad9vHN6OERO2TP9Qyi1mh+4tkby9U9mmq+rCI/7u1HUsYpxvsVMLQ VqXaeEsXEzuLk/N83z0WIcSQfh1r7xMxvkFOIaeXnCt7mzJ+YkRfWawxdBK61c8U DVhCGkm5xipT6Id3Ej4u6uNNQP+LAgMBAAECgYA9QiljJjZRh4alu103adW5LVQv 1crr5O+yVhUroKus/pyUsvo/USq0kZd+QnZl8+Ztepqg8cNJPXwYwJy0Z/E5MxNz vEuafki2hs3lax5UpUT+fTcOlVvzKJFFchqhQCA+kISRzWtpmKpbtZhj6Ec7tyfS RdygSbI4a0/x0C0ZGQJBAPwjAEROoXx1XEVitVaTnPp7IhS/BqpyUH/dU9YNqXzO TqsOHeBkBaPUUBHpjXBmLEX53kJBRBGMr8NVvP7CWyUCQQDYfFPq+efpxfr7FCP5 Pjc/Wzo+WrFCXumcPyllBmY0HxCunDQNeUxFB3IzlliCEdGwmxnPBUAu+yWg1Vk1 ZcjvAkEAy8zK0WuxUfVW8Oq5YtKMJ1bSFGzXyXv/H2tZ8YI3hh8ILXGKqq6OdH8P fXsHjVu425L9mRZCG+FYzI4H5vBYVQJAbOKjxsUpi2CD6zNnIJ7VZO16rxAopgxd DbSLGoAMedzCJED2wWwoG3QyUZYmME3MHTr10TV/4eF6PJnyg7QNSwJAL7+6DztY DwD1sL8TXrmzqJhfNFAsUwntuz0TeqIe/1tJdgT4RAv46OEUITkTGALogIBalQV0 09LpbNSdjFz86A== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app03.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031514 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMic2hlbGwtYXBwMDMucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMic2hlbGwtYXBwMDMucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBALw2qSUElmrrgF7jnaVFoFaIUUxhv4l62FCKdlEf uxG535PpvGOnCuua3nDylxN0baz+t6E9I6G35+QBWfRq3tFYqg/JGzkXWuTDKOQa 1z5gDU2qE7hSOn3YyTGVRar0E8Hh9fYwkYclbYRpiMF0aYta8m8WLL/VvkoYKVTF p/uDAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQC6e4B9bnDoN3wyPpiOJWroQK+V VdK/A3qm0ZYbKEgeyFoIDcCktFvMfBBcQFhSkjckj74t0XkjKWpY1ZxVy5Fqo3Gf eX/8K8GPlgMg69ZQJYkr5vzvQYfMldxuK8r5aifrLfcd2D7d4JsxHSrZQmtGopZ1 7d5mrZ5s2KO1BCd9CQ== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/2C.pem0000644000175000017500000001002312231547317023415 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 44 (0x2c) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=scm-pkgs01.phx2.fedoraproject.org/name=scm-pkgs01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:e0:3a:03:28:47:ce:e4:cc:da:67:55:cd:e4:b4: 93:43:69:a8:d5:6e:06:a1:7f:a5:e1:56:40:ef:84: 9d:62:ab:e4:0c:d0:01:ec:c1:60:66:55:ba:12:28: 74:92:82:62:28:cb:11:7b:56:38:7e:fe:91:75:06: e7:4e:56:c4:1c:01:cf:25:2c:54:cf:68:5a:c9:02: 6b:10:46:79:65:30:1d:76:e1:5d:e1:79:6b:7b:ef: dd:09:d8:c1:8a:0d:10:f8:7d:2d:e9:0b:bc:67:a7: 25:55:ad:f0:3c:6f:09:61:a1:b9:e8:29:4a:65:d1: f4:ac:80:45:d7:39:2b:8b:cf Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 1E:CA:5C:34:1E:F1:2E:A1:94:37:14:01:10:43:9A:17:DF:38:7C:01 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 29:b1:60:50:bc:5f:cc:3c:11:a1:c5:64:eb:e1:df:59:c7:fc: ba:dd:37:9c:51:0e:c8:0c:b6:ce:52:37:6a:f5:8b:9b:cd:36: 1a:84:ad:65:64:dd:32:24:f9:f1:91:c9:63:76:f5:ee:52:19: 3f:af:44:a2:c4:3c:69:2e:20:31:85:97:81:ae:71:b9:f5:e2: 46:82:71:8d:4d:f4:20:6e:8f:6c:5b:04:2e:74:b4:24:1e:c2: 62:d9:7d:b5:14:cd:0f:b8:3d:af:be:49:b9:6d:67:25:0b:06: 63:dd:9e:de:16:e8:9e:99:0e:8f:38:0e:6b:2d:1d:11:46:e5: c2:2a -----BEGIN CERTIFICATE----- MIIERzCCA7CgAwIBAgIBLDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB1jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSowKAYDVQQDEyFzY20tcGtnczAx LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxKjAoBgNVBCkTIXNjbS1wa2dzMDEucGh4 Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3Jh cHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOA6AyhHzuTM 2mdVzeS0k0NpqNVuBqF/peFWQO+EnWKr5AzQAezBYGZVuhIodJKCYijLEXtWOH7+ kXUG505WxBwBzyUsVM9oWskCaxBGeWUwHXbhXeF5a3vv3QnYwYoNEPh9LekLvGen JVWt8DxvCWGhuegpSmXR9KyARdc5K4vPAgMBAAGjggFXMIIBUzAJBgNVHRMEAjAA MC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUw HQYDVR0OBBYEFB7KXDQe8S6hlDcUARBDmhffOHwBMIHVBgNVHSMEgc0wgcqAFACY pdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQGEwJVUzELMAkGA1UE CBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZlZG9yYSBQcm9qZWN0 MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEPMA0GA1UEKRMGZmVk bXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZ4IJAI7r KNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDANBgkqhkiG 9w0BAQUFAAOBgQApsWBQvF/MPBGhxWTr4d9Zx/y63TecUQ7IDLbOUjdq9YubzTYa hK1lZN0yJPnxkcljdvXuUhk/r0SixDxpLiAxhZeBrnG59eJGgnGNTfQgbo9sWwQu dLQkHsJi2X21FM0PuD2vvkm5bWclCwZj3Z7eFuiemQ6POA5rLR0RRuXCKg== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app02.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031513 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMic2hlbGwtYXBwMDIucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMic2hlbGwtYXBwMDIucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAKygPPjl99dThxFEJvvm49LrzH2nhr0puajkb7/p pE+q1T8BT5C3G6KhrQtDSJAka0Izr66cT2qpmLblXQ2ZyN/XPowCqrVa0jgrWpcA wrfnhewMYR3QaT6zvGn0Edd+ZUe0CDZRDo+skZw4gTqxLPnZH0oSKkad4zuhxDC8 V82/AgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQB5wEv26nfAHPvQ+Mv4DJOX68GL fBO3xGNGCInX15AAwTuVHLC/kPBcEBszlNwj1X3S+zOVW60dOqSzgYvViAmMEnZW Jxzge9X6F8X4i5RViAEsE5NELSG/33xgJO0VqfroZDhylmRO97FL+vnPfmEmoAN8 5CmNy7fet0OC+uOrCw== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/serial.old0000644000175000017500000000000312231547317024422 0ustar threebeanthreebean000000000000002D fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.phx2.fedoraproject.org.key0000644000175000017500000000162012231547317031140 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJ2nNzQKombAqMlA d1jUQaGriLfldYfFfSzTcV3ubwwRH1E7jC6gslTkAUqg0AjDexgGKhr1n0pHWyyP 1YPx2IckgmE3soeBeCN5t59eIjp1EaNp5pTAMwNT0XFFXk7KzJWmkpN8rmrmiXHB eGcNxu9BtMhXqzGCgLVSFdazKT+ZAgMBAAECgYBv882sxBx9UTTK7V+TEe+ladVF mclzZ9ezHFe191qePA58NggfGHhq9hrArx/sCT0BW2dNC71ZFwD0zRM3hmdWu1Br IissOP4lKflGoiWb4YAhQsBieAUbd0LVhuMgRkUNyBuIa1H3ycGjU/dnYGL7Do4K i6KJVGV8cCnZ7q8PPQJBAMkBn0Y4JEInqglGUnKJPGI0vEC/uElAagbQMruRiOTi Gc5GdacnodbWWLShtGABGthd3A47I+U0jay+S8yJTh8CQQDIySljK/HU6Tw1p0xR gkkBJRc+WouOpEr0+BCPFomRrlO/vBToO4MqJoJGw180tFtb1xLe+bn5yGbJGc// nstHAkAE2iMsIMLPTgHOw4HN/f4VKMy6i2Y5bnKgw3nWCUdSrxqMXisM4+oGM5pk kdq2zpAFVQ6w0UCmkcQxvU47G71lAkBDjsPZNXkKHWv/1YmtRzwPIY6/kTGxzf/W ivzvWDLzjIdrVPpn5VZNwWVGMAiBsEmpDiWwVrBHpjFHauL8bE6TAkBp8rO6ON2+ 59W2l+K5xZrKaNL+cIJYWR8HknvK9ZW/7RheMiqBv9I7LhsaxtQXUVmv29qJY9kc U900p0z9bgOR -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app01.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031511 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMldMnb56KSE5hbN JH6ZaCo+p1tPwjs6dKw8ML7lmRdig3ZdQHkVs37KTkDliCuVfqNqsWAOrWoiuGz3 8pWC9SBiMJVT/Zmuc8JEb1pHrVoxjkaeQe4O6BAkDgaN4J0LdFH+U1gENelp9Gwq yEEqjllSknCvb1JP6KJlJQGW5LBHAgMBAAECgYBN9+gyaVHLYio1aflXi87pjJkA okFy7Y9/oU6+m+hLRbnhevob6Gs4DN2AA2BWf+wpGobTytsa3ZbLmrYzbiG7WHWa tyjoNdJTI1jc7V0XQxReWzKgoq9RvlsEqRMGSkLYb151wvW6Kz6XLX2OTmEuoW9d 4925jnwYuqWKCHzyAQJBAOQppDAl/V4yVpuuBi0vYK01l+IMWNPi1fBa+PUj8/If 0SSvhUwkoG9BpnPYU/XPHNEb0rhj1KxF3Gp0bYyIP/kCQQDh7olibwWRMs2US9FL 8dJ0Fn0vm/Xc6t9ZqfvMy62lWAb2I+7KWkW9weuvoDs1jypmsGjT5rb6lH8NG7V5 BQI/AkA85Mw4OXtkr4Sj6g8l8hYYRExz/R2b91dn3a/CJUVPIqS76MhnqQLUjq3x DxRhb1RejtFvet1g2QhZtRcjwZ1pAkEAmDWT6PTS01demKHbh0aLehoMjJ6NrR+v CUEzmm09tz7usbTTkw/uHEEg/1j7isHA1x3SAbBVZcvVLIeWYsm1EQJBANDXO4Mo JHU2YQBmwa4buIlxGSIrXZiQVcCmDKIPa1NKRGDTtjaOknHICdm6SkugXD8NJs2d 7ln645eIMThsIec= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app03.phx2.fedoraproject.org.crt0000644000175000017500000001002512231547317031464 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 22 (0x16) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app03.phx2.fedoraproject.org/name=bodhi-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d5:e6:d7:7e:b7:28:5a:b7:95:b9:9f:b8:a2:70: 67:03:18:41:ed:2d:eb:0c:63:1d:d2:13:3f:26:7b: 25:b8:44:20:4c:57:0f:8f:c6:9e:ca:ac:fa:8f:e3: 98:ec:74:2a:42:51:73:88:e3:47:6e:b2:4a:e0:64: a0:69:06:b9:3c:d3:c5:7a:bb:14:c1:42:3d:93:68: 55:84:b4:55:c1:fb:dd:e9:60:22:08:39:30:1d:14: 07:01:30:25:71:80:ab:85:9b:88:0a:86:0f:09:01: 0e:54:b4:09:90:47:44:8b:ef:2d:ca:58:65:f7:eb: 62:0f:ac:29:37:67:e1:5f:17 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A1:41:27:47:9A:DA:D7:92:A1:10:AB:68:5B:5B:90:9F:6A:8C:8A:D1 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 61:80:ed:85:75:7a:87:8e:62:f8:37:8c:68:58:1f:bb:02:67: de:bc:b5:1b:fe:88:b6:18:12:97:eb:17:91:10:10:83:07:4b: 6d:52:87:dd:6f:64:dd:a9:c0:49:15:35:e9:e5:d4:6d:be:2b: f5:3b:4a:a4:e0:af:16:04:e7:2a:fe:66:e5:81:1a:95:3e:76: 24:8e:35:6d:73:a3:6c:b7:c0:74:dd:04:02:53:81:cc:94:c3: 03:0a:c7:ad:eb:d0:97:91:ab:08:83:85:7f:d3:ee:f1:d5:19: 4b:f1:14:2f:56:d4:f5:5d:96:33:87:19:ab:7b:09:f1:1b:33: c0:58 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBFjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw My5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwMy5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1ebXfrco WreVuZ+4onBnAxhB7S3rDGMd0hM/JnsluEQgTFcPj8aeyqz6j+OY7HQqQlFziONH brJK4GSgaQa5PNPFersUwUI9k2hVhLRVwfvd6WAiCDkwHRQHATAlcYCrhZuICoYP CQEOVLQJkEdEi+8tylhl9+tiD6wpN2fhXxcCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUoUEnR5ra15KhEKtoW1uQn2qMitEwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAGGA7YV1eoeOYvg3jGhYH7sCZ968tRv+iLYYEpfrF5EQEIMH S21Sh91vZN2pwEkVNenl1G2+K/U7SqTgrxYE5yr+ZuWBGpU+diSONW1zo2y3wHTd BAJTgcyUwwMKx63r0JeRqwiDhX/T7vHVGUvxFC9W1PVdljOHGat7CfEbM8BY -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/14.pem0000644000175000017500000001002512231547317023377 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 20 (0x14) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app01.phx2.fedoraproject.org/name=bodhi-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d6:22:73:4e:ac:e4:76:94:5d:d5:91:86:1c:5b: 36:1b:39:34:0f:c7:4b:12:c8:43:97:30:b5:e3:cd: 72:d5:9a:d0:db:0a:3a:fb:e1:92:32:18:0a:e6:90: f4:b3:fe:f0:a5:d0:54:81:dc:60:14:e2:22:39:28: 8f:34:65:72:72:ad:08:dc:e4:47:23:02:4c:de:02: f5:f2:44:17:3c:b8:64:44:cf:94:e3:f6:1a:08:27: 6f:a5:45:0a:2c:64:45:d6:cf:0e:83:67:44:b0:f8: ad:fc:12:4b:27:9c:85:f3:45:b5:1a:b3:aa:eb:66: 2b:a1:af:21:81:86:f3:df:09 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 93:78:BE:E2:F2:D6:18:DF:CE:6A:CF:8F:FD:86:9E:8D:7A:3C:10:55 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 3a:8f:ed:20:63:0b:b3:9c:a7:77:dd:28:71:09:29:45:2f:03: ec:c2:83:6a:23:61:a4:24:54:67:14:31:16:bf:69:14:af:7c: 1d:91:22:f1:1b:13:f7:da:90:05:bb:2d:d1:11:17:52:99:ae: e9:e0:30:08:9f:d1:51:5c:a9:45:7d:1c:34:97:cf:98:8b:ae: 71:03:87:b2:b3:f3:45:a6:ec:26:4b:b6:92:64:1f:2a:36:5f: 46:8f:89:61:d5:34:91:64:fe:98:86:19:ef:98:62:1d:6f:10: 4d:96:95:a0:cf:cc:57:43:e4:07:1f:ff:b2:81:90:43:20:a6: 9b:19 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBFDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw MS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwMS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1iJzTqzk dpRd1ZGGHFs2Gzk0D8dLEshDlzC1481y1ZrQ2wo6++GSMhgK5pD0s/7wpdBUgdxg FOIiOSiPNGVycq0I3ORHIwJM3gL18kQXPLhkRM+U4/YaCCdvpUUKLGRF1s8Og2dE sPit/BJLJ5yF80W1GrOq62Yroa8hgYbz3wkCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUk3i+4vLWGN/Oas+P/YaejXo8EFUwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBADqP7SBjC7Ocp3fdKHEJKUUvA+zCg2ojYaQkVGcUMRa/aRSv fB2RIvEbE/fakAW7LdERF1KZrungMAif0VFcqUV9HDSXz5iLrnEDh7Kz80Wm7CZL tpJkHyo2X0aPiWHVNJFk/piGGe+YYh1vEE2WlaDPzFdD5Acf/7KBkEMgppsZ -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app03.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032351 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmbWVkaWF3aWtpLWFwcDAzLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJm1lZGlhd2lraS1hcHAwMy5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzG5rGudi/oAaT6OzYApsCNGGlxDL MW/sJtj39zM8DWzNZj25+m1gAFRbPQz7ow/Fb2ZKT8cgKPMFDrh9yinHAMgXF344 a3UAczRUqV2syBT3wEXYFPmHjGi6YvW/yUd0U0wJgbL1g0pci/uQbifixdrgQ50j rV95QAnZ6oVccq8CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAInV42VC82lM7K2S c2XocSH5zxoz0dZdHjFM3NttJicK9Ya9OyRgAVr4bdA2eF9g7nJA+9hKbGNeRlBy on/WjIXcxMKzWChRK48aDrJvhDZXp/KtV/IK4gh9EObQfQbpgEGvDLufm7JudIUL LOhV6qNnWDovHVA75u2k5GIFsFMh -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app04.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032350 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOtVuEtv0IWOts6S 5AnQStQr6Uc6tidXYSdktHFGeR4EM1QjcllI5HOGK2gzhak6hdKeehqJyaAMGrmt 4yWy8RcbhYMHVgOy4hoy/Rc/kML5HTn3Ilp3w2E1o/5kn1unIIlgTHBRrzTIAffJ 73YCDX1p9ZsRBV+JnEv/1uvnlnMDAgMBAAECgYEAqX8Jx7t28lrBq7L8b10IKByg Xd8ZhuhWXysXE2bwoP/hgD4vg8MOV25RITHKmQI/lFz0EN0gzRcqwIVPTr29Cce5 7kIWywPedFx+0iykh7Y7qEi7RQDlIJTK5MyNcrbaRqKxXf0ciqGo/28+eJaqoXhv 3hLqNiTTNlkrBccGgjECQQD/qjNS7RH0KaXwy1x1Fa0veTY82KZPjDqHC2VGBp/h jEn1xJyaQQzHiBJKV9fWxZ0NgDlKrUY4l03Oc7H981DnAkEA66SyYTf20VvJd6ne C+2CFz5XxKNrssCpTU/s6mOAGc+/DCljrN+QIcdIq9Oq8M8P0mQDW7dy+N6TzbI9 0TrdhQJAUHus8oMM7tcZlQb/0SAEx/gZeegd2tbjKdYNiJDXTfKS6dp+DhVCR6Hv WBX1LXhCK5jc8ERB4djHtqE3PCGXqwJAFPZTv/5AgKNPqst7q0f3mKW9HQsEm6Qz 62K+yqMLVEB82FIeQdSpd7fIqTBtNnrVB3xKKDCLk8QJFfVTNnesGQJBAO3FtT5I YQgpIR/XnJD02S1dlfrAs9TnsTt/1z+wpo+OxJjd5vqWxvQ3EIxHuxqXYGhoko9o V6sdAtrWeDiMP9k= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app05.phx2.fedoraproject.org.crt0000644000175000017500000001002312231547317031506 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 7 (0x7) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app05.phx2.fedoraproject.org/name=shell-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:bf:cb:b3:59:50:a2:bc:de:06:de:e6:e6:47:e3: 45:12:0e:86:a0:5b:8e:84:8a:4a:44:80:f7:06:bf: 3d:5f:6d:01:e0:dc:78:4d:af:5c:b9:db:5c:1d:61: c7:c2:5b:a9:1b:82:66:56:1f:2b:cf:33:14:6c:9c: 39:36:21:42:be:60:ca:79:53:3b:8e:a9:3c:b6:18: 11:96:d0:73:c6:5c:74:0b:0a:a7:48:9d:3e:1c:0c: 1e:b7:c9:f3:d1:47:28:d1:47:31:92:c9:d4:b9:61: 54:f7:92:7c:0b:d9:d4:81:1e:41:84:e2:3f:90:44: 00:5b:ef:dc:69:cf:79:5c:59 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E1:C3:41:E8:A2:BA:2D:DC:DD:AD:45:CC:29:A2:0C:E7:F6:21:62:D9 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 6d:ca:0c:aa:bf:2e:75:b5:cb:c7:f7:f9:b2:40:ff:2a:d9:7f: 06:8e:ed:fb:69:aa:bb:36:d8:23:aa:58:58:31:b3:62:7e:88: e3:45:54:4f:43:9d:79:d4:50:ba:57:7d:3c:92:0a:d3:a9:08: 1b:df:a0:ff:5e:e4:38:72:9f:0d:cd:b8:52:4d:53:bd:06:1c: 99:e6:2b:07:2e:39:f7:24:71:a8:1d:70:1a:e2:31:46:d3:af: 85:5f:e5:f5:9f:2a:76:88:a7:87:43:b2:7a:36:76:64:88:45: 9e:69:20:74:e6:0d:ab:5b:5e:f1:e1:82:51:ac:d7:c7:5d:5b: ca:c5 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBBzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw NS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwNS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAv8uzWVCi vN4G3ubmR+NFEg6GoFuOhIpKRID3Br89X20B4Nx4Ta9cudtcHWHHwlupG4JmVh8r zzMUbJw5NiFCvmDKeVM7jqk8thgRltBzxlx0CwqnSJ0+HAwet8nz0Uco0UcxksnU uWFU95J8C9nUgR5BhOI/kEQAW+/cac95XFkCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQU4cNB6KK6LdzdrUXMKaIM5/YhYtkwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAG3KDKq/LnW1y8f3+bJA/yrZfwaO7ftpqrs22COqWFgxs2J+ iONFVE9DnXnUULpXfTySCtOpCBvfoP9e5Dhynw3NuFJNU70GHJnmKwcuOfckcagd cBriMUbTr4Vf5fWfKnaIp4dDsno2dmSIRZ5pIHTmDatbXvHhglGs18ddW8rF -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app05.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032344 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 33 (0x21) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app05.phx2.fedoraproject.org/name=mediawiki-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:fb:3d:8a:7f:5e:83:c1:ab:47:75:ed:5c:00:09: 47:a8:7c:a4:98:88:49:27:26:e1:e1:18:01:28:7a: 85:d2:59:3c:c3:06:36:dc:46:60:f8:7b:49:bd:e5: 59:ad:10:89:b7:a6:b5:cf:a7:a4:ef:47:16:9d:32: ca:55:0c:a6:65:e0:1f:97:88:23:31:60:ac:99:ac: 77:de:18:89:ac:ee:01:4c:29:46:e3:5d:b9:b9:b8: b6:a4:17:d4:55:38:d7:23:89:52:5a:9a:3e:1b:70: ca:02:c4:7d:aa:26:36:6c:53:09:dc:c2:cb:a6:8f: 5a:f4:2c:08:26:29:8e:2d:33 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 49:08:F4:8B:48:3C:EA:A4:49:96:DA:B6:B5:89:B5:96:2D:02:05:E7 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption dd:20:f0:cf:36:7a:67:4a:22:8b:76:02:e2:0e:aa:49:28:f2: 6f:0f:2e:84:85:37:2c:a8:3d:73:5f:fc:60:22:ec:7d:73:1f: 5c:c1:b7:95:66:2b:00:40:6d:3a:c7:f6:82:4f:7f:49:3b:cf: 89:e7:91:80:46:76:b1:6c:92:8c:4f:22:36:fb:eb:29:30:5f: ce:99:fa:e8:29:dc:96:8d:97:b3:a7:d0:5e:24:25:0b:85:1a: 35:62:ce:c9:ea:c6:f0:39:44:dd:8e:de:6f:94:c1:62:67:72: 6e:6d:6e:f5:da:f6:b3:cb:2d:fe:3b:c4:7f:9e:57:8d:33:67: 15:7e -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBITANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDUucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDA1LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQD7PYp/XoPBq0d17VwACUeofKSYiEknJuHhGAEoeoXSWTzDBjbcRmD4e0m95Vmt EIm3prXPp6TvRxadMspVDKZl4B+XiCMxYKyZrHfeGIms7gFMKUbjXbm5uLakF9RV ONcjiVJamj4bcMoCxH2qJjZsUwncwsumj1r0LAgmKY4tMwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBRJCPSLSDzqpEmW2ra1ibWWLQIF5zCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEA3SDwzzZ6Z0oii3YC4g6qSSjybw8uhIU3LKg9 c1/8YCLsfXMfXMG3lWYrAEBtOsf2gk9/STvPieeRgEZ2sWySjE8iNvvrKTBfzpn6 6Cnclo2Xs6fQXiQlC4UaNWLOyerG8DlE3Y7eb5TBYmdybm1u9dr2s8st/jvEf55X jTNnFX4= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/2B.pem0000644000175000017500000001014212231547317023416 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 43 (0x2b) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedoratagger-packages01.stg.phx2.fedoraproject.org/name=fedoratagger-packages01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d3:d0:82:a2:4c:c1:4a:3f:e3:45:a4:08:f0:b6: 46:f8:14:4d:d1:3f:da:8d:71:7a:b8:17:17:3b:5c: cf:4a:39:21:fa:5c:95:23:c1:8b:4c:80:1e:72:37: 84:92:56:47:50:34:57:fd:bb:79:4b:8b:39:af:1a: 6f:3d:af:0f:f2:34:c9:e8:9c:4b:09:c5:6a:05:42: 71:9a:90:2f:96:49:96:a5:0f:7f:d9:68:49:5f:ef: 87:90:a3:05:25:e6:44:50:41:25:25:11:7f:9f:96: 03:9d:02:f5:74:4e:3e:c2:3d:84:6f:5a:6c:3c:3e: b4:c5:cf:95:fc:87:0e:63:e7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: EE:A0:70:85:34:D5:AA:7F:CE:70:7E:5E:1B:BA:2A:D2:D6:76:B4:5F X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 39:00:c8:9c:47:15:1a:f3:f3:14:8e:d3:6f:62:b1:70:e6:0d: c6:c5:b4:a4:43:b0:23:31:95:9f:14:01:db:12:b0:7e:26:12: d1:7f:59:7f:6a:76:60:39:4f:90:bd:92:a8:ab:8c:1d:33:84: 9e:1b:52:23:be:cc:41:68:89:1c:20:84:c7:60:48:af:40:c3: aa:07:5f:fa:a4:33:d4:d8:ec:a5:01:59:a5:86:c2:17:85:2c: bb:52:8c:4e:55:79:5b:7b:54:51:5a:04:a5:37:bd:c5:b6:78: cf:9d:47:19:43:63:6c:ce:42:ed:f8:33:ab:a0:e8:31:28:54: 05:3e -----BEGIN CERTIFICATE----- MIIEaTCCA9KgAwIBAgIBKzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB+DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTswOQYDVQQDEzJmZWRvcmF0YWdn ZXItcGFja2FnZXMwMS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzE7MDkGA1UE KRMyZmVkb3JhdGFnZ2VyLXBhY2thZ2VzMDEuc3RnLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnMIGf MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDT0IKiTMFKP+NFpAjwtkb4FE3RP9qN cXq4Fxc7XM9KOSH6XJUjwYtMgB5yN4SSVkdQNFf9u3lLizmvGm89rw/yNMnonEsJ xWoFQnGakC+WSZalD3/ZaElf74eQowUl5kRQQSUlEX+flgOdAvV0Tj7CPYRvWmw8 PrTFz5X8hw5j5wIDAQABo4IBVzCCAVMwCQYDVR0TBAIwADAtBglghkgBhvhCAQ0E IBYeRWFzeS1SU0EgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTuoHCF NNWqf85wfl4buirS1na0XzCB1QYDVR0jBIHNMIHKgBQAmKXV58RVDoSjZ/5mShbg BBXdIaGBpqSBozCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQH EwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEPMA0GA1UECxMGZmVk bXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3 DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmeCCQCO6yjYqROdfDATBgNVHSUE DDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZIhvcNAQEFBQADgYEAOQDI nEcVGvPzFI7Tb2KxcOYNxsW0pEOwIzGVnxQB2xKwfiYS0X9Zf2p2YDlPkL2SqKuM HTOEnhtSI77MQWiJHCCEx2BIr0DDqgdf+qQz1NjspQFZpYbCF4Usu1KMTlV5W3tU UVoEpTe9xbZ4z51HGUNjbM5C7fgzq6DoMShUBT4= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app06.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031517 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMic2hlbGwtYXBwMDYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMic2hlbGwtYXBwMDYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAKwzCuM82stqEskE4DFhJV/Ysml62cr5s47Nb7Az +t3L76Y60mBpK2oE6YOOYxAfgfRYI4965MS5EtbyQgTjcg0iBDMwdi30TPP8YlFJ 64cp2JWJL65UXaSxFNeP72bfl9QgGyZfuOaESbePsh+1Sfi6+K4kxeJa5DYPt4X6 v/XjAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQBZPRRvv4t2TIyTbVsRUc98KYrU xGAEVxFpUSOSNofMjA6avyyj0T1pfSHM52Cj8xywyVKR7JeG+dTsJfzv84yhrhvW s2DnmhSUUQSoocRQVVbmIc3sit/Bp8xBU925afbh+3TlXJvA9FwVTdX3YJxJk4no dkxAVd9sPw9hpWVmSw== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app01.phx2.fedoraproject.org.crt0000644000175000017500000001002312231547317031502 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 3 (0x3) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app01.phx2.fedoraproject.org/name=shell-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c9:5d:32:76:f9:e8:a4:84:e6:16:cd:24:7e:99: 68:2a:3e:a7:5b:4f:c2:3b:3a:74:ac:3c:30:be:e5: 99:17:62:83:76:5d:40:79:15:b3:7e:ca:4e:40:e5: 88:2b:95:7e:a3:6a:b1:60:0e:ad:6a:22:b8:6c:f7: f2:95:82:f5:20:62:30:95:53:fd:99:ae:73:c2:44: 6f:5a:47:ad:5a:31:8e:46:9e:41:ee:0e:e8:10:24: 0e:06:8d:e0:9d:0b:74:51:fe:53:58:04:35:e9:69: f4:6c:2a:c8:41:2a:8e:59:52:92:70:af:6f:52:4f: e8:a2:65:25:01:96:e4:b0:47 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 77:71:57:05:B0:F6:25:6D:EA:72:6A:BE:E5:53:FB:19:CB:B1:1C:5E X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 11:b5:cc:6f:e5:cd:8c:b3:fe:98:61:44:ea:ba:9f:39:37:41: 45:5e:34:6c:b1:15:dc:71:a0:1e:7b:8f:8c:43:8b:ad:32:cf: 2d:b2:01:87:bd:b3:0a:a5:2f:51:a4:f6:38:c0:e3:f6:5f:fe: 52:cf:17:13:8c:f8:d8:a7:4c:e8:7f:a3:ac:f4:6c:40:41:0a: e7:f0:14:a8:92:fa:e8:3f:a6:3b:08:a3:af:6f:0b:4d:c5:db: 54:b4:a6:ab:8c:f1:b4:23:71:da:00:e6:ae:69:76:26:3f:06: ae:47:50:b9:a8:b3:20:3e:10:db:ba:f6:8b:d0:19:96:54:88: 96:ff -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw MS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwMS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyV0ydvno pITmFs0kfploKj6nW0/COzp0rDwwvuWZF2KDdl1AeRWzfspOQOWIK5V+o2qxYA6t aiK4bPfylYL1IGIwlVP9ma5zwkRvWketWjGORp5B7g7oECQOBo3gnQt0Uf5TWAQ1 6Wn0bCrIQSqOWVKScK9vUk/oomUlAZbksEcCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUd3FXBbD2JW3qcmq+5VP7GcuxHF4wgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBABG1zG/lzYyz/phhROq6nzk3QUVeNGyxFdxxoB57j4xDi60y zy2yAYe9swqlL1Gk9jjA4/Zf/lLPFxOM+NinTOh/o6z0bEBBCufwFKiS+ug/pjsI o69vC03F21S0pquM8bQjcdoA5q5pdiY/Bq5HULmosyA+ENu69ovQGZZUiJb/ -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.dev.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032261 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmc2hlbGwtZmFzMDEuZGV2LnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJnNoZWxsLWZhczAxLmRldi5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA32CKVqOORvrblJU+J7qHOPUP908p QTgltvUcv0mJOEHtKSb5lmoMmBbtDekBVtX1gwd+i0DH34mRLuoNgtmREzVh0SLo VpYYoEU/RVeR0oZ2WGbyOHD724EqtdapAYCFWZfTPUk1xmwttahHUJ20uXmVi8Jr JSDz6JZtefxTvqUCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAD6vtRLZlMP7FQNr YQePwSZLwfyF1XUVStTTFOk3nuQRSwZDfnjHQsZ5bUF63Nql/vJ/DpUk8JjpURb4 9xlKBI0YBLfGKMtBx5b6J+pB6eupXtNWUUea/VmnIXFAVYjZK5At3Gxjpgw2rD5J m8yNWzxM7MAjDclVuItNb4Ss+ACz -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages01.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317034032 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAPIPCmV4MyGtu0aI SHnBs03f+pknFX22e6a0s4en6iZs8F3gz6Mbx/P6ZNR2lrPYg+BMkV5wLXMnkiok PvJIBW8e9KzW3Nz5HOW3/soKCeYLHaP0jkjpPlwnAbxp3lvdKFs5KQOXlhLgC+dq 4zf229K3SCQQYkUCb6i5ZzFMlHQtAgMBAAECgYAYRgHY4xDdk7pv/EKoUxBUAt3y dcTl8mK7+Or385K7f7kq8NxhkuueP8HUvH+oUVIIMCVzvvQP1CwIJdJaIXbJ1/e+ gxbC/+dP4g6HPUfkqc3uz7KlKdIx/Bw890GhU8XSNM1pgdrGFMQji4lLiR89eVcs a3EmhvARUXeFGrl9AQJBAPlICyKost+9efaE6yP4KQ7bN0VDlGEqMwGSwOf04/a3 K28z+YtgzKi3u1ddH+RzZ4EB0Ht+WUj0IlmWAAHXgF0CQQD4lSnGEpVZoh3ztab4 LWWqC433EI23UJ+hN8hrr3u9pwVOQcPOBygBpI8viY7c2ybJpe1ERilsQRXRXzGE IcYRAkEAs1IH8J66TgjXO2bSX8Wcg3tefwzmKB9bIb6X1kRr2IZbUFtrH8A6eQPy WB49WvFJe5v6hVuWjsxQCXHF/40uYQJALzkXAHvTR33Wts+RcqAdKhqb042ffm2g hZ31Qw/JMBQkm+M+cUtGvFkool09eJNhYPlWg5vYjqomnOm6nGFWIQJBANM5N9VT TNS7eiD8gDH5YNSkeoXVWSnO9Ahqvh8qglNF+jE4w5ok6T1N3zV+seD7DSE/d+aV U0hK4Io4j+/kZx0= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.dev.phx2.fedoraproject.org.crt0000644000175000017500000001004212231547317031713 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 40 (0x28) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fas-fas01.dev.phx2.fedoraproject.org/name=fas-fas01.dev.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:9a:89:37:49:5c:35:fd:f1:bf:3f:30:9b:a0:d5: 0e:39:b6:1b:d7:19:39:79:11:b1:26:d3:4e:9b:e2: ce:a4:10:c4:36:fd:13:d9:f5:e8:87:ac:c4:96:66: cc:c0:2b:4e:94:c1:64:1d:41:64:eb:3e:48:47:d8: 20:32:f5:6b:f7:75:15:fb:9a:2b:19:20:79:ea:36: cb:fe:04:ce:c3:dd:8f:bb:49:ae:04:81:f9:08:8a: 1a:a0:78:4e:bd:83:52:7d:44:28:72:3c:ba:a2:77: 28:be:f1:e6:87:33:fc:84:f1:f0:95:9f:02:6b:f1: b1:30:c1:f7:8a:7b:18:ba:b7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E1:72:E7:FD:75:0C:CE:D5:DF:B5:FF:AE:FF:52:B8:51:19:F4:7B:84 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 17:a3:c9:ac:f3:97:26:55:a5:9f:b6:1a:4f:e8:12:b8:a8:cc: b8:f3:3d:33:f7:ef:9b:ce:93:c3:fd:ff:b7:50:60:e6:24:03: 38:45:c6:2b:cc:c8:ab:a2:c2:e1:0e:67:d7:2a:d8:26:d7:90: 47:52:c0:cf:f7:a7:44:d4:ec:79:a3:cf:60:98:2e:07:34:1b: 40:57:36:e5:71:b8:6e:fc:ff:16:da:3e:3b:bc:fe:8d:55:22: 95:ff:b9:18:3a:57:6d:bf:28:9b:b3:19:8c:ae:38:74:6a:8c: f1:2e:e4:f5:8b:39:22:16:55:15:6e:f5:c3:cd:ab:e8:35:af: 8c:4b -----BEGIN CERTIFICATE----- MIIETTCCA7agAwIBAgIBKDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB3DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS0wKwYDVQQDEyRmYXMtZmFzMDEu ZGV2LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxLTArBgNVBCkTJGZhcy1mYXMwMS5k ZXYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5A ZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJqJ N0lcNf3xvz8wm6DVDjm2G9cZOXkRsSbTTpvizqQQxDb9E9n16IesxJZmzMArTpTB ZB1BZOs+SEfYIDL1a/d1FfuaKxkgeeo2y/4EzsPdj7tJrgSB+QiKGqB4Tr2DUn1E KHI8uqJ3KL7x5ocz/ITx8JWfAmvxsTDB94p7GLq3AgMBAAGjggFXMIIBUzAJBgNV HRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQgQ2VydGlm aWNhdGUwHQYDVR0OBBYEFOFy5/11DM7V37X/rv9SuFEZ9HuEMIHVBgNVHSMEgc0w gcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQGEwJVUzEL MAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZlZG9yYSBQ cm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEPMA0GA1UE KRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9y Z4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDAN BgkqhkiG9w0BAQUFAAOBgQAXo8ms85cmVaWfthpP6BK4qMy48z0z9++bzpPD/f+3 UGDmJAM4RcYrzMirosLhDmfXKtgm15BHUsDP96dE1Ox5o89gmC4HNBtAVzblcbhu /P8W2j47vP6NVSKV/7kYOldtvyibsxmMrjh0aozxLuT1izkiFlUVbvXDzavoNa+M Sw== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000147212231547317033141 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICKTCCAZICAQAwgegxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEzMDEGA1UEAxMqbWVkaWF3aWtpLWFwcDAxLnN0Zy5waHgyLmZlZG9yYXBy b2plY3Qub3JnMTMwMQYDVQQpEyptZWRpYXdpa2ktYXBwMDEuc3RnLnBoeDIuZmVk b3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2pl Y3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCv+EYbCYZWHwLk5o8K AQ6vXNXinyuWtDJz2tU/yAcke17MsqZDJOvIuEI4LKYLMsC8rD33OuN8VlLGxqEt t1Oe1HXHYyFWIPrGRnfH6JZK0Um2iRTRGA6vGUxb2r34O4C+4FuBFNrM5sWZHUKm OwuTMBTSb4PYmaFJHnvm6mDIKQIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEAMkme Nr7r1s6KuKvDMn1WikEQ0VMirJQtndw8SnHAzODGleLnfd4P2IO9qMVdJdnmqj5h u90pfIE8k9QQz8igGoJxFPKq4Xs5kQXkRoYOaa9h2oBt/e1mYjh/csqDWU/FffF+ OharQXDyRF+B9dwQmJ3ihhWAMtC9EccTRMa15x0= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/0C.pem0000644000175000017500000001002412231547317023414 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 12 (0xc) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-fas01.phx2.fedoraproject.org/name=shell-fas01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:93:eb:fd:77:fe:bf:5c:d7:b8:dc:4a:66:ae:8f: 9a:c2:1b:a2:cc:48:d1:2c:d3:cb:01:7f:18:fc:dd: d7:b0:d8:78:2d:a2:0e:c4:8f:93:26:c8:a5:20:02: 0b:77:bf:18:32:af:5e:b8:7b:b8:25:d9:33:f8:ce: c8:7a:6f:c8:78:0c:17:08:b7:96:fb:51:6a:34:d0: 34:4a:20:62:36:7c:e7:79:e9:d3:ab:85:5b:27:09: 0e:a8:50:60:ec:7e:10:70:d8:2c:18:6a:e3:82:53: bd:5b:62:08:53:2b:20:2a:20:34:05:ef:03:66:f3: 67:2a:e5:0a:8a:f2:f2:98:61 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 57:24:78:6A:46:74:8F:BA:E0:0D:AE:1D:10:72:8D:6B:FF:E7:64:D5 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 33:56:05:7a:bb:46:ba:a1:90:ae:72:12:09:c7:79:a6:59:69: 68:32:d0:4f:56:cb:f3:15:81:89:8f:d8:84:37:02:01:a8:2b: d3:9a:21:1c:20:db:aa:ce:56:73:6b:99:a6:2c:1a:c3:a6:89: 72:a0:f7:a7:5b:a7:a6:8d:ff:8b:20:1e:48:2f:18:ff:01:d1: 33:17:7d:eb:06:35:6c:b3:b8:f4:86:10:f9:d4:5e:48:8d:15: 1b:93:6e:75:39:01:e9:60:a9:9d:05:e7:82:2e:7d:46:c8:d4: ad:82:d8:80:52:44:a6:0d:37:a8:26:4a:fc:40:67:98:22:11: 44:ca -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBDDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1mYXMw MS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1mYXMwMS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAk+v9d/6/ XNe43Epmro+awhuizEjRLNPLAX8Y/N3XsNh4LaIOxI+TJsilIAILd78YMq9euHu4 Jdkz+M7Iem/IeAwXCLeW+1FqNNA0SiBiNnzneenTq4VbJwkOqFBg7H4QcNgsGGrj glO9W2IIUysgKiA0Be8DZvNnKuUKivLymGECAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUVyR4akZ0j7rgDa4dEHKNa//nZNUwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBADNWBXq7RrqhkK5yEgnHeaZZaWgy0E9Wy/MVgYmP2IQ3AgGo K9OaIRwg26rOVnNrmaYsGsOmiXKg96dbp6aN/4sgHkgvGP8B0TMXfesGNWyzuPSG EPnUXkiNFRuTbnU5AelgqZ0F54IufUbI1K2C2IBSRKYNN6gmSvxAZ5giEUTK -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/25.pem0000644000175000017500000001007612231547317023407 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 37 (0x25) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app02.stg.phx2.fedoraproject.org/name=mediawiki-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c4:b1:be:dc:9c:95:bf:95:59:1b:c3:e7:e8:6b: 55:84:db:a5:e9:46:96:6c:d6:51:5e:9c:8c:62:c0: b0:98:86:4d:e2:1f:56:5d:e2:d9:2d:61:00:06:3f: b8:9e:87:50:db:c9:7c:d8:7e:56:03:35:b9:58:07: c2:aa:38:d7:ea:b8:8a:87:a1:09:f8:4c:13:d3:01: 8e:c3:2e:6e:c0:b6:f8:6d:a2:f6:79:b1:4c:83:6f: f8:11:a1:b2:e2:75:15:b0:ca:61:77:4f:4b:1c:a5: b9:40:d9:46:8a:41:00:dc:60:99:3e:cd:eb:bf:31: 13:7a:e6:a8:3c:06:7f:83:23 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 02:62:D0:F2:5B:50:6C:35:06:25:F0:69:02:A7:C8:26:C1:30:DF:9D X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 2b:07:3b:a1:e5:ed:bc:0e:53:b4:00:84:79:04:b0:ea:19:ac: 17:b4:18:74:7c:a9:56:4c:ca:7e:79:94:e4:86:7f:81:10:3b: cc:b2:22:af:0f:8b:2e:cf:be:38:86:17:b7:ae:fe:cc:e5:42: 26:80:24:a7:78:52:a3:9f:75:8b:74:ea:11:2b:9c:5e:bf:b6: 05:40:04:6b:dd:fd:03:ba:28:89:84:a5:73:f1:f9:e8:93:65: 68:4c:b9:9b:2f:22:bc:71:53:48:0b:48:76:5b:f3:27:c9:3c: e9:cd:f8:5c:48:d5:c2:e6:4e:77:79:8f:a6:39:27:96:9f:33: 74:2a -----BEGIN CERTIFICATE----- MIIEWTCCA8KgAwIBAgIBJTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB6DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTMwMQYDVQQDEyptZWRpYXdpa2kt YXBwMDIuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMzAxBgNVBCkTKm1lZGlh d2lraS1hcHAwMi5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3 DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBAMSxvtyclb+VWRvD5+hrVYTbpelGlmzWUV6cjGLAsJiGTeIfVl3i 2S1hAAY/uJ6HUNvJfNh+VgM1uVgHwqo41+q4ioehCfhME9MBjsMubsC2+G2i9nmx TINv+BGhsuJ1FbDKYXdPSxyluUDZRopBANxgmT7N678xE3rmqDwGf4MjAgMBAAGj ggFXMIIBUzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5l cmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFAJi0PJbUGw1BiXwaQKnyCbBMN+d MIHVBgNVHSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQsw CQYDVQQGEwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNV BAoTDkZlZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZl ZG1zZzEPMA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsG A1UdDwQEAwIHgDANBgkqhkiG9w0BAQUFAAOBgQArBzuh5e28DlO0AIR5BLDqGawX tBh0fKlWTMp+eZTkhn+BEDvMsiKvD4suz744hhe3rv7M5UImgCSneFKjn3WLdOoR K5xev7YFQARr3f0DuiiJhKVz8fnok2VoTLmbLyK8cVNIC0h2W/MnyTzpzfhcSNXC 5k53eY+mOSeWnzN0Kg== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app02.stg.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032266 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmYm9kaGktYXBwMDIuc3RnLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJmJvZGhpLWFwcDAyLnN0Zy5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxGU/2IzoNd3wCFZ9bjbNkTmAd3wA ZF4Lw4OBBE4Sj92XVA7cJc1Vn8yzZAJ1EMkKuaD19rO2oMTeJiDnfuKSwpSpJV+i cZ38BEE54HWlB+4BIbJK7qqZHL70MdIwv7oLI6meVAOdNcLJbBU/iTeSckrYh+Xr RVWUlvrEHZ+x+S8CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAI26esE+y72oVHtu yldSx9AQfOTwaKuL8Z6DLx8+ce3/ZuFRbOaxhp6+LJvwGRy5k3BEcwciEMpZxQjY boCQX6MjlUuYUQj8tzWE0o1x7W6+Trt3LILXZzd6PXfIiaLCMjp0Z8ZMgEWzMnZz QJ+21E0qvtC2NiSPqTRthbmkAht7 -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.dev.phx2.fedoraproject.org.csr0000644000175000017500000000145212231547317031717 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICHTCCAYYCAQAwgdwxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEtMCsGA1UEAxMkZmFzLWZhczAxLmRldi5waHgyLmZlZG9yYXByb2plY3Qu b3JnMS0wKwYDVQQpEyRmYXMtZmFzMDEuZGV2LnBoeDIuZmVkb3JhcHJvamVjdC5v cmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0G CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCaiTdJXDX98b8/MJug1Q45thvXGTl5EbEm 006b4s6kEMQ2/RPZ9eiHrMSWZszAK06UwWQdQWTrPkhH2CAy9Wv3dRX7misZIHnq Nsv+BM7D3Y+7Sa4EgfkIihqgeE69g1J9RChyPLqidyi+8eaHM/yE8fCVnwJr8bEw wfeKexi6twIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEAY6gXZbryRAuS1bsBhywW P9nL7LicMeFQS6IzWjyLth64PHtUja9dDGf1k44+9CAAbB7PTfCUpUqh7iS9+mW6 BqKeS5GW+A539GvmN/7plSFDXyYy5sy7cwCqbrtTn/eY/uWePkNut7nA44NVLIIs jT4yFoU1m0Tg3GR7sUz06vo= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-pkgs01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000146212231547317032470 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICIzCCAYwCAQAwgeIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEwMC4GA1UEAxMnc2hlbGwtcGtnczAxLnN0Zy5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMTAwLgYDVQQpEydzaGVsbC1wa2dzMDEuc3RnLnBoeDIuZmVkb3JhcHJv amVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3Jn MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbEy01fB2Pw3LuFqkmpGJ99ohI Zsv5CxjmoiAQulctCjC4AbAVEBwU3G4soQKxHdfX5hrtaui18AEEi/b8Lbz2KUQW isi0EGStGZqTyIJoBQapOnb06IjRWmjdgxNv2aDMocNAE+YYuePTouTsaYAwRmU+ 5zxXxDTDmXoLcxXnWwIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEAOX4jOS1tf+JL 8L7aBCtxx11vjrL6Ju7+C+WaX4vpGXxduVRP5N9NeMmIzf1zFDucsFS0cymp7YyT CtGcqJo7YFFo1yJKiNAoIhefOVS+0bNI4fiEJKFPDQZl5Xv34FLN9uajSDHgBHly fkudIaSUz7q8pk5cv6/9qo3xm8a4pbI= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/27.pem0000644000175000017500000001004212231547317023402 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 39 (0x27) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fas-fas01.stg.phx2.fedoraproject.org/name=fas-fas01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:cf:e4:45:2a:19:69:c2:49:0d:e9:72:f1:e9:3c: 1c:a7:c5:34:e7:9a:d2:af:41:f4:dd:39:f6:8e:de: 63:60:e6:32:fe:33:bd:c0:c7:e3:ba:cb:6d:d5:b6: ac:50:54:8d:fc:2c:16:87:68:c2:d1:c1:92:f1:b6: 55:07:77:9f:d2:32:86:cc:c5:d3:76:8e:c8:ba:e5: 67:69:f3:98:2a:3e:7e:52:39:0d:29:13:0e:85:53: 0f:33:1b:1f:33:7f:3f:ea:e6:ab:03:18:b8:fe:5e: 6f:c7:2d:ff:0c:dd:b0:54:bb:1c:aa:bb:b5:2f:7c: 1b:16:5e:bc:04:9e:fd:2b:03 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 45:B5:AE:95:07:F6:A4:6F:E9:BF:47:48:95:BE:12:4B:9F:6F:24:67 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 4b:83:e1:91:44:dc:e0:74:c3:71:b5:85:33:e2:17:b6:b8:aa: a1:a7:e3:22:54:6d:76:f9:5c:f7:8a:4f:77:10:f6:51:90:e4: 3f:e8:1d:b1:2f:63:79:5e:46:ea:af:ef:be:46:5b:af:3c:4e: a9:15:2f:ac:23:89:20:74:f2:1e:e4:02:cc:5a:a8:be:08:c2: c7:b9:f4:42:8b:c9:e4:a4:3e:13:c8:41:bc:b9:4e:37:22:e0: 09:cb:c7:ab:56:26:c2:20:51:97:2b:06:ed:a3:e0:f8:b1:ea: 17:c1:00:21:b0:18:15:64:cf:68:0c:a9:a0:bc:45:c1:2c:4c: c1:49 -----BEGIN CERTIFICATE----- MIIETTCCA7agAwIBAgIBJzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB3DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS0wKwYDVQQDEyRmYXMtZmFzMDEu c3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxLTArBgNVBCkTJGZhcy1mYXMwMS5z dGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5A ZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM/k RSoZacJJDely8ek8HKfFNOea0q9B9N059o7eY2DmMv4zvcDH47rLbdW2rFBUjfws FodowtHBkvG2VQd3n9IyhszF03aOyLrlZ2nzmCo+flI5DSkTDoVTDzMbHzN/P+rm qwMYuP5eb8ct/wzdsFS7HKq7tS98GxZevASe/SsDAgMBAAGjggFXMIIBUzAJBgNV HRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQgQ2VydGlm aWNhdGUwHQYDVR0OBBYEFEW1rpUH9qRv6b9HSJW+EkufbyRnMIHVBgNVHSMEgc0w gcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQGEwJVUzEL MAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZlZG9yYSBQ cm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEPMA0GA1UE KRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9y Z4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDAN BgkqhkiG9w0BAQUFAAOBgQBLg+GRRNzgdMNxtYUz4he2uKqhp+MiVG12+Vz3ik93 EPZRkOQ/6B2xL2N5Xkbqr+++RluvPE6pFS+sI4kgdPIe5ALMWqi+CMLHufRCi8nk pD4TyEG8uU43IuAJy8erVibCIFGXKwbto+D4seoXwQAhsBgVZM9oDKmgvEXBLEzB SQ== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001005112231547317032277 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 10 (0xa) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app01.stg.phx2.fedoraproject.org/name=shell-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c1:bc:81:28:0e:43:20:28:23:dc:7f:93:1f:7e: 03:66:b7:64:86:99:2a:c5:3a:dd:c0:76:e9:26:4b: c1:ab:77:58:54:c1:b5:13:67:32:51:85:6d:1f:d0: 2a:6b:47:66:6b:d7:c9:2d:de:f7:08:69:0c:b2:62: 31:22:9c:80:c1:82:fa:d8:5f:95:2b:d7:48:b8:2d: 6f:f0:20:4c:b9:c7:9a:9b:95:30:cc:eb:10:80:e9: db:e8:50:ff:4f:a4:63:b5:d1:00:a1:44:6d:e6:5c: f1:77:3f:b1:0d:ca:8a:fb:cc:be:89:0d:11:0a:93: ca:16:05:08:cd:ea:9e:b1:9d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 4A:E2:CA:AC:F3:6B:6C:F8:87:E9:9E:F0:B5:FE:4C:F1:0F:DB:93:13 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 07:57:c8:52:52:ea:cb:a6:f2:b2:e3:79:8f:35:d5:38:f3:1c: 4e:a0:a2:61:42:bc:d8:fd:40:bd:23:24:32:ea:45:c9:0f:0f: 44:b4:0b:40:c7:14:84:52:d1:cb:b9:48:6f:45:7e:22:50:7b: 36:f1:e7:94:fd:49:96:26:05:14:b7:52:83:f3:80:ff:fc:88: 87:29:d4:0f:38:34:9c:4c:4f:11:58:be:88:99:54:0f:17:5f: 85:07:47:d9:b1:fd:a3:d8:6d:ec:ae:77:7d:b7:d8:3c:f9:fb: ea:dd:41:f4:bd:9d:20:65:16:05:ba:f8:39:63:d0:83:94:7f: b8:f5 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBCjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZzaGVsbC1hcHAw MS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmc2hlbGwtYXBw MDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDBvIEoDkMgKCPcf5MffgNmt2SGmSrFOt3AdukmS8Grd1hUwbUTZzJRhW0f0Cpr R2Zr18kt3vcIaQyyYjEinIDBgvrYX5Ur10i4LW/wIEy5x5qblTDM6xCA6dvoUP9P pGO10QChRG3mXPF3P7ENyor7zL6JDREKk8oWBQjN6p6xnQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBRK4sqs82ts+IfpnvC1/kzxD9uTEzCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAB1fIUlLqy6bysuN5jzXVOPMcTqCiYUK82P1A vSMkMupFyQ8PRLQLQMcUhFLRy7lIb0V+IlB7NvHnlP1JliYFFLdSg/OA//yIhynU Dzg0nExPEVi+iJlUDxdfhQdH2bH9o9ht7K53fbfYPPn76t1B9L2dIGUWBbr4OWPQ g5R/uPU= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app04.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032352 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmbWVkaWF3aWtpLWFwcDA0LnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJm1lZGlhd2lraS1hcHAwNC5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA61W4S2/QhY62zpLkCdBK1CvpRzq2 J1dhJ2S0cUZ5HgQzVCNyWUjkc4YraDOFqTqF0p56GonJoAwaua3jJbLxFxuFgwdW A7LiGjL9Fz+QwvkdOfciWnfDYTWj/mSfW6cgiWBMcFGvNMgB98nvdgINfWn1mxEF X4mcS//W6+eWcwMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBABN8zHsAHV0sUCzH 9+Jjq5duQYAe6zHTfk8XsDi2sJMGs9jfqyX622ScukqdBdMs5yh7XPyNdwadJ0pW 65iCAereo+JVNoDxciqPuUB6n6SzUfYqmg/5kYTteoj642zKZBuSl38atbdDSgtp E+eYt0oLAHHWiyQ9so8FvsEa7IDO -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-pkgs01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001006012231547317032463 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 19 (0x13) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-pkgs01.stg.phx2.fedoraproject.org/name=shell-pkgs01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:db:13:2d:35:7c:1d:8f:c3:72:ee:16:a9:26:a4: 62:7d:f6:88:48:66:cb:f9:0b:18:e6:a2:20:10:ba: 57:2d:0a:30:b8:01:b0:15:10:1c:14:dc:6e:2c:a1: 02:b1:1d:d7:d7:e6:1a:ed:6a:e8:b5:f0:01:04:8b: f6:fc:2d:bc:f6:29:44:16:8a:c8:b4:10:64:ad:19: 9a:93:c8:82:68:05:06:a9:3a:76:f4:e8:88:d1:5a: 68:dd:83:13:6f:d9:a0:cc:a1:c3:40:13:e6:18:b9: e3:d3:a2:e4:ec:69:80:30:46:65:3e:e7:3c:57:c4: 34:c3:99:7a:0b:73:15:e7:5b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 4A:A6:F7:EE:01:81:BB:57:3C:1C:A6:2C:EE:4E:FE:B0:44:58:12:91 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption df:3c:0d:60:4d:56:a2:27:be:69:5e:47:99:23:05:15:ec:e1: 22:0b:8b:00:95:06:f8:01:24:f9:e9:2c:7f:58:35:8d:8f:37: 93:f9:e8:e9:6f:cd:5c:d3:26:89:88:99:2c:95:a5:56:40:e5: ae:66:f5:3e:55:4e:d5:f0:a6:03:10:ec:83:33:05:e0:0c:b1: c3:5a:8e:bd:4e:64:6c:c3:75:bf:7b:21:1e:cf:68:32:83:85: 35:89:83:68:f8:00:ca:6c:e7:ad:b2:23:49:12:20:80:22:ff: ec:0e:fa:7b:4e:0b:5c:ad:de:18:88:8e:41:f8:e5:da:5b:c6: 27:94 -----BEGIN CERTIFICATE----- MIIEUzCCA7ygAwIBAgIBEzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTAwLgYDVQQDEydzaGVsbC1wa2dz MDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMDAuBgNVBCkTJ3NoZWxsLXBr Z3MwMS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYX YWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBANsTLTV8HY/Dcu4WqSakYn32iEhmy/kLGOaiIBC6Vy0KMLgBsBUQHBTcbiyh ArEd19fmGu1q6LXwAQSL9vwtvPYpRBaKyLQQZK0ZmpPIgmgFBqk6dvToiNFaaN2D E2/ZoMyhw0AT5hi549Oi5OxpgDBGZT7nPFfENMOZegtzFedbAgMBAAGjggFXMIIB UzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQg Q2VydGlmaWNhdGUwHQYDVR0OBBYEFEqm9+4BgbtXPBymLO5O/rBEWBKRMIHVBgNV HSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQG EwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZl ZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEP MA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9q ZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQE AwIHgDANBgkqhkiG9w0BAQUFAAOBgQDfPA1gTVaiJ75pXkeZIwUV7OEiC4sAlQb4 AST56Sx/WDWNjzeT+ejpb81c0yaJiJkslaVWQOWuZvU+VU7V8KYDEOyDMwXgDLHD Wo69TmRsw3W/eyEez2gyg4U1iYNo+ADKbOetsiNJEiCAIv/sDvp7Tgtcrd4YiI5B +OXaW8YnlA== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/2D.pem0000644000175000017500000001004412231547317023421 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 45 (0x2d) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=scm-pkgs01.stg.phx2.fedoraproject.org/name=scm-pkgs01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d0:8d:ba:8e:c2:2c:65:b6:80:f2:b9:48:b8:b9: a6:77:61:76:d4:bf:88:4b:6b:a3:a6:71:c1:fe:c7: 46:00:49:e7:1a:aa:65:10:86:2f:a0:42:82:22:4e: 85:28:b0:fe:fa:94:9d:28:b4:4b:16:80:54:5b:dd: de:c4:77:0c:eb:8e:ea:91:90:bd:22:ff:e7:e2:23: f4:3d:bd:04:de:3d:11:0e:9b:0c:e4:51:b1:d9:fc: 23:1c:ee:1f:0c:59:13:a0:24:0a:2a:c4:a2:80:a5: 03:e4:8c:a6:7a:82:56:4e:24:b1:b0:d1:9e:15:c6: 98:41:0d:4d:6f:f9:91:26:01 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A8:F3:3D:35:FB:85:39:3F:80:8C:DB:E0:F0:71:99:17:AA:E3:BD:1C X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 92:1a:dc:04:eb:bb:cc:22:eb:a0:70:03:d8:71:84:a0:7f:2b: e2:85:2a:2a:ff:51:6e:3c:02:b9:e5:4e:79:b2:40:55:c8:f0: 00:32:01:59:04:ad:ec:d8:0f:a5:56:73:11:86:19:4e:37:ad: 11:3c:43:36:0b:1b:ad:b4:51:6d:49:e8:51:40:6b:a9:2e:b9: b9:c3:98:c5:99:bf:7a:e5:fd:8b:6f:9e:76:d4:82:40:10:e5: 79:08:67:f3:d2:df:3f:e3:9c:8a:c5:f5:7d:43:0c:26:7c:a8: d4:fe:bc:d9:50:84:5c:91:71:d2:af:c7:18:f7:a2:b4:9b:61: 81:2a -----BEGIN CERTIFICATE----- MIIETzCCA7igAwIBAgIBLTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB3jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS4wLAYDVQQDEyVzY20tcGtnczAx LnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMS4wLAYDVQQpEyVzY20tcGtnczAx LnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1p bkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA 0I26jsIsZbaA8rlIuLmmd2F21L+IS2ujpnHB/sdGAEnnGqplEIYvoEKCIk6FKLD+ +pSdKLRLFoBUW93exHcM647qkZC9Iv/n4iP0Pb0E3j0RDpsM5FGx2fwjHO4fDFkT oCQKKsSigKUD5IymeoJWTiSxsNGeFcaYQQ1Nb/mRJgECAwEAAaOCAVcwggFTMAkG A1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0 aWZpY2F0ZTAdBgNVHQ4EFgQUqPM9NfuFOT+AjNvg8HGZF6rjvRwwgdUGA1UdIwSB zTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVT MQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3Jh IFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYD VQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qu b3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeA MA0GCSqGSIb3DQEBBQUAA4GBAJIa3ATru8wi66BwA9hxhKB/K+KFKir/UW48Arnl TnmyQFXI8AAyAVkErezYD6VWcxGGGU43rRE8QzYLG620UW1J6FFAa6kuubnDmMWZ v3rl/YtvnnbUgkAQ5XkIZ/PS3z/jnIrF9X1DDCZ8qNT+vNlQhFyRcdKvxxj3orSb YYEq -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app07.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032346 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 35 (0x23) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app07.phx2.fedoraproject.org/name=mediawiki-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:a2:4b:a4:9b:ca:bc:d0:3a:bc:30:c7:87:79:2d: df:5b:1b:08:5e:8f:b5:1f:13:a1:2d:65:7e:27:a7: c9:3f:65:d7:a6:a1:43:db:c4:9c:6a:71:4d:65:88: 85:14:65:c0:f0:fb:a5:d0:4a:26:99:9f:82:f5:f5: 06:68:56:86:e7:67:52:90:40:d9:5c:11:f7:40:c3: 17:a7:a3:7d:45:a4:09:29:ab:99:9d:f0:39:f7:a2: 05:2d:08:34:c6:22:00:b0:e6:10:ca:f9:91:e4:a7: 15:18:46:17:c2:1c:2b:be:6c:b6:a0:f7:8c:4a:19: 29:23:d5:4e:8a:84:61:56:59 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: AB:00:98:5E:BF:83:5B:8F:25:15:E0:31:54:1D:FC:91:FD:EF:87:73 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption b9:3a:ec:d0:04:16:90:a0:85:a8:40:0d:b5:79:6b:0e:7d:9a: b1:bf:46:91:41:7c:41:4f:72:58:92:41:a1:4f:77:1b:cd:01: 42:65:25:7b:1a:3f:36:ad:96:24:e4:6b:c0:07:c1:13:6f:88: 69:6a:39:87:1e:01:80:94:4c:2e:c7:ef:a8:47:75:8f:67:4d: 77:3c:94:b9:88:d9:dc:f2:96:cf:43:6b:7b:79:bb:f8:d6:01: 6f:d5:a1:6c:d9:3d:0d:bf:29:2c:8b:32:cc:c6:fc:23:83:31: c9:7d:75:42:7e:6e:27:b1:d3:9c:fd:1c:fd:11:96:a7:a5:07: 45:b1 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBIzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDA3LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQCiS6SbyrzQOrwwx4d5Ld9bGwhej7UfE6EtZX4np8k/ZdemoUPbxJxqcU1liIUU ZcDw+6XQSiaZn4L19QZoVobnZ1KQQNlcEfdAwxeno31FpAkpq5md8Dn3ogUtCDTG IgCw5hDK+ZHkpxUYRhfCHCu+bLag94xKGSkj1U6KhGFWWQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBSrAJhev4NbjyUV4DFUHfyR/e+HczCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAuTrs0AQWkKCFqEANtXlrDn2asb9GkUF8QU9y WJJBoU93G80BQmUlexo/Nq2WJORrwAfBE2+IaWo5hx4BgJRMLsfvqEd1j2dNdzyU uYjZ3PKWz0Nre3m7+NYBb9WhbNk9Db8pLIsyzMb8I4MxyX11Qn5uJ7HTnP0c/RGW p6UHRbE= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/21.pem0000644000175000017500000001005212231547317023375 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 33 (0x21) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app05.phx2.fedoraproject.org/name=mediawiki-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:fb:3d:8a:7f:5e:83:c1:ab:47:75:ed:5c:00:09: 47:a8:7c:a4:98:88:49:27:26:e1:e1:18:01:28:7a: 85:d2:59:3c:c3:06:36:dc:46:60:f8:7b:49:bd:e5: 59:ad:10:89:b7:a6:b5:cf:a7:a4:ef:47:16:9d:32: ca:55:0c:a6:65:e0:1f:97:88:23:31:60:ac:99:ac: 77:de:18:89:ac:ee:01:4c:29:46:e3:5d:b9:b9:b8: b6:a4:17:d4:55:38:d7:23:89:52:5a:9a:3e:1b:70: ca:02:c4:7d:aa:26:36:6c:53:09:dc:c2:cb:a6:8f: 5a:f4:2c:08:26:29:8e:2d:33 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 49:08:F4:8B:48:3C:EA:A4:49:96:DA:B6:B5:89:B5:96:2D:02:05:E7 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption dd:20:f0:cf:36:7a:67:4a:22:8b:76:02:e2:0e:aa:49:28:f2: 6f:0f:2e:84:85:37:2c:a8:3d:73:5f:fc:60:22:ec:7d:73:1f: 5c:c1:b7:95:66:2b:00:40:6d:3a:c7:f6:82:4f:7f:49:3b:cf: 89:e7:91:80:46:76:b1:6c:92:8c:4f:22:36:fb:eb:29:30:5f: ce:99:fa:e8:29:dc:96:8d:97:b3:a7:d0:5e:24:25:0b:85:1a: 35:62:ce:c9:ea:c6:f0:39:44:dd:8e:de:6f:94:c1:62:67:72: 6e:6d:6e:f5:da:f6:b3:cb:2d:fe:3b:c4:7f:9e:57:8d:33:67: 15:7e -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBITANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDUucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDA1LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQD7PYp/XoPBq0d17VwACUeofKSYiEknJuHhGAEoeoXSWTzDBjbcRmD4e0m95Vmt EIm3prXPp6TvRxadMspVDKZl4B+XiCMxYKyZrHfeGIms7gFMKUbjXbm5uLakF9RV ONcjiVJamj4bcMoCxH2qJjZsUwncwsumj1r0LAgmKY4tMwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBRJCPSLSDzqpEmW2ra1ibWWLQIF5zCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEA3SDwzzZ6Z0oii3YC4g6qSSjybw8uhIU3LKg9 c1/8YCLsfXMfXMG3lWYrAEBtOsf2gk9/STvPieeRgEZ2sWySjE8iNvvrKTBfzpn6 6Cnclo2Xs6fQXiQlC4UaNWLOyerG8DlE3Y7eb5TBYmdybm1u9dr2s8st/jvEf55X jTNnFX4= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/scm-pkgs01.phx2.fedoraproject.org.csr0000644000175000017500000000144212231547317031345 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICFzCCAYACAQAwgdYxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEqMCgGA1UEAxMhc2NtLXBrZ3MwMS5waHgyLmZlZG9yYXByb2plY3Qub3Jn MSowKAYDVQQpEyFzY20tcGtnczAxLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAk BgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3 DQEBAQUAA4GNADCBiQKBgQDgOgMoR87kzNpnVc3ktJNDaajVbgahf6XhVkDvhJ1i q+QM0AHswWBmVboSKHSSgmIoyxF7Vjh+/pF1BudOVsQcAc8lLFTPaFrJAmsQRnll MB124V3heWt7790J2MGKDRD4fS3pC7xnpyVVrfA8bwlhobnoKUpl0fSsgEXXOSuL zwIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEAlwlaz9Fu6VYJS2Wga8Ha2dqZx+yw 8M1s71j1wV9w5E/nCDPQsZ4doWzGRsL3jUp1S7VduKLMDKFaHnpIZ0Eaizmx1zz5 sDSPMuZ5SrMib3LRG2hdjvsPaSNDOHp09XLHt7RKjJlQQMNb6HzHS6pxzSdTB+Jb oOppShUvvEIoUpQ= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app07.phx2.fedoraproject.org.crt0000644000175000017500000001002312231547317031510 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 9 (0x9) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app07.phx2.fedoraproject.org/name=shell-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c5:ad:18:17:6a:54:2a:15:7e:b0:4e:7c:e0:62: 13:ed:f6:5a:be:3e:27:a0:92:7e:23:d3:61:40:51: 7b:91:79:94:bd:7a:78:f0:10:30:98:d4:5f:38:77: 05:9d:b9:57:58:89:bc:72:e6:6d:55:a8:a3:01:43: 7b:45:62:9a:54:ef:4f:1c:c3:80:6c:c0:6c:95:87: 67:28:49:77:d1:bf:64:04:2a:14:88:c8:12:9b:7f: cd:41:0b:39:79:be:06:59:1e:3a:7c:6d:4f:81:9e: 21:6b:a6:be:cd:91:94:e7:da:d2:e8:eb:f6:37:d4: ff:94:fb:5b:5c:3e:55:7d:3d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: F5:F5:64:4B:7F:89:86:9C:2A:28:5A:36:B4:C3:CB:55:87:B2:C4:C8 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption e4:cd:1f:e4:c3:ac:2c:2b:6d:a4:35:96:5d:10:94:b7:c1:be: 5d:ba:6d:f1:ec:e2:6b:4c:a9:83:3e:52:23:f0:9a:74:8b:53: 7c:fc:36:bd:74:91:47:89:f1:4e:34:83:b4:ed:57:5b:b3:ba: 45:db:33:a9:4b:8a:88:e7:30:4d:cd:75:43:40:81:87:9d:af: fd:1f:10:4e:57:f6:82:e8:86:18:27:24:74:f8:60:7e:9c:90: 99:9d:13:56:97:f0:a9:87:7e:eb:39:31:ab:af:54:54:e5:73: 38:88:fe:80:74:cf:73:43:c2:ce:46:43:25:ec:99:6d:f0:63: 91:1c -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBCTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw Ny5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwNy5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxa0YF2pU KhV+sE584GIT7fZavj4noJJ+I9NhQFF7kXmUvXp48BAwmNRfOHcFnblXWIm8cuZt VaijAUN7RWKaVO9PHMOAbMBslYdnKEl30b9kBCoUiMgSm3/NQQs5eb4GWR46fG1P gZ4ha6a+zZGU59rS6Ov2N9T/lPtbXD5VfT0CAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQU9fVkS3+JhpwqKFo2tMPLVYeyxMgwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAOTNH+TDrCwrbaQ1ll0QlLfBvl26bfHs4mtMqYM+UiPwmnSL U3z8Nr10kUeJ8U40g7TtV1uzukXbM6lLiojnME3NdUNAgYedr/0fEE5X9oLohhgn JHT4YH6ckJmdE1aX8KmHfus5MauvVFTlcziI/oB0z3NDws5GQyXsmW3wY5Ec -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/1B.pem0000644000175000017500000001005212231547317023415 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 27 (0x1b) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app01.stg.phx2.fedoraproject.org/name=bodhi-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ab:ae:73:d5:a8:59:9b:56:0f:9a:93:ba:61:65: 4a:0f:b7:1c:0b:cb:01:28:ed:49:4c:93:f8:b5:13: 55:56:ab:b5:96:3a:e6:05:eb:28:01:06:52:3f:ee: 83:44:92:de:c2:9a:30:66:df:45:2e:8b:f4:aa:e0: 41:78:a6:84:94:58:b8:35:55:44:2f:37:46:e6:b5: c1:40:02:ab:ab:b8:90:6a:a2:61:5d:4f:d3:8d:32: ca:75:37:13:6f:e1:54:42:d6:b5:d0:73:a6:6b:65: f2:b2:70:76:0f:eb:33:0e:2c:c0:12:6c:9a:b6:ad: 16:47:74:47:33:47:99:0b:0f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 33:67:11:D6:5C:18:7A:EF:0F:21:38:02:06:67:CA:7C:8B:09:BC:66 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 3e:43:96:43:7d:f8:3d:d1:82:23:9a:be:8e:23:e0:3f:b2:be: e6:87:b0:46:98:e2:53:2a:8f:c4:1c:71:33:cf:f2:96:01:4d: 11:51:ea:73:17:bf:7a:cd:c9:77:e8:53:73:84:12:8d:bb:9d: 19:2f:65:1c:54:ba:ff:ff:b4:ea:ff:26:02:80:8a:00:2b:3e: 6e:57:c2:e1:76:ef:ca:8c:60:4d:ce:a3:b1:20:1c:95:33:d6: e4:5f:7e:b2:fa:94:8f:01:d3:48:4f:42:63:0e:61:7b:3d:7a: 2c:e1:d8:9d:48:e9:76:d6:d5:6a:da:a2:36:b8:d9:c9:e4:08: af:36 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBGzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZib2RoaS1hcHAw MS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmYm9kaGktYXBw MDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQCrrnPVqFmbVg+ak7phZUoPtxwLywEo7UlMk/i1E1VWq7WWOuYF6ygBBlI/7oNE kt7CmjBm30Uui/Sq4EF4poSUWLg1VUQvN0bmtcFAAquruJBqomFdT9ONMsp1NxNv 4VRC1rXQc6ZrZfKycHYP6zMOLMASbJq2rRZHdEczR5kLDwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQzZxHWXBh67w8hOAIGZ8p8iwm8ZjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAPkOWQ334PdGCI5q+jiPgP7K+5oewRpjiUyqP xBxxM8/ylgFNEVHqcxe/es3Jd+hTc4QSjbudGS9lHFS6//+06v8mAoCKACs+blfC 4XbvyoxgTc6jsSAclTPW5F9+svqUjwHTSE9CYw5hez16LOHYnUjpdtbVatqiNrjZ yeQIrzY= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app06.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032345 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 34 (0x22) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app06.phx2.fedoraproject.org/name=mediawiki-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ec:69:05:d7:8f:bd:b2:c6:dc:dd:9c:8e:28:af: 24:f3:29:58:eb:99:a9:ca:f0:c2:be:6d:96:ea:31: 9b:49:ed:39:5f:e6:37:1f:2c:a3:50:7d:3d:e0:76: 91:00:e7:5c:a5:30:9e:e5:ac:47:48:63:0d:d9:b0: a1:f2:e4:bc:9c:14:7a:4f:0f:3f:9b:c1:17:10:6c: 84:78:c8:ce:70:13:30:03:cf:3e:62:b1:77:f6:de: e1:bb:7f:1f:86:49:5f:35:99:e9:43:b8:aa:b7:2b: 09:72:09:fc:9b:ad:ff:cd:ea:f3:75:b2:fb:82:f2: 1a:17:af:18:f2:04:8a:da:bb Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 15:10:CE:7A:4D:16:2F:86:92:63:BD:68:F3:48:1E:B8:88:2B:2D:66 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 9e:b8:6c:c7:b2:49:c1:3f:c6:72:e0:0e:9f:02:0f:36:9e:31: 88:db:fd:0e:07:b9:56:00:31:1e:50:90:ca:2f:25:73:96:a2: 8b:d0:f0:b0:7f:28:97:39:15:ee:95:0c:dc:53:7c:0e:e4:28: ce:4e:3a:9c:1b:17:56:6c:e1:a2:bb:12:fa:4c:fd:24:c3:19: 20:a3:ee:ac:3c:45:a2:dd:64:2f:b8:59:73:0e:ec:65:b0:83: 86:f3:de:1c:c6:4b:1f:3b:20:80:c6:5e:63:84:bf:69:15:29: 4c:46:f6:d4:8f:17:d6:a1:e3:68:aa:32:8d:56:34:06:ef:a8: 2f:6c -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBIjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDA2LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDsaQXXj72yxtzdnI4oryTzKVjrmanK8MK+bZbqMZtJ7Tlf5jcfLKNQfT3gdpEA 51ylMJ7lrEdIYw3ZsKHy5LycFHpPDz+bwRcQbIR4yM5wEzADzz5isXf23uG7fx+G SV81melDuKq3KwlyCfybrf/N6vN1svuC8hoXrxjyBIrauwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQVEM56TRYvhpJjvWjzSB64iCstZjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAnrhsx7JJwT/GcuAOnwIPNp4xiNv9Dge5VgAx HlCQyi8lc5aii9DwsH8olzkV7pUM3FN8DuQozk46nBsXVmzhorsS+kz9JMMZIKPu rDxFot1kL7hZcw7sZbCDhvPeHMZLHzsggMZeY4S/aRUpTEb21I8X1qHjaKoyjVY0 Bu+oL2w= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/1D.pem0000644000175000017500000001005212231547317023417 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 29 (0x1d) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app01.phx2.fedoraproject.org/name=mediawiki-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d3:c7:22:b0:a4:17:63:3e:c5:a9:b1:6a:7e:d6: 5e:49:44:83:81:5f:e0:05:f4:04:86:f7:3d:95:a3: 6c:43:d8:78:cd:11:11:ec:50:74:1e:68:7b:78:52: ff:d0:60:1e:6d:69:60:0a:78:f1:47:28:d0:07:58: 05:1f:5d:fa:c7:1c:1b:af:bc:3d:10:8e:5f:7e:b0: 26:96:6e:2d:da:85:71:6e:d0:05:b6:76:c3:ed:24: 2e:8e:6d:b1:d0:8d:77:0b:21:b1:07:99:b1:13:70: ee:91:66:01:16:31:f9:b6:76:9a:04:c6:a4:1a:88: 49:f4:89:5b:0c:7e:d4:39:05 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 58:5B:64:3E:FC:59:09:90:6D:7C:DF:96:C7:F2:FA:52:50:EE:25:06 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 30:4f:4e:da:61:06:fd:b3:42:b8:31:67:d8:40:72:33:ed:48: 01:c7:32:4a:00:cd:e6:25:cd:42:b4:27:67:b8:75:f7:9e:24: 43:fe:96:8e:f2:6a:76:35:4e:48:e2:ca:0c:f0:73:91:80:40: 1d:69:ab:c0:35:64:30:1f:86:8f:79:f7:79:92:2c:de:6e:4f: e9:de:ec:94:41:8b:bc:77:7f:13:38:0e:06:63:1c:02:ce:fd: 11:ea:fd:6e:62:0d:de:d7:39:9c:17:8b:3c:f9:b5:78:e5:db: a6:a5:8f:d8:07:21:bf:bb:8a:27:54:99:93:10:75:3d:92:da: a9:e4 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBHTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDAxLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDTxyKwpBdjPsWpsWp+1l5JRIOBX+AF9ASG9z2Vo2xD2HjNERHsUHQeaHt4Uv/Q YB5taWAKePFHKNAHWAUfXfrHHBuvvD0Qjl9+sCaWbi3ahXFu0AW2dsPtJC6ObbHQ jXcLIbEHmbETcO6RZgEWMfm2dpoExqQaiEn0iVsMftQ5BQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBRYW2Q+/FkJkG1835bH8vpSUO4lBjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAME9O2mEG/bNCuDFn2EByM+1IAccySgDN5iXN QrQnZ7h1954kQ/6WjvJqdjVOSOLKDPBzkYBAHWmrwDVkMB+Gj3n3eZIs3m5P6d7s lEGLvHd/EzgOBmMcAs79Eer9bmIN3tc5nBeLPPm1eOXbpqWP2Achv7uKJ1SZkxB1 PZLaqeQ= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app07.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031520 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMic2hlbGwtYXBwMDcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMic2hlbGwtYXBwMDcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAMWtGBdqVCoVfrBOfOBiE+32Wr4+J6CSfiPTYUBR e5F5lL16ePAQMJjUXzh3BZ25V1iJvHLmbVWoowFDe0VimlTvTxzDgGzAbJWHZyhJ d9G/ZAQqFIjIEpt/zUELOXm+BlkeOnxtT4GeIWumvs2RlOfa0ujr9jfU/5T7W1w+ VX09AgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQB3hogjYEbMmyI7z2TpyoKbqxzU VCTWUymOJBcO0esBuGrc004grY92HhajHsUzC6W1Qejuu0B7A1jC9rzTXSu5ENYl jiI97nOOW78yIg8NO6bFF4hUYli+GoEE/alajVU1Jpg4fP4QasZCcCSreAVfi5L3 eSdQN0nfiNVdpu56QA== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032305 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMG8gSgOQyAoI9x/ kx9+A2a3ZIaZKsU63cB26SZLwat3WFTBtRNnMlGFbR/QKmtHZmvXyS3e9whpDLJi MSKcgMGC+thflSvXSLgtb/AgTLnHmpuVMMzrEIDp2+hQ/0+kY7XRAKFEbeZc8Xc/ sQ3KivvMvokNEQqTyhYFCM3qnrGdAgMBAAECgYEAtHXYgO04DZ4WOXAEJROGK4ms c8v8kRcSNBMPfgKW9hcHCnwdJWO89T6ptTZ8LM2nU9D+rmHADe98SjU4u5q4Ouh9 RHRPDCJffERZD/pmEBR7I7F4JuNrS/I7xpN6GpA29b8EhHW/3X5wIENukCpPkIWU Js8ZE8d42sPKAUDPOOkCQQDxdsEIlaXlplPddLruFJRdr+hT8aT7trwWOARGDoE7 nleNBD9MzxrKJD/+t/2pLs3udIJPDlJeFkNKXXg9fsfXAkEAzWY2WUo3j3CHGlcP 6MgTUgiXVwl+ZCP32PeZZoiUU78YRnEzXgi1/ftxU/uoBHFCyhTvK0/gm7QzGC6y nm/TqwJBANFRTM0QTRvjL9hOFK3GkUcV8qSyWX8LTclFDg9dC5KPFP5drDH9Zw/M lN1OykobFNGdlkjJ9YUyb2rL1Cwa90kCQHKZJZeZ3ffsy6Q5kQnKn2T0oCOSi28p 1j26n17iswcqpkufGw7LA2dKY8d8sBiSbLY9Cdf7gBC/cIZ8f3IAaHMCQAlQJ3GZ LxG1s6YxNH6crksxaf5Uew0pejpzol7lDU4doKeitOfJw2ullIxbc1QgfJBFAJma 7KdubK65Xyz1qDM= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app05.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031515 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAL/Ls1lQorzeBt7m 5kfjRRIOhqBbjoSKSkSA9wa/PV9tAeDceE2vXLnbXB1hx8JbqRuCZlYfK88zFGyc OTYhQr5gynlTO46pPLYYEZbQc8ZcdAsKp0idPhwMHrfJ89FHKNFHMZLJ1LlhVPeS fAvZ1IEeQYTiP5BEAFvv3GnPeVxZAgMBAAECgYA/eTGUuGvzJ2OMt0u0tNEyBZ6m SUakNIQZobifAgFUqGW7vhsOUp/UXnVgv/B1MRKJKSGnFM/R1azHuPfyIxXMCtPq ZQT0d+oRLx+w+K/G0956IP6vHDyD+WrSdtM1Tp+waE81nWqTHlKDANt89GBNiuWJ WKV+8xdcNSEf6NlvFQJBAONAA4O2YeEn+/vOH6ETwvZEclaOgPuVna5cfWnAtFJY 3cka2KHnA2vLB2kAs7bDjHbls6es7eo5aAhNmRr9f18CQQDYD2u7P/2R+wGx1dwZ Hf3nLgDKXyY8NsRiPAnkb1rs2F3Q4Y34GYSccNEplQ3NSgl45neCqCsDYsBvzGpx NpdHAkEAzsgG6qjgc7KgdcZfvYBv3Qr3R4+wCj1gF7KNY9c3vd6jIUVObjP5RvKd sYwz+1AA1oe5bA/NBV5rLXL+qDKW3QJBALKg9TmnqxYRBxKnNEQT1sJV91NZHTx1 LyHkb21MX0knjVDP2lc/ibLpVxRg5jtOtcweBrqgHIe9EkqcH3igYKsCQDOk1GbT lquS7USOMAqdfqxtnVOcF5UrKgBnL2yjjM6aejz+YJ8b2/JGnqfwwPrHfG5tiOTJ rsFXvSBgalYgBBQ= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app07.phx2.fedoraproject.org.crt0000644000175000017500000001002512231547317031470 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 26 (0x1a) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app07.phx2.fedoraproject.org/name=bodhi-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:b1:c9:1d:24:dd:fd:81:5d:ce:fb:30:d0:4f:d3: 4e:5a:5d:f7:1d:a6:db:9d:af:4e:e7:89:cb:83:dd: 22:c3:6b:4c:c6:2e:36:7e:8a:3e:50:e1:93:cc:c9: b2:fb:97:9d:82:b4:f7:45:d5:52:cc:fb:62:b6:b2: a3:bf:03:11:15:a9:76:44:d9:89:68:6b:d8:f9:bc: 52:54:81:47:9b:2b:d3:62:af:be:bd:16:da:09:a8: 30:0d:15:c6:fc:83:b9:c5:97:91:f9:c6:2a:93:02: 2c:d5:70:9d:83:20:07:d9:34:0e:de:dc:07:44:cd: b4:84:d3:cc:28:70:f2:88:8b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A1:DB:45:9B:BC:F2:0E:99:B9:E9:C9:67:95:B1:94:7A:F1:6A:C7:9A X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 59:c6:61:f6:ed:4c:81:e6:fc:da:e7:4b:42:f2:db:4a:a1:77: b4:31:ef:bf:93:e6:72:b7:6e:48:86:e9:98:36:ff:03:ad:4d: c8:51:db:39:66:86:66:dc:fe:63:86:66:86:d4:07:e5:49:4f: 15:f1:32:17:81:cd:15:b9:b7:66:f3:be:33:2a:28:a3:3a:94: 82:db:53:1b:f3:da:52:3b:84:35:06:a7:f4:f8:26:ff:9a:90: 9f:1d:b5:7c:79:82:09:76:53:82:a1:84:f2:33:72:05:89:46: df:75:b0:ba:ed:bc:2a:c5:a0:6b:29:80:df:24:1c:08:78:bd: 4e:bf -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBGjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw Ny5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwNy5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsckdJN39 gV3O+zDQT9NOWl33Habbna9O54nLg90iw2tMxi42foo+UOGTzMmy+5edgrT3RdVS zPtitrKjvwMRFal2RNmJaGvY+bxSVIFHmyvTYq++vRbaCagwDRXG/IO5xZeR+cYq kwIs1XCdgyAH2TQO3twHRM20hNPMKHDyiIsCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUodtFm7zyDpm56clnlbGUevFqx5owgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAFnGYfbtTIHm/NrnS0Ly20qhd7Qx77+T5nK3bkiG6Zg2/wOt TchR2zlmhmbc/mOGZobUB+VJTxXxMheBzRW5t2bzvjMqKKM6lILbUxvz2lI7hDUG p/T4Jv+akJ8dtXx5ggl2U4KhhPIzcgWJRt91sLrtvCrFoGspgN8kHAh4vU6/ -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000151612231547317034625 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICOTCCAaICAQAwgfgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzE7MDkGA1UEAxMyZmVkb3JhdGFnZ2VyLXBhY2thZ2VzMDEuc3RnLnBoeDIu ZmVkb3JhcHJvamVjdC5vcmcxOzA5BgNVBCkTMmZlZG9yYXRhZ2dlci1wYWNrYWdl czAxLnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdh ZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC gYEA09CCokzBSj/jRaQI8LZG+BRN0T/ajXF6uBcXO1zPSjkh+lyVI8GLTIAecjeE klZHUDRX/bt5S4s5rxpvPa8P8jTJ6JxLCcVqBUJxmpAvlkmWpQ9/2WhJX++HkKMF JeZEUEElJRF/n5YDnQL1dE4+wj2Eb1psPD60xc+V/IcOY+cCAwEAAaAAMA0GCSqG SIb3DQEBBQUAA4GBABOwvv9sET2RjRmDAPMAJ/CUv+az3Lop/QHfAALoBn2bAUZN aMOfxLLe1vFcqWP0ghi5hU4eP6iWMJV6q5G8W6Jrg4RLQT5Qqr9mfPslFMXuTYOR tJtodTodpl+uKURDtJbpczCvcfUziVqqObxokJWAB6A8Qpl7rkLYrE/SofXj -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app06.phx2.fedoraproject.org.crt0000644000175000017500000001002312231547317031507 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 8 (0x8) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app06.phx2.fedoraproject.org/name=shell-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ac:33:0a:e3:3c:da:cb:6a:12:c9:04:e0:31:61: 25:5f:d8:b2:69:7a:d9:ca:f9:b3:8e:cd:6f:b0:33: fa:dd:cb:ef:a6:3a:d2:60:69:2b:6a:04:e9:83:8e: 63:10:1f:81:f4:58:23:8f:7a:e4:c4:b9:12:d6:f2: 42:04:e3:72:0d:22:04:33:30:76:2d:f4:4c:f3:fc: 62:51:49:eb:87:29:d8:95:89:2f:ae:54:5d:a4:b1: 14:d7:8f:ef:66:df:97:d4:20:1b:26:5f:b8:e6:84: 49:b7:8f:b2:1f:b5:49:f8:ba:f8:ae:24:c5:e2:5a: e4:36:0f:b7:85:fa:bf:f5:e3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 72:6C:B1:91:AD:97:38:0A:9C:D2:4C:23:F1:04:BD:D7:DD:21:34:31 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption c7:4b:91:26:dc:d8:33:3c:f5:8b:bd:05:b4:7c:9a:8a:3b:b3: 74:ee:4e:fa:39:87:39:7e:0e:8f:f6:b9:c6:02:b3:81:2c:a4: 79:1b:9a:7a:31:9b:c9:df:80:16:9d:f6:21:86:01:6a:84:92: f9:48:9f:40:7b:0b:35:c2:6a:e4:5e:91:d1:63:33:7a:f8:02: 2f:56:19:57:40:7c:fd:96:2c:b8:80:a1:89:42:65:e8:c9:35: fc:04:67:60:7c:5d:e9:d1:02:75:6d:db:34:fe:c3:c7:70:88: 98:cc:66:61:7c:77:39:04:4e:f1:c7:b7:4f:2a:c4:30:60:f7: 2b:9a -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBCDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw Ni5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwNi5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArDMK4zza y2oSyQTgMWElX9iyaXrZyvmzjs1vsDP63cvvpjrSYGkragTpg45jEB+B9Fgjj3rk xLkS1vJCBONyDSIEMzB2LfRM8/xiUUnrhynYlYkvrlRdpLEU14/vZt+X1CAbJl+4 5oRJt4+yH7VJ+Lr4riTF4lrkNg+3hfq/9eMCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUcmyxka2XOAqc0kwj8QS9190hNDEwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAMdLkSbc2DM89Yu9BbR8moo7s3TuTvo5hzl+Do/2ucYCs4Es pHkbmnoxm8nfgBad9iGGAWqEkvlIn0B7CzXCauRekdFjM3r4Ai9WGVdAfP2WLLiA oYlCZejJNfwEZ2B8XenRAnVt2zT+w8dwiJjMZmF8dzkETvHHt08qxDBg9yua -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/revoke-test.pem0000644000175000017500000000362712231547317025435 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE----- MIIDyzCCAzSgAwIBAgIJAI7rKNipE518MA0GCSqGSIb3DQEBBQUAMIGgMQswCQYD VQQGEwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoT DkZlZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1z ZzEPMA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFw cm9qZWN0Lm9yZzAeFw0xMjA3MTUyMTE4NTFaFw0yMjA3MTMyMTE4NTFaMIGgMQsw CQYDVQQGEwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNV BAoTDkZlZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZl ZG1zZzEPMA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA9J6RmGr1 LzSJ5Fau2wdkVUiS5WXBcd0bNPyUJ9/G7t9SrycnLnEK4GQh2B525p4SCqvsHZtM 8rqii/Y2PPF5PbpgVjJLYsJk4SSv84aH+VPYcaEtYlPClXgHb3J9jgAxgHBHkJMQ 7mvxiIau7frKFqmJGZkxO2M+Sv8eLCKLJP8CAwEAAaOCAQkwggEFMB0GA1UdDgQW BBQAmKXV58RVDoSjZ/5mShbgBBXdITCB1QYDVR0jBIHNMIHKgBQAmKXV58RVDoSj Z/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5DMRAw DgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEPMA0GA1UE CxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1zZzEmMCQG CSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmeCCQCO6yjYqROdfDAM BgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAN5r+1rbeTyGDdlelbqWOXBu uS0a9BfusO0uwf3tHK9zeB5CDKFgxdfSZ+Fxg1w2HFRHhCOYoZ2ASPfbyANTzxUF fVAId1uhBD1SlhXpTb3Ndo4uXfalf3W8MrQzFiVHbevvfsyd+RwoVT/PDokE3i4A fftCd0uwvSqVgyE28SFt -----END CERTIFICATE----- -----BEGIN X509 CRL----- MIIBfDCB5jANBgkqhkiG9w0BAQQFADCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgT Ak5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEP MA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1z ZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcXDTEyMDcx NTIxMTg1MloXDTEyMDgxNDIxMTg1MlowFDASAgECFw0xMjA3MTUyMTE4NTJaMA0G CSqGSIb3DQEBBAUAA4GBAGP/pXsMWD0AhgUs01qkscO/DU6QarFWAMqTjbrL5V4e eEvyGOBDkOKgPsRKHF7x3ahLb14BGFTxCH0PosJsXUNQ8aSr24xlNDZ7O333PG1q BfB1UONpQ0Gt0w/vEu+YUK53MXMEd8mkN3AG6ckqk2puVTlM8+c5RzMIauftWfKQ -----END X509 CRL----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032307 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmc2hlbGwtYXBwMDEuc3RnLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJnNoZWxsLWFwcDAxLnN0Zy5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwbyBKA5DICgj3H+TH34DZrdkhpkq xTrdwHbpJkvBq3dYVMG1E2cyUYVtH9Aqa0dma9fJLd73CGkMsmIxIpyAwYL62F+V K9dIuC1v8CBMuceam5UwzOsQgOnb6FD/T6RjtdEAoURt5lzxdz+xDcqK+8y+iQ0R CpPKFgUIzeqesZ0CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIC1EB6I/zG0sFcB 4DVg0ioglhpHsdN9V5h+iK7au39QZIstNpPcp9EjSutdsR2UvPTXIv2bl98Od2h+ 9AeMCHKAsafFxDk9bRcgaX8qRPeVJgzgsNcxM1jfJBMCLKxw3NEu2qX9TL5i3c80 VODBtFVv7OIrMHQKpDMFJc5DcIOG -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/01.pem0000644000175000017500000001001012231547317023365 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:b1:a2:5c:d7:10:6a:83:a4:1d:65:66:51:80:f5: 72:2d:15:af:77:92:ad:1d:ad:80:d8:c8:e2:ee:cf: 10:3b:07:02:1e:4f:18:c4:47:d6:82:8d:53:ff:c2: 1b:72:49:fe:62:fe:68:26:f0:91:8f:d7:e0:9e:b8: 46:96:ef:ef:4b:07:f4:21:10:09:d9:90:92:a6:25: 3a:29:ca:b6:e8:69:06:df:ba:a7:73:b1:71:c3:6c: 1c:d3:7d:d6:ff:3a:ce:15:b7:bc:7b:fc:6c:6b:d6: 6f:a7:fd:e0:28:59:07:49:bf:66:9c:3e:1f:5f:b8: 85:c4:61:51:f9:67:00:40:a7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: Easy-RSA Generated Server Certificate X509v3 Subject Key Identifier: 50:DA:1E:62:70:71:C2:72:0D:67:F3:F1:24:A2:E2:9E:31:E1:A3:F0 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Server Authentication X509v3 Key Usage: Digital Signature, Key Encipherment Signature Algorithm: sha1WithRSAEncryption e8:01:80:e4:eb:85:87:d5:be:94:80:e4:e5:d2:df:e8:c6:b5: 38:1e:69:31:c0:73:1e:00:60:7b:f4:5f:5c:cb:68:d0:94:d0: bd:9c:ea:33:bd:a1:3a:83:cd:cf:29:57:8b:95:02:d5:bd:fb: fc:33:d8:a8:da:05:84:67:e2:f4:8b:ba:53:e3:e4:67:0d:52: c1:ce:9f:a9:63:ca:86:59:bd:fa:e7:9d:48:8f:b1:e1:fe:a0: a5:6b:0d:6f:03:9c:30:26:80:1b:90:30:e6:a2:ca:4c:29:1e: 74:98:5d:cf:34:fb:d7:fa:7a:3a:af:51:96:87:02:dc:18:0a: fb:83 -----BEGIN CERTIFICATE----- MIIEKzCCA5SgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALGiXNcQaoOkHWVmUYD1 ci0Vr3eSrR2tgNjI4u7PEDsHAh5PGMRH1oKNU//CG3JJ/mL+aCbwkY/X4J64Rpbv 70sH9CEQCdmQkqYlOinKtuhpBt+6p3OxccNsHNN91v86zhW3vHv8bGvWb6f94ChZ B0m/Zpw+H1+4hcRhUflnAECnAgMBAAGjggFxMIIBbTAJBgNVHRMEAjAAMBEGCWCG SAGG+EIBAQQEAwIGQDA0BglghkgBhvhCAQ0EJxYlRWFzeS1SU0EgR2VuZXJhdGVk IFNlcnZlciBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUUNoeYnBxwnINZ/PxJKLinjHh o/AwgdUGA1UdIwSBzTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAx CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUG A1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMG ZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZl ZG9yYXByb2plY3Qub3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwEw CwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBBQUAA4GBAOgBgOTrhYfVvpSA5OXS3+jG tTgeaTHAcx4AYHv0X1zLaNCU0L2c6jO9oTqDzc8pV4uVAtW9+/wz2KjaBYRn4vSL ulPj5GcNUsHOn6ljyoZZvfrnnUiPseH+oKVrDW8DnDAmgBuQMOaiykwpHnSYXc80 +9f6ejqvUZaHAtwYCvuD -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app02.stg.phx2.fedoraproject.org.crt0000644000175000017500000001007612231547317033143 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 37 (0x25) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app02.stg.phx2.fedoraproject.org/name=mediawiki-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c4:b1:be:dc:9c:95:bf:95:59:1b:c3:e7:e8:6b: 55:84:db:a5:e9:46:96:6c:d6:51:5e:9c:8c:62:c0: b0:98:86:4d:e2:1f:56:5d:e2:d9:2d:61:00:06:3f: b8:9e:87:50:db:c9:7c:d8:7e:56:03:35:b9:58:07: c2:aa:38:d7:ea:b8:8a:87:a1:09:f8:4c:13:d3:01: 8e:c3:2e:6e:c0:b6:f8:6d:a2:f6:79:b1:4c:83:6f: f8:11:a1:b2:e2:75:15:b0:ca:61:77:4f:4b:1c:a5: b9:40:d9:46:8a:41:00:dc:60:99:3e:cd:eb:bf:31: 13:7a:e6:a8:3c:06:7f:83:23 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 02:62:D0:F2:5B:50:6C:35:06:25:F0:69:02:A7:C8:26:C1:30:DF:9D X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 2b:07:3b:a1:e5:ed:bc:0e:53:b4:00:84:79:04:b0:ea:19:ac: 17:b4:18:74:7c:a9:56:4c:ca:7e:79:94:e4:86:7f:81:10:3b: cc:b2:22:af:0f:8b:2e:cf:be:38:86:17:b7:ae:fe:cc:e5:42: 26:80:24:a7:78:52:a3:9f:75:8b:74:ea:11:2b:9c:5e:bf:b6: 05:40:04:6b:dd:fd:03:ba:28:89:84:a5:73:f1:f9:e8:93:65: 68:4c:b9:9b:2f:22:bc:71:53:48:0b:48:76:5b:f3:27:c9:3c: e9:cd:f8:5c:48:d5:c2:e6:4e:77:79:8f:a6:39:27:96:9f:33: 74:2a -----BEGIN CERTIFICATE----- MIIEWTCCA8KgAwIBAgIBJTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB6DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTMwMQYDVQQDEyptZWRpYXdpa2kt YXBwMDIuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMzAxBgNVBCkTKm1lZGlh d2lraS1hcHAwMi5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3 DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBAMSxvtyclb+VWRvD5+hrVYTbpelGlmzWUV6cjGLAsJiGTeIfVl3i 2S1hAAY/uJ6HUNvJfNh+VgM1uVgHwqo41+q4ioehCfhME9MBjsMubsC2+G2i9nmx TINv+BGhsuJ1FbDKYXdPSxyluUDZRopBANxgmT7N678xE3rmqDwGf4MjAgMBAAGj ggFXMIIBUzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5l cmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFAJi0PJbUGw1BiXwaQKnyCbBMN+d MIHVBgNVHSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQsw CQYDVQQGEwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNV BAoTDkZlZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZl ZG1zZzEPMA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsG A1UdDwQEAwIHgDANBgkqhkiG9w0BAQUFAAOBgQArBzuh5e28DlO0AIR5BLDqGawX tBh0fKlWTMp+eZTkhn+BEDvMsiKvD4suz744hhe3rv7M5UImgCSneFKjn3WLdOoR K5xev7YFQARr3f0DuiiJhKVz8fnok2VoTLmbLyK8cVNIC0h2W/MnyTzpzfhcSNXC 5k53eY+mOSeWnzN0Kg== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages02.phx2.fedoraproject.org.crt0000644000175000017500000001011612231547317034027 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 42 (0x2a) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedoratagger-packages02.phx2.fedoraproject.org/name=fedoratagger-packages02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ce:e5:a4:56:4a:9e:cc:46:32:48:36:c2:dd:60: 56:34:1f:d2:50:06:8e:7d:41:c2:64:9a:16:29:15: 72:10:ba:83:87:e0:29:99:fd:f9:1b:36:06:64:20: ee:94:92:00:f6:8a:1d:8e:0d:dc:c7:ef:b1:26:ae: 58:70:b0:9e:7a:dd:2a:ef:b7:13:1e:ce:06:9e:5e: b0:b7:46:f8:ba:29:56:df:57:fa:9e:f6:e7:66:4c: c6:4b:99:2a:0f:7d:98:d6:dd:26:50:38:af:0e:74: 34:0a:50:23:7b:dc:fc:c5:ed:48:76:e0:fc:4e:c8: 50:61:7c:18:4d:41:d4:27:0d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: EA:E7:19:57:F0:2A:87:D3:FE:C5:04:6A:08:DA:93:5A:D4:C2:EF:14 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 90:42:74:42:ea:0c:9e:05:85:e9:15:87:b1:16:a2:52:4a:f1: 10:a0:64:f3:52:b3:d6:1f:54:48:aa:a7:f7:63:5e:7a:cc:a6: 10:ad:3c:af:1f:26:1f:19:1c:e9:97:a6:9d:bd:a9:c5:ab:85: 2d:57:83:f3:6d:cb:9a:48:71:7c:66:f8:bc:56:16:35:a4:80: 9c:fe:6e:19:ec:cb:dc:0c:11:75:c3:3c:3f:73:7a:6c:c0:81: 1c:93:f5:50:1c:da:a9:d9:9c:71:c8:95:2a:e4:88:99:94:e9: 9c:0f:b7:9d:89:6d:6f:0c:49:5b:26:eb:7b:23:e6:d1:a5:c2: 5d:eb -----BEGIN CERTIFICATE----- MIIEYTCCA8qgAwIBAgIBKjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB8DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTcwNQYDVQQDEy5mZWRvcmF0YWdn ZXItcGFja2FnZXMwMi5waHgyLmZlZG9yYXByb2plY3Qub3JnMTcwNQYDVQQpEy5m ZWRvcmF0YWdnZXItcGFja2FnZXMwMi5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYw JAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEAzuWkVkqezEYySDbC3WBWNB/SUAaOfUHCZJoWKRVy ELqDh+Apmf35GzYGZCDulJIA9oodjg3cx++xJq5YcLCeet0q77cTHs4Gnl6wt0b4 uilW31f6nvbnZkzGS5kqD32Y1t0mUDivDnQ0ClAje9z8xe1IduD8TshQYXwYTUHU Jw0CAwEAAaOCAVcwggFTMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3kt UlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU6ucZV/Aqh9P+xQRq CNqTWtTC7xQwgdUGA1UdIwSBzTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaak gaMwgaAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWln aDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0G A1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYB BQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAJBCdELqDJ4FhekV h7EWolJK8RCgZPNSs9YfVEiqp/djXnrMphCtPK8fJh8ZHOmXpp29qcWrhS1Xg/Nt y5pIcXxm+LxWFjWkgJz+bhnsy9wMEXXDPD9zemzAgRyT9VAc2qnZnHHIlSrkiJmU 6ZwPt52JbW8MSVsm63sj5tGlwl3r -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001005112231547317032270 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 13 (0xd) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-fas01.stg.phx2.fedoraproject.org/name=shell-fas01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:de:ab:04:fd:4c:1b:4b:f1:9b:ac:f4:ba:a4:ab: d2:ea:fb:0e:f2:07:eb:e3:af:73:6e:a5:2b:61:1c: 43:f2:8b:6a:e2:03:a1:6b:02:70:96:fa:44:a9:7c: d1:b0:1c:bc:f4:b1:b8:89:f8:bb:03:8c:10:b9:0c: e4:62:8e:c5:95:b7:38:1a:e2:82:24:6d:9f:86:ac: 34:5f:04:04:43:5c:a3:05:82:bc:b1:a0:b3:e6:9a: d0:12:c9:7c:56:55:d5:51:11:51:b8:2e:87:43:1f: 2c:85:7f:70:87:44:93:cf:d7:95:9b:38:fa:ef:27: e6:25:f8:01:8d:70:ea:3b:69 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 18:2B:D1:42:4E:D1:DE:2E:4A:39:66:9B:1D:B9:21:9C:38:A9:CE:78 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 61:52:82:64:2d:70:0e:14:a2:5a:34:20:f3:5e:81:e4:4a:37: 45:1b:64:ca:78:58:ff:18:6d:66:be:47:a3:07:31:ba:2a:d7: 81:93:32:37:34:7d:d9:7c:89:1c:e8:30:eb:9d:a1:30:b3:b5: 95:29:28:bc:66:6d:55:5b:75:3a:f7:b9:55:87:49:10:e5:d9: b6:d0:71:22:46:96:b3:23:c8:29:b2:58:f8:45:6d:03:f3:d5: ff:96:11:a8:0b:ec:b1:b1:7b:a0:ad:9c:0e:93:26:df:de:f4: 69:f2:cd:35:ec:85:8d:ac:56:59:c9:f3:cb:77:6e:96:ee:cb: 65:3e -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBDTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZzaGVsbC1mYXMw MS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmc2hlbGwtZmFz MDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDeqwT9TBtL8Zus9Lqkq9Lq+w7yB+vjr3NupSthHEPyi2riA6FrAnCW+kSpfNGw HLz0sbiJ+LsDjBC5DORijsWVtzga4oIkbZ+GrDRfBARDXKMFgryxoLPmmtASyXxW VdVREVG4LodDHyyFf3CHRJPP15WbOPrvJ+Yl+AGNcOo7aQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQYK9FCTtHeLko5ZpsduSGcOKnOeDCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAYVKCZC1wDhSiWjQg816B5Eo3RRtkynhY/xht Zr5HowcxuirXgZMyNzR92XyJHOgw652hMLO1lSkovGZtVVt1Ove5VYdJEOXZttBx IkaWsyPIKbJY+EVtA/PV/5YRqAvssbF7oK2cDpMm3970afLNNeyFjaxWWcnzy3du lu7LZT4= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app04.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031514 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOiuRmkaDhB/k90Y z+Bide9Eb/x508ZrDCeELrVBU+utJEEcGyyO2ocXmxI1z9TnaJNHErbjEOeqcx78 gkcfkjC6iS42kbZVMsASz3VrW5gGBlySpf62JtzqEnK+K+W0YuISgpTYecYUD2Nk rXtz1IOdwrVUXtWrPsEuZosu70I1AgMBAAECgYEAoif6R/rxfEv812QYUy8rM5GF XfXlQe2ObeevyX/6pU9n6bxVr8rqvqUT3DAGZEDVX3Zzs2Mxf9IJIrolbL2y2dCm w6zSE53p3AKjz7dEBj1RDWSiuoRbh87TqJ3Oe2p7pSLb0IV+zIz0F5pTKZXc8nZh x3cqXylHRktoqAPuIY0CQQD1P2STf+dpfRehwCMaoP/1ZJWS0wiB7WYdpNuI6WMa ENNwbjd258oWfOshcPEmIvdFjDpn53ZjSFzOvDkaXszPAkEA8uHVltz2GDYMRrWB CHm5SjSb8tYiItCb9rXGmKMSq3/s7sM/BbrBW3s6YtKD8QzTKDceuIIe8UtoDWlL PpWpuwJARRJ3pztM198Netb8jBFwRZLwtYuOR9mu+wZldmgVK1A13OKN6IVb232P U7nVkWIjtojKIl2EcG3/BZLpmk287QJAT0xGZPQNcQgsZ+WYlEDRqxWUGOuqx30e fqUIiwsq7E1e+PFMIT3BJXINNPiQVWIfitC8OfdZzOQWu9I12+AXQwJADY9y3p79 SY7wrOzuxmmM9wivDI1GYdGMFYA2/K76ciJRlS15t8TFIWtuGC8/s7nIUM1dzVqL RUFWCZQqcSkEeA== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-pkgs01.phx2.fedoraproject.org.crt0000644000175000017500000001003312231547317031667 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 18 (0x12) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-pkgs01.phx2.fedoraproject.org/name=shell-pkgs01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d5:37:fb:d4:8a:a5:30:40:11:25:eb:66:ba:8d: 55:31:68:a3:e0:1a:77:db:c7:37:a3:84:44:ed:93: 3f:d4:32:8b:59:a1:fb:8b:64:6f:2f:54:f6:69:aa: fa:b0:88:ff:bb:b5:1d:4b:18:a7:1b:ec:54:c2:d0: 56:a5:da:78:4b:17:13:3b:8b:93:f3:7c:df:3d:16: 21:c4:90:7e:1d:6b:ef:13:31:be:41:4e:21:a7:97: 9c:2b:7b:9b:32:7e:62:44:5f:59:ac:31:74:12:ba: d5:cf:14:0d:58:42:1a:49:b9:c6:2a:53:e8:87:77: 12:3e:2e:ea:e3:4d:40:ff:8b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A5:8B:A6:2A:28:0E:3C:4E:6C:81:45:A4:4E:B9:3C:38:15:9F:58:DE X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 56:40:ad:61:bd:82:0a:e8:f7:6c:59:cf:2b:08:65:69:72:d2: 6d:28:b5:d4:fd:2a:88:11:45:ac:93:52:92:fd:1f:05:94:d2: bb:d5:3b:0f:79:cb:0d:f3:00:60:9d:e8:7d:2c:15:cf:b3:d8: a0:e5:60:d3:d9:bf:45:fb:f0:10:92:ce:bd:eb:30:da:70:45: 06:1e:c2:71:83:f0:7c:92:e5:43:01:63:f4:2e:4d:60:ec:70: 93:40:6d:d1:00:46:7c:a9:2d:2c:00:df:56:44:38:60:88:4a: b7:df:79:6e:2d:d9:3d:d3:f7:e7:31:66:b4:37:0d:85:52:76: ec:27 -----BEGIN CERTIFICATE----- MIIESzCCA7SgAwIBAgIBEjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSwwKgYDVQQDEyNzaGVsbC1wa2dz MDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEsMCoGA1UEKRMjc2hlbGwtcGtnczAx LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZl ZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVN/vU iqUwQBEl62a6jVUxaKPgGnfbxzejhETtkz/UMotZofuLZG8vVPZpqvqwiP+7tR1L GKcb7FTC0Fal2nhLFxM7i5PzfN89FiHEkH4da+8TMb5BTiGnl5wre5syfmJEX1ms MXQSutXPFA1YQhpJucYqU+iHdxI+LurjTUD/iwIDAQABo4IBVzCCAVMwCQYDVR0T BAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENlcnRpZmlj YXRlMB0GA1UdDgQWBBSli6YqKA48TmyBRaROuTw4FZ9Y3jCB1QYDVR0jBIHNMIHK gBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMCVVMxCzAJ BgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJv amVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkT BmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmeC CQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJ KoZIhvcNAQEFBQADgYEAVkCtYb2CCuj3bFnPKwhlaXLSbSi11P0qiBFFrJNSkv0f BZTSu9U7D3nLDfMAYJ3ofSwVz7PYoOVg09m/RfvwEJLOvesw2nBFBh7CcYPwfJLl QwFj9C5NYOxwk0Bt0QBGfKktLADfVkQ4YIhKt995bi3ZPdP35zFmtDcNhVJ27Cc= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/11.pem0000644000175000017500000001010012231547317023366 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 17 (0x11) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-packages01.stg.phx2.fedoraproject.org/name=shell-packages01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:da:64:64:a5:49:87:43:64:ff:43:dc:88:84:97: 3f:44:4a:d7:e1:dc:32:92:fc:e1:4d:a8:ab:35:39: 19:3f:d4:a7:1c:20:5f:9c:7c:d6:2f:58:33:42:ae: bf:6e:8f:2a:c2:da:5f:93:e4:1c:eb:88:e9:b6:53: 40:83:06:b4:fa:dc:eb:ad:99:6e:1b:7b:0d:20:d0: f2:ea:dd:f3:2e:dd:1a:51:78:8a:2e:2b:f3:1a:43: c4:f5:8c:44:12:2d:2c:1e:3d:1f:74:37:5b:6f:79: 4e:4f:fc:fe:23:00:26:a9:cc:91:ad:81:f0:6a:b0: 45:b0:a3:70:31:b4:5e:ee:c3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: B8:71:E7:CE:3B:BA:4E:19:05:D9:F8:3B:D6:B9:C8:7F:64:22:F7:F8 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 68:ea:02:85:b5:ab:80:56:da:a4:48:1e:d1:44:40:53:03:da: 1f:c0:ff:cc:2c:7d:9d:58:2a:a4:18:1c:aa:51:04:7e:1a:ff: c0:1d:d0:ca:f6:97:01:9f:ef:ec:f4:db:6e:26:7d:79:d8:6d: 2a:0c:ed:e2:5d:33:c8:23:c8:75:ba:6c:95:0c:9a:8a:18:ce: bb:00:fe:36:45:59:9e:bf:24:f2:cf:e1:24:c0:7f:d5:d3:78: 4a:2e:84:6e:59:91:11:b6:6d:3f:d2:a4:7c:b3:8c:1d:5e:63: 9e:c4:29:e0:83:fe:2b:d3:a2:13:3e:58:f4:a2:1d:d2:a7:76: 5f:5c -----BEGIN CERTIFICATE----- MIIEWzCCA8SgAwIBAgIBETANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB6jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTQwMgYDVQQDEytzaGVsbC1wYWNr YWdlczAxLnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMTQwMgYDVQQpEytzaGVs bC1wYWNrYWdlczAxLnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZI hvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEF AAOBjQAwgYkCgYEA2mRkpUmHQ2T/Q9yIhJc/RErX4dwykvzhTairNTkZP9SnHCBf nHzWL1gzQq6/bo8qwtpfk+Qc64jptlNAgwa0+tzrrZluG3sNINDy6t3zLt0aUXiK LivzGkPE9YxEEi0sHj0fdDdbb3lOT/z+IwAmqcyRrYHwarBFsKNwMbRe7sMCAwEA AaOCAVcwggFTMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdl bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUuHHnzju6ThkF2fg71rnIf2Qi 9/gwgdUGA1UdIwSBzTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAx CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUG A1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMG ZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZl ZG9yYXByb2plY3Qub3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIw CwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAGjqAoW1q4BW2qRIHtFEQFMD 2h/A/8wsfZ1YKqQYHKpRBH4a/8Ad0Mr2lwGf7+z0224mfXnYbSoM7eJdM8gjyHW6 bJUMmooYzrsA/jZFWZ6/JPLP4STAf9XTeEouhG5ZkRG2bT/SpHyzjB1eY57EKeCD /ivTohM+WPSiHdKndl9c -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app06.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032352 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAOxpBdePvbLG3N2c jiivJPMpWOuZqcrwwr5tluoxm0ntOV/mNx8so1B9PeB2kQDnXKUwnuWsR0hjDdmw ofLkvJwUek8PP5vBFxBshHjIznATMAPPPmKxd/be4bt/H4ZJXzWZ6UO4qrcrCXIJ /Jut/83q83Wy+4LyGhevGPIEitq7AgMBAAECgYEArmw6LDXYbyu7zyHv3OKEL4fl HEbOeHW0KU2v1/Brs1p8R14Sc0S65erRmWfBSlppB1PdGHVITocOs/tXMV9EK7Tz b+pQLaTlb+q3F6PMi/9eAUHD5C/U4itQgLapnpUTzGKN64YLODLnDgsDWe1/GtUP l9OBzSOeyQprGZVZbqkCQQD7N/rFs0P4NrFhe4JAXm3jDPC06Le4P+Wu4GnHQqic tn7p0ZJi7inVPdYzctXNMWn69Wym3Clp/hiKmFwqAeMXAkEA8OjkRmnW7IdLRImT 86ywT4Wt8axCC5nNPPkN9E/7D1mSDda9misApX7w3EO+iR7HXYlU34j22OA0GfMm nFYb/QJAGoK50Asu7Q64gVULVcehSQigjjbQzHzRvDaqcwCx0nffxMT88bu4Zmx0 IlHIBjNkv7sOkD1DkY/i/x08/KHeWQJBAI/NdPXTF8f4uqUeuoIqAtR1J2+rM4FZ PXm38Ox1EZgID3bTSDpOkQQ40e2pQoL3LGpZH6CPUUoECxWyXsnTXMECQQD4Pwhr Ul0iKbvbszOpgZaqe0XKh0yXgAdE7TUV823Nb2ukHs9oUdRmzBex0RlfZMuuNjvs rRDZrD3/FCuNydJR -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app02.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032341 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 30 (0x1e) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app02.phx2.fedoraproject.org/name=mediawiki-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:b9:d2:49:0f:11:a0:6b:14:f6:c5:10:cc:9e:83: 3d:8f:03:05:20:d9:d9:5f:99:92:0e:e3:7d:4f:08: 7d:3d:f6:b9:4c:b4:8d:7d:64:15:ad:b3:de:07:a9: 64:0e:a9:9b:4f:ca:47:32:a7:57:95:27:d3:8d:16: f3:58:cc:6b:63:a4:d9:ad:db:93:aa:1c:5e:4a:b4: 39:94:dd:d2:43:be:26:53:8b:ef:cb:82:11:61:82: 8b:61:d1:c3:54:1e:17:37:25:6f:c8:a8:d1:0e:a4: b6:cc:e1:fb:4b:42:88:34:f6:2f:3d:a1:f4:d3:f6: b7:f1:b5:bf:2e:d3:11:7f:ef Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 7C:CC:1E:F5:C3:3F:C9:81:8F:77:66:1C:E8:E7:BD:62:C0:70:CF:BA X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 85:0c:df:b6:93:a2:31:5a:e2:31:0e:1a:7d:6f:f0:49:37:fd: 11:d1:51:15:32:06:c1:04:81:59:b4:5e:72:db:90:f6:75:b8: c6:c9:f4:32:42:86:e1:bf:8a:5c:7e:dd:a3:70:83:10:c4:ed: 81:49:41:bb:77:db:a2:76:60:cf:9e:d7:34:43:93:da:ed:dc: 4f:0f:50:70:78:69:4d:df:19:fe:28:00:3b:23:80:48:a0:fe: 0c:7c:d4:67:52:0d:49:17:82:f9:2b:05:c7:d6:91:2c:d8:0c: 12:0e:e3:b7:9e:ee:4b:e7:5b:9d:24:de:3e:f9:b7:04:a5:8b: 0f:97 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBHjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDIucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDAyLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQC50kkPEaBrFPbFEMyegz2PAwUg2dlfmZIO431PCH099rlMtI19ZBWts94HqWQO qZtPykcyp1eVJ9ONFvNYzGtjpNmt25OqHF5KtDmU3dJDviZTi+/LghFhgoth0cNU Hhc3JW/IqNEOpLbM4ftLQog09i89ofTT9rfxtb8u0xF/7wIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBR8zB71wz/JgY93Zhzo571iwHDPujCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAhQzftpOiMVriMQ4afW/wSTf9EdFRFTIGwQSB WbRectuQ9nW4xsn0MkKG4b+KXH7do3CDEMTtgUlBu3fbonZgz57XNEOT2u3cTw9Q cHhpTd8Z/igAOyOASKD+DHzUZ1INSReC+SsFx9aRLNgMEg7jt57uS+dbnSTePvm3 BKWLD5c= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app07.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031475 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALHJHSTd/YFdzvsw 0E/TTlpd9x2m252vTueJy4PdIsNrTMYuNn6KPlDhk8zJsvuXnYK090XVUsz7Yray o78DERWpdkTZiWhr2Pm8UlSBR5sr02Kvvr0W2gmoMA0VxvyDucWXkfnGKpMCLNVw nYMgB9k0Dt7cB0TNtITTzChw8oiLAgMBAAECgYEAkwdGwfGQsEcbYONqs0mGV/ez 4WLX5x1PPO7ZT1E3abO4R4F6ccX0aUFU0RzRl344thrhEHCuTHVtmrg78UEhA449 PPr1jH82+1edXy2Ep209OF0zVng/iNEEzRRKohBSz+a58UdwE+wW1fpDltpElEnQ dIJTWVnp7WX0TVsB/fkCQQDmWxhmYDXB3bq6Yeol8eF4+kChD/76Of3RABDF4jDa LBqsZIx1kF26OAxKA5/XKoTZH6osV2EQh9xKPvXO6MAtAkEAxZPSGw8NVisXQzsq /THjw+ChfuMFpNnRKioAK60zQmkYBASo7lTremquCwh3G1WVPhXiN8f66kWC1Nyf uLymlwJAYiEAPexSOinId8lqQ4vMrwp8KaB00AeQNk4+1u1KPkZ3fmS+6P38z208 3vK4TqKQQSYaChWXBcG6d+5mLCQ+aQJAe64SKzAb+CHXWRWzznWpj5eRYL26bbyQ S+Wo3653VQ42o2VLXo44LhSTyIJPFQRY/Vlzl9mOv5It2RQWw+0MFwJBAK4CsTK4 xTfEl4+1nQfV4kuT2pDPdnaKoTIAGQB5WviximMjHQFGK61VGGkxyIt0TE/jwe9J 0Ptbw32C5QQn7ZU= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032276 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAN6rBP1MG0vxm6z0 uqSr0ur7DvIH6+Ovc26lK2EcQ/KLauIDoWsCcJb6RKl80bAcvPSxuIn4uwOMELkM 5GKOxZW3OBrigiRtn4asNF8EBENcowWCvLGgs+aa0BLJfFZV1VERUbguh0MfLIV/ cIdEk8/XlZs4+u8n5iX4AY1w6jtpAgMBAAECgYEAjiGqMKko72QM0+zvSnenTXju BE5MI2z2CNWDiBxLvwGBOz3IBo9rIOQlee6Dxp/BeYwL2H4dmdkJP6XcDpFFyucG zzATn6P5A1CnKSljM66Gwe1zbAHY/Yuj6tDeNy0GE3uJuF9yT/bYaDskQ4TaqC2q qYhKC/ctkW8zt4cDrPUCQQD8AFPSjogK6TrYz6JkA0lnD9WoxsMXBZuYehk32J4W zOEXERpRi+hUPYML5sdciA+fD+GNAh3cLl+XTHHhxYx/AkEA4jOJEM2qR4yoKO4R NmVqn0rc8TNeleOvEP1H+WJpUIVqD/Huh8ZecGLdZNqtSju79aegYT+Z4CURExxB MjdkFwJBANVwIY7xEeDL8f+4vT4gWodkLf8peguBwGvA3qMiYaPGG8/BuJzg9wKC pv/pk2mYBEMg3FTmOgxHasdnA/3JqFkCQEegKfa4KQMe9uB/AdRHqMtn2S5HJdww jG7ExNWi49YraLpD0VQM7DqKE7CrzdODtrDCs3YXvZHMKuvyNnLAN2ECQQCLo2HG 0kOyrEUzs55WFsUvgWZpD8n8ekTHw7HYIbF3Ltv6Z5nYxuuQ5YxQqvPcSPEPiN/O /BlP8at/An/PXiLU -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/15.pem0000644000175000017500000001002512231547317023400 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 21 (0x15) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app02.phx2.fedoraproject.org/name=bodhi-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d9:b1:07:22:2d:26:46:b9:33:8a:4b:c6:5c:92: 06:2a:cf:c2:90:5a:36:b8:fc:81:48:b2:ab:97:56: 43:eb:b3:8d:76:ca:12:57:c6:56:90:92:13:70:43: d7:65:9a:52:61:cd:69:d9:76:aa:64:29:c9:09:49: 83:9e:03:b2:1f:25:26:e1:b5:be:b5:98:c8:09:71: 31:cd:84:5b:cf:1c:8a:37:4b:12:0f:b7:c5:95:9d: d1:a2:00:a0:78:7f:86:80:c0:e6:05:b2:9b:f7:0d: 77:c3:cb:7c:d9:db:b9:63:b0:12:29:a0:05:ee:4f: 61:76:55:ca:0c:ea:a2:bd:13 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 84:80:BF:15:57:CB:7E:84:06:34:8E:81:73:0F:2F:7D:82:E1:ED:CC X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption c6:62:0a:ac:71:8c:48:32:38:40:4f:e9:7d:08:19:a7:28:12: d9:18:c6:30:04:b3:93:6f:b1:11:03:96:69:b3:60:70:bc:bb: 2f:52:61:28:09:c4:da:b3:a4:b9:29:16:34:b9:ce:e8:ec:77: f0:d4:93:09:c3:5e:08:aa:8a:da:88:39:6b:79:88:c9:a2:d1: 8f:59:a5:78:66:43:eb:86:50:96:ee:25:4a:8b:7e:67:54:32: 60:76:a6:90:a3:d7:b2:8e:0b:d2:eb:61:29:50:db:05:e9:92: 64:98:db:d2:99:3d:f0:66:66:b1:bd:23:7b:16:10:78:97:ea: b9:c3 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBFTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw Mi5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwMi5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA2bEHIi0m RrkzikvGXJIGKs/CkFo2uPyBSLKrl1ZD67ONdsoSV8ZWkJITcEPXZZpSYc1p2Xaq ZCnJCUmDngOyHyUm4bW+tZjICXExzYRbzxyKN0sSD7fFlZ3RogCgeH+GgMDmBbKb 9w13w8t82du5Y7ASKaAF7k9hdlXKDOqivRMCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUhIC/FVfLfoQGNI6Bcw8vfYLh7cwwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAMZiCqxxjEgyOEBP6X0IGacoEtkYxjAEs5NvsREDlmmzYHC8 uy9SYSgJxNqzpLkpFjS5zujsd/DUkwnDXgiqitqIOWt5iMmi0Y9ZpXhmQ+uGUJbu JUqLfmdUMmB2ppCj17KOC9LrYSlQ2wXpkmSY29KZPfBmZrG9I3sWEHiX6rnD -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app01.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032340 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 29 (0x1d) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app01.phx2.fedoraproject.org/name=mediawiki-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d3:c7:22:b0:a4:17:63:3e:c5:a9:b1:6a:7e:d6: 5e:49:44:83:81:5f:e0:05:f4:04:86:f7:3d:95:a3: 6c:43:d8:78:cd:11:11:ec:50:74:1e:68:7b:78:52: ff:d0:60:1e:6d:69:60:0a:78:f1:47:28:d0:07:58: 05:1f:5d:fa:c7:1c:1b:af:bc:3d:10:8e:5f:7e:b0: 26:96:6e:2d:da:85:71:6e:d0:05:b6:76:c3:ed:24: 2e:8e:6d:b1:d0:8d:77:0b:21:b1:07:99:b1:13:70: ee:91:66:01:16:31:f9:b6:76:9a:04:c6:a4:1a:88: 49:f4:89:5b:0c:7e:d4:39:05 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 58:5B:64:3E:FC:59:09:90:6D:7C:DF:96:C7:F2:FA:52:50:EE:25:06 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 30:4f:4e:da:61:06:fd:b3:42:b8:31:67:d8:40:72:33:ed:48: 01:c7:32:4a:00:cd:e6:25:cd:42:b4:27:67:b8:75:f7:9e:24: 43:fe:96:8e:f2:6a:76:35:4e:48:e2:ca:0c:f0:73:91:80:40: 1d:69:ab:c0:35:64:30:1f:86:8f:79:f7:79:92:2c:de:6e:4f: e9:de:ec:94:41:8b:bc:77:7f:13:38:0e:06:63:1c:02:ce:fd: 11:ea:fd:6e:62:0d:de:d7:39:9c:17:8b:3c:f9:b5:78:e5:db: a6:a5:8f:d8:07:21:bf:bb:8a:27:54:99:93:10:75:3d:92:da: a9:e4 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBHTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDAxLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDTxyKwpBdjPsWpsWp+1l5JRIOBX+AF9ASG9z2Vo2xD2HjNERHsUHQeaHt4Uv/Q YB5taWAKePFHKNAHWAUfXfrHHBuvvD0Qjl9+sCaWbi3ahXFu0AW2dsPtJC6ObbHQ jXcLIbEHmbETcO6RZgEWMfm2dpoExqQaiEn0iVsMftQ5BQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBRYW2Q+/FkJkG1835bH8vpSUO4lBjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAME9O2mEG/bNCuDFn2EByM+1IAccySgDN5iXN QrQnZ7h1954kQ/6WjvJqdjVOSOLKDPBzkYBAHWmrwDVkMB+Gj3n3eZIs3m5P6d7s lEGLvHd/EzgOBmMcAs79Eer9bmIN3tc5nBeLPPm1eOXbpqWP2Achv7uKJ1SZkxB1 PZLaqeQ= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app02.stg.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032257 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 28 (0x1c) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app02.stg.phx2.fedoraproject.org/name=bodhi-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c4:65:3f:d8:8c:e8:35:dd:f0:08:56:7d:6e:36: cd:91:39:80:77:7c:00:64:5e:0b:c3:83:81:04:4e: 12:8f:dd:97:54:0e:dc:25:cd:55:9f:cc:b3:64:02: 75:10:c9:0a:b9:a0:f5:f6:b3:b6:a0:c4:de:26:20: e7:7e:e2:92:c2:94:a9:25:5f:a2:71:9d:fc:04:41: 39:e0:75:a5:07:ee:01:21:b2:4a:ee:aa:99:1c:be: f4:31:d2:30:bf:ba:0b:23:a9:9e:54:03:9d:35:c2: c9:6c:15:3f:89:37:92:72:4a:d8:87:e5:eb:45:55: 94:96:fa:c4:1d:9f:b1:f9:2f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 52:1F:96:23:E1:BA:58:03:AC:D0:F7:32:CA:BF:03:4D:4F:4B:88:02 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption ac:5c:0b:f5:5b:bb:df:ed:fc:7a:bf:79:4b:9f:37:b5:77:7e: 99:6e:54:cf:1c:62:8e:fa:71:e0:0a:c3:80:05:54:6d:b2:b0: 38:f3:17:bd:10:73:05:1d:5c:1e:1e:24:c8:cf:50:a6:5e:1f: b1:dd:53:fa:92:ba:26:af:61:3f:a0:7a:a1:d8:7d:73:24:43: ad:a5:f0:df:e7:85:84:27:60:85:0c:d8:8c:44:7b:85:07:6a: a3:2e:01:9c:61:57:e6:50:fe:74:26:78:14:00:ed:1f:2c:d9: 73:7b:4e:a0:f7:95:b4:5b:c7:bb:af:e0:cd:72:4c:c1:a9:e9: 34:92 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBHDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZib2RoaS1hcHAw Mi5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmYm9kaGktYXBw MDIuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDEZT/YjOg13fAIVn1uNs2ROYB3fABkXgvDg4EEThKP3ZdUDtwlzVWfzLNkAnUQ yQq5oPX2s7agxN4mIOd+4pLClKklX6JxnfwEQTngdaUH7gEhskruqpkcvvQx0jC/ ugsjqZ5UA501wslsFT+JN5JyStiH5etFVZSW+sQdn7H5LwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBRSH5Yj4bpYA6zQ9zLKvwNNT0uIAjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEArFwL9Vu73+38er95S583tXd+mW5Uzxxijvpx 4ArDgAVUbbKwOPMXvRBzBR1cHh4kyM9Qpl4fsd1T+pK6Jq9hP6B6odh9cyRDraXw 3+eFhCdghQzYjER7hQdqoy4BnGFX5lD+dCZ4FADtHyzZc3tOoPeVtFvHu6/gzXJM wanpNJI= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app05.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031473 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMhCv1RgGwY8Z8mA D5ERXelxvMJQyXKXF3s8dAHTxb3SpQ4pdJNAmT4sqQwRiU4nlg44PtG407q4MItM RtvDhUNfqS7ONyiWconpUxzZQnFuxYa+nW9WjEJGVs3VOMm3WtWb7mcEszmg/hTh 81vVR3RJA8TxQlT/jRKivzvpJlFfAgMBAAECgYAdjTP8uH3kaq+KHZqudpicJUuM hS1k+oTdi6s2xdBtVZNDxrxMKoEympaLkF7pqI/NI2GpwxODf0CynZvrPCwC5U9H Gwkwo9kGgFQHoFzzGSOqmNOzbe5ZthdKwF/rNFl7/PB7NaHCNapTHnG3XgHtCfO2 BM0tYjIegr47E9NI6QJBAOuSTZLymGWdNa4M3p0e3bdz87Dp7dkZ3m4LqWvSC/Ut 6zfjiN1TvkZXqrJENIl1pKT4wr1umiNAtkbjRBtzBIsCQQDZoIs+6blFx9iaZY8y 8DYWEG/BOAnuRYgE2A0L98KK6ZdXI4IcjBbpjWEIkIgbh2Zy3eBis6s01IIi7V02 Rvz9AkEAso5LhGWjg+n8hTe2COwbbHFUNjWqFhPYmBr4yQQGEkpC7zLlS7WtFM5g UQ0HsWVdbbosib9qz+u9/c9HkXLF7wJAO/Hg6R9wDSyTGVRIMXvBKiq03cAV3DAC 23K3hUhlqeXV7ga13C8qUILE65sEIrEVIybCm+1ph0/R2NURC9ZZ8QJAIDoOfJC5 fsyJbAU0J9d/zQHqUiTI6JeWFtaNrgoNvrWEODhF1rGAonuVs4SIhqvN0OBOnn5s LmXmnyz5Lut0Gg== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages01.phx2.fedoraproject.org.csr0000644000175000017500000000146212231547317032506 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICIzCCAYwCAQAwgeIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEwMC4GA1UEAxMnc2hlbGwtcGFja2FnZXMwMS5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMTAwLgYDVQQpEydzaGVsbC1wYWNrYWdlczAxLnBoeDIuZmVkb3JhcHJv amVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3Jn MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBCCeQ7IBJYZ1tAiq7IrFP1ivz z5CQkTgrWaaQL2pBgk8VEk4V/In3pVeWcLjlgV/ai8eqW7OMYb7pE/dD82miCRp9 ciXFbyi+tykeR/mOcDY2ygx13z59wboB0XbL7rW/xJMTN7F57Ynn+Pn1U5No72zK pW2v18PKqZRJY9an4QIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEAIWVZkpX26eGQ ldHVWQow/XkMcNx6YRJhwCZUGniAsHzv1bo2u8x+svzIabzjgKdZ926lo/xdKmoW hJ2S6QnBzzJShRUxLNtCxQE9cMYRunh7zhyYb43iFLdKbpCcgDsiY9maNBHJjEax Oxp+IA0e6W1/sybqOKa3Ifdyo2VAP6Q= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app02.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031471 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMiYm9kaGktYXBwMDIucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMiYm9kaGktYXBwMDIucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBANmxByItJka5M4pLxlySBirPwpBaNrj8gUiyq5dW Q+uzjXbKElfGVpCSE3BD12WaUmHNadl2qmQpyQlJg54Dsh8lJuG1vrWYyAlxMc2E W88cijdLEg+3xZWd0aIAoHh/hoDA5gWym/cNd8PLfNnbuWOwEimgBe5PYXZVygzq or0TAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQCYM58fxG/vDKkQ+Ge8urDNlHM/ T4+hDnkcavYwE2EMSybrBbqUOQcoWQKA0jm4sDLKdDItIbXHwohQdkxzZYDEyHdd f2wQ5Hf7rkiiT+M2xmaelHAVuId+WKExy56+Hvgb/hEw4fGvwg02h65opeqi2u1i ySpmP8SUCelEUPu/pg== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app02.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031470 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANmxByItJka5M4pL xlySBirPwpBaNrj8gUiyq5dWQ+uzjXbKElfGVpCSE3BD12WaUmHNadl2qmQpyQlJ g54Dsh8lJuG1vrWYyAlxMc2EW88cijdLEg+3xZWd0aIAoHh/hoDA5gWym/cNd8PL fNnbuWOwEimgBe5PYXZVygzqor0TAgMBAAECgYAM6UoCBemCQlPDPRFLxkFlYqMo iqE6QYetdyNkO3KV1TVruTpzSEk0E+XhP7TTyt5d/J/tjPM4M54/1cNfqNp0kGkA uMa71QLLbzvuNBxQ7uwHNkL6e3JV/07bSkNiUQo6JtXQhiUKXPUGC1hRrb+JXtwo yIsvBRRjYzbpMGxz0QJBAPaKQG5W7HOk1OtC0FmQLZxgJrvYUqMPjCBnzEqHP82p erMo2KHNbopiVw9PB18DtNOnBdEThl9kh3yaM14ldDkCQQDiC2YVt2/a3xN1k3rT j9Oa1yMtziOp5bDdcp7oTkRS/QTuD/BpJ4sUrQkhL2a8HoZ2XZiZRdBw2aq1eIiE rPOrAkB1dbjs2Q0eq9GlpNePVFnmvwi1RoNYnPeuGMYEXBvR6IVFBpjvveiElgXU jVp9sk5c6J6k1iCXIlZKz0zZ9g5BAkAx6mJ4mTFSG8CoThDpdvE7WBaknsixU89i l1UP53ie+tCD4XEtR1YnEq7ZbSY6lGMM8E4qSohk4ywXNq6u3aJRAkEAzxkOEzgf xk9+TBdNJH4FwZUkqNIQY2uBct8wDfQMK1z3PLPkrTANR1UPhshdc8uP46axvnes Yu/brBtgR30iYA== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app02.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032346 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALnSSQ8RoGsU9sUQ zJ6DPY8DBSDZ2V+Zkg7jfU8IfT32uUy0jX1kFa2z3gepZA6pm0/KRzKnV5Un040W 81jMa2Ok2a3bk6ocXkq0OZTd0kO+JlOL78uCEWGCi2HRw1QeFzclb8io0Q6ktszh +0tCiDT2Lz2h9NP2t/G1vy7TEX/vAgMBAAECgYEAsksksoK1K0moJRmjW4yNakT5 jLW6LlJJpGN+fnCkyumKjiDHicKYUly88xkC2la+oOZzPhT2ojTedQfKYi9x8T1V FnREwC9vbOTSNM0o/vUe1CGLszTW6OXul3BnKmBqwwblYUSZEvEnGw8nrm0wladC bKXqrSIjPPJHRQItgIECQQDamRgpv6McqBbyRy4NSJMuXlnzGpS1NmNI2rwlKrKw RBznlwYteTAVKW5qn/fm+CWxRZdZjYAVGjNMSi/zgzThAkEA2Z2Hex2bW5cdIRvd CMbvYvvDPOhguO5QzwEgqJqjd1zY0fPKjxphj2v3/Ky3k67buKmSDl5XrjA1xVuH k1N+zwJAGSSWxOaH6lnjGcbaIyj/1MuBaRbbl+RDkzOlhFje6KtM785NJZnUz/pN +vGfX++W1kb8244M92BmGhZGYanrwQJAUx2GrHA/cTkDSC0DPCH3NqAgDrhWkOt8 88NjfOIrQyC0M2Rg3k1eK9A6FEjHiOGFTD9/6HsCFCaXsvxliNCgIwJABLsUStPW Xs9QAG4KLHIoUh8JZ3Ck8ex3COz/0ZLGvo5vHVs9JE6bQ4ReN/VYsop0cHrUUjXk Np7vFLbH4uA9BA== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317033303 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANpkZKVJh0Nk/0Pc iISXP0RK1+HcMpL84U2oqzU5GT/UpxwgX5x81i9YM0Kuv26PKsLaX5PkHOuI6bZT QIMGtPrc662Zbht7DSDQ8urd8y7dGlF4ii4r8xpDxPWMRBItLB49H3Q3W295Tk/8 /iMAJqnMka2B8GqwRbCjcDG0Xu7DAgMBAAECgYEAhM+OwVHA14RhFDTWNMQB7pcR SEJv4yG0JlUPoTNTHpVE9v7dBj6Ixov9yGya8DJSj+LbQwXzbG17q6xfTA9VGSZJ fqhSR9IykGBbgOeVX4poLjCu8qldBt4DWI2Oc8DG53ihufQ5/71iWrQqptsvflqu q/sdd1f6DVZ0DzDczVkCQQD3BXb80tc58tAZ+zTWxJq8bR6oyAVFQrV/S7SVfaNQ SPf1a6grq75daGUBFgey7m1rdXK4/U6SgvhDklql8ZDPAkEA4lSImYe4OuU6xfXY u4UyIQZz3hGRkQlayRJD/xLwVeQunTOPEDPBOPgj5BY7a0qO2mnw0NdLR5LbuZjo XHa3zQJAaOhoPT1p7JFjsfUO3rtGoAmTwMiZ/G01WaeUPPzLtBgZPqCHHmzk/xSL +OcbQ/GghMevfkMN8Ikw2Lm6R8mM3wJBAKAd5bWYCoHAAeBimL2w8VHj2rzT+QN+ drehMHGX2GcrUr7r5t4zfxLqmZmXENpKmN1z7WYRqbQs9T1MK7aeVlECQQCHynYD C6qb++heJlvc1i748GgwrOdugosWi1W7ITHTa38COiEh4VZ1CoUS8vCxcY/PwGMG 498OJAZ3mwgySO65 -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032300 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmc2hlbGwtZmFzMDEuc3RnLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJnNoZWxsLWZhczAxLnN0Zy5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3qsE/UwbS/GbrPS6pKvS6vsO8gfr 469zbqUrYRxD8otq4gOhawJwlvpEqXzRsBy89LG4ifi7A4wQuQzkYo7Flbc4GuKC JG2fhqw0XwQEQ1yjBYK8saCz5prQEsl8VlXVURFRuC6HQx8shX9wh0STz9eVmzj6 7yfmJfgBjXDqO2kCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAHzrmMqz7AHHXfI1 rwpYMfxMU1oNob5Qn/PUYuOriAYK+JynecZ0edKVzscF5NTCbNNZvOk8+7AtaiYC gj9Iy0KGs2BU2CKv+MAOSc1UM51wNL/S5gyJ5Pb9T/+muvREu3oMxzZMtI+AvRwu 6iIFgT/gSYNKwYVO09GJ+2NEbbXA -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app02.phx2.fedoraproject.org.crt0000644000175000017500000001002312231547317031503 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 4 (0x4) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app02.phx2.fedoraproject.org/name=shell-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ac:a0:3c:f8:e5:f7:d7:53:87:11:44:26:fb:e6: e3:d2:eb:cc:7d:a7:86:bd:29:b9:a8:e4:6f:bf:e9: a4:4f:aa:d5:3f:01:4f:90:b7:1b:a2:a1:ad:0b:43: 48:90:24:6b:42:33:af:ae:9c:4f:6a:a9:98:b6:e5: 5d:0d:99:c8:df:d7:3e:8c:02:aa:b5:5a:d2:38:2b: 5a:97:00:c2:b7:e7:85:ec:0c:61:1d:d0:69:3e:b3: bc:69:f4:11:d7:7e:65:47:b4:08:36:51:0e:8f:ac: 91:9c:38:81:3a:b1:2c:f9:d9:1f:4a:12:2a:46:9d: e3:3b:a1:c4:30:bc:57:cd:bf Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A0:9C:FA:C6:03:D5:A1:F5:76:BA:2D:74:EF:1D:32:6C:51:77:CB:54 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 66:e6:c2:3e:d8:61:c8:17:ac:90:64:8d:5c:98:87:ac:ba:4c: 6d:e9:f5:36:6e:6c:a1:88:b0:91:db:f0:f7:a6:4a:b8:3a:cd: 00:c9:02:d6:e3:f6:98:d6:95:e4:a9:95:27:6f:7a:50:e6:3f: 5a:4b:4e:3d:b1:56:eb:c8:a9:09:81:9a:61:73:67:ab:d1:3c: 86:22:31:e9:1d:28:87:90:c8:d4:9f:93:e1:07:de:17:ef:54: 4b:70:73:4a:94:91:9e:0b:b7:41:86:25:8e:bb:13:d3:d8:03: e3:a5:71:b3:eb:27:cc:2b:52:12:b0:a5:46:27:01:58:49:b0: 77:17 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw Mi5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwMi5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArKA8+OX3 11OHEUQm++bj0uvMfaeGvSm5qORvv+mkT6rVPwFPkLcboqGtC0NIkCRrQjOvrpxP aqmYtuVdDZnI39c+jAKqtVrSOCtalwDCt+eF7AxhHdBpPrO8afQR135lR7QINlEO j6yRnDiBOrEs+dkfShIqRp3jO6HEMLxXzb8CAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUoJz6xgPVofV2ui107x0ybFF3y1QwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAGbmwj7YYcgXrJBkjVyYh6y6TG3p9TZubKGIsJHb8PemSrg6 zQDJAtbj9pjWleSplSdvelDmP1pLTj2xVuvIqQmBmmFzZ6vRPIYiMekdKIeQyNSf k+EH3hfvVEtwc0qUkZ4Lt0GGJY67E9PYA+OlcbPrJ8wrUhKwpUYnAVhJsHcX -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app02.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032306 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKWiSLBw+YSeifH9 0aILC73qD+H646I/tQ134pY4Qc97vpj9PK08+ND4Du+RMLDUt8210jYapxdlpQp4 /Yxv3/UETIOF1yU0wbHsLDEGMhzKiNVusRWwp45hBvgYgXkZhQNWJ2yFmIomfLOO s/LW6YWHpCnfRdlbLIaBw0voGsUrAgMBAAECgYEAnQ5fvKazgtRN21+hKvUsYh2S h+Y9ePjNtgKqoWSgypv849akdWRuTsAYcYOL1vEthGrW9CSbsizYrTCCw2rFwWl5 j/+M6HyP6Q8BHP4TDKuelAfuYBRGWYzB66Q+NgZ4gYERqchIB/LOlScEPG3p+K3l W9sHHw5RD6KmQ3WhS8kCQQDTL+JaoMk8l9TQQEv/V3xK5KlFlEwXhH49c5rkydgN UHuYiFUVm/++8t5B0eyiP3u8jjjzA2NMdIqkW9ymFaKvAkEAyMfcKxKaAOMWbbbL PNxjFPX97/bzFmGcUFUYgQmRz5NseaxYPfSfOJo3fKOXRj2X4W4M95FcuHez8GU/ JoPURQJAZ+tjLgd6ntdzwDoza2WoYs4cQYHU46mt2R1e9gAg0YRuHUPQ4n5OHa8z ER50m+4zPDib63EaVs/uPSx66jsxPwJBALsKVHRbs9O3uSEj9FkSBct1DccKCpKD BBdh7p3myErTT25ZuyqcQ+d64s3dqALrRh3fY30NkY7XFG2SJC5BCPECQQCdMqhf 9zZkfmfwdnyDIDzn/6aZWZAh1HTIv8LyFTPKlgbGFizh7mmgr93CIb9f6/qwclva ZciEWGRcLcI64fSx -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages01.phx2.fedoraproject.org.crt0000644000175000017500000001011612231547317034026 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 41 (0x29) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedoratagger-packages01.phx2.fedoraproject.org/name=fedoratagger-packages01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:f2:0f:0a:65:78:33:21:ad:bb:46:88:48:79:c1: b3:4d:df:fa:99:27:15:7d:b6:7b:a6:b4:b3:87:a7: ea:26:6c:f0:5d:e0:cf:a3:1b:c7:f3:fa:64:d4:76: 96:b3:d8:83:e0:4c:91:5e:70:2d:73:27:92:2a:24: 3e:f2:48:05:6f:1e:f4:ac:d6:dc:dc:f9:1c:e5:b7: fe:ca:0a:09:e6:0b:1d:a3:f4:8e:48:e9:3e:5c:27: 01:bc:69:de:5b:dd:28:5b:39:29:03:97:96:12:e0: 0b:e7:6a:e3:37:f6:db:d2:b7:48:24:10:62:45:02: 6f:a8:b9:67:31:4c:94:74:2d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 16:2E:F4:F6:8B:ED:79:92:67:17:B1:CC:B6:A7:23:68:CF:AE:F4:D5 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 5a:d2:87:48:3b:ee:a4:3e:d5:7b:85:40:18:ea:cb:0d:04:f8: 53:30:bb:57:1a:47:9d:84:ff:03:de:ee:4a:ef:b1:1a:d8:bd: 8d:37:84:80:fd:88:37:3d:e1:68:2a:f0:c6:14:02:58:d6:ea: 38:84:e3:0e:9e:24:1e:2a:70:b3:e9:c8:25:8e:ca:50:d6:69: ac:26:49:34:3b:d6:e6:b7:9f:8d:e0:bd:75:75:30:a4:29:04: 0c:4b:15:15:23:f2:be:b9:c9:90:63:dc:3c:54:ce:67:e6:5c: cc:cc:51:ca:d4:05:77:32:84:3f:10:0b:f3:fa:b4:13:ec:73: fc:0f -----BEGIN CERTIFICATE----- MIIEYTCCA8qgAwIBAgIBKTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB8DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTcwNQYDVQQDEy5mZWRvcmF0YWdn ZXItcGFja2FnZXMwMS5waHgyLmZlZG9yYXByb2plY3Qub3JnMTcwNQYDVQQpEy5m ZWRvcmF0YWdnZXItcGFja2FnZXMwMS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYw JAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEA8g8KZXgzIa27RohIecGzTd/6mScVfbZ7prSzh6fq JmzwXeDPoxvH8/pk1HaWs9iD4EyRXnAtcyeSKiQ+8kgFbx70rNbc3Pkc5bf+ygoJ 5gsdo/SOSOk+XCcBvGneW90oWzkpA5eWEuAL52rjN/bb0rdIJBBiRQJvqLlnMUyU dC0CAwEAAaOCAVcwggFTMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3kt UlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUFi709ovteZJnF7HM tqcjaM+u9NUwgdUGA1UdIwSBzTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaak gaMwgaAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWln aDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0G A1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYB BQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAFrSh0g77qQ+1XuF QBjqyw0E+FMwu1caR52E/wPe7krvsRrYvY03hID9iDc94Wgq8MYUAljW6jiE4w6e JB4qcLPpyCWOylDWaawmSTQ71ua3n43gvXV1MKQpBAxLFRUj8r65yZBj3DxUzmfm XMzMUcrUBXcyhD8QC/P6tBPsc/wP -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app06.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031474 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALX8mtoIBCeeyBHz +6Agu0EqkeKmSPcnq9j4oc2Ls9Ydzo3Tfp1xT2XOe8GwSYozh1jHGylcLQ7S+516 QZCZFac6929keql15ycz+UIwmcVkx+OeZdL4+jO2cTlkuSvhPlFxN+qzpcElQdyN QcBP+AcMkIrUh2PrRfaiXOV4DFmrAgMBAAECgYBCUdLwv9kbwy5v9HTvbt4uql/N tAGFKEzk3f7BFDcuQWCDqN5Ma/2eQTgyZpb2KT8aqDyKvw+ghlyxj9sS4ebUk/5T 0nTAHldGKCCdBRxvZtQkMpNkkSkjGYiUndUXx9kDccpSnx0Xpinoz7nh5nEltPz/ adjRq71qiItrJ8E2mQJBAOTu0OB4yzjn9RsHFVZXeVCPJmC2Q+gKytqHBuj0TDNB hoipu2cjW9ismQ1vly00hQnW1VA/h0Stc3ig0Oxu3+0CQQDLgNr2Q84FAfou6VoZ n9XxY9m2pHlVPUThEDcyA+e4LvF86GQKwHi1WAQZzTDsyx3fftjekE4483Lho8Xg mfz3AkEAjeZxVhHJdXZheOVFFoWVzpdMZHnVUYkO/7DeWZrDeKnO5/q9DErgbUde fvOCMyTwqY6eHeWixLD2d/jGRybaaQJAMHJirlICD+sillxzWLpWgnsU74hEYmiN p07m9P89APob/3KLrouXsQRdJY9V4GmSmQxnsMSF+sTqSpFkoE3IjQJAA8WsUKZL UiJN5RVZOG4hHuo+TK/wzO336CrKMQk5eRxi42Urxhz3+5mGEIGBUC46ssBqi3kN R//QzGzkaeBOHw== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app01.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032347 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmbWVkaWF3aWtpLWFwcDAxLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJm1lZGlhd2lraS1hcHAwMS5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA08cisKQXYz7FqbFqftZeSUSDgV/g BfQEhvc9laNsQ9h4zRER7FB0Hmh7eFL/0GAebWlgCnjxRyjQB1gFH136xxwbr7w9 EI5ffrAmlm4t2oVxbtAFtnbD7SQujm2x0I13CyGxB5mxE3DukWYBFjH5tnaaBMak GohJ9IlbDH7UOQUCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBADZh7aT6PbzCJ4DP WTL2wKLuHMnyNtnaXJUz2TzXc6DH4iFapaIiWMBiCKrmVzFXHixko1jgFJmDBpc7 xDJ0QG123W0dQVgbRhoWYXF6wO5wOKKUixwaPdHB15Zf1upg89tKX2E7DTO6VXgD vANcQfQIZVx8iyIc16RU0sYX2De3 -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app07.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032353 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKJLpJvKvNA6vDDH h3kt31sbCF6PtR8ToS1lfienyT9l16ahQ9vEnGpxTWWIhRRlwPD7pdBKJpmfgvX1 BmhWhudnUpBA2VwR90DDF6ejfUWkCSmrmZ3wOfeiBS0INMYiALDmEMr5keSnFRhG F8IcK75stqD3jEoZKSPVToqEYVZZAgMBAAECgYAakHUOBv4muyZoeZBEFm0TtXYG PFFyF71u98jRZtY66UmF/alkxGaxyX/YmaLmts0A5L+8OxbcWE6QQZ3d4CPOY7TQ LHR/JtBV+5AfAMLqkGur2sb70omCfAif+EGJyi01HWfgFguuZMoctsiFJB5Jfp6R +sFiKYitDQ+fjNOlvQJBANgXfUHEFhrND2B6yUm4wV9pnymtSsQIMNJqZ8cpADmL wJX/H0nTIkst1VMVq5iop6P8idJ6HbA7HcdTDPo0WlMCQQDARL4N71x2eRhy3MP7 jO1iqeRTILG8vKWHuHVhd2c37WcAsbi3+/BJtMZmdiUzB24DUGDCtvCCu1IF8pkX 1W8jAkBVXMoVTcGxqqnVYgvb/IkfCNlgHF25nMa0iGYgjbjSArv8RQD2J9qXOi7Y GGpl7tHyfNNw+t55fJDh6ZPpzv6TAkAo7znLe7ei3ZtP8SKkrtdnlyYucJqGxV80 qxgKnUJTjO7OHghm23PILX3EGMlIuP86I2XGbu571ufarlDb2ywjAkEApaK4KMBo Ex5iX81COzmKlWe0+FPrb7gV+dap6+aadX2ji8IUGFeqwdC6uJB0/Fsa5Aeq7u5L fonUyQqyaI3nXg== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app02.stg.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032310 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmc2hlbGwtYXBwMDIuc3RnLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJnNoZWxsLWFwcDAyLnN0Zy5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApaJIsHD5hJ6J8f3RogsLveoP4frj oj+1DXfiljhBz3u+mP08rTz40PgO75EwsNS3zbXSNhqnF2WlCnj9jG/f9QRMg4XX JTTBsewsMQYyHMqI1W6xFbCnjmEG+BiBeRmFA1YnbIWYiiZ8s46z8tbphYekKd9F 2VsshoHDS+gaxSsCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIKEVrjEWIYHdSLN SY+DmOsp2T1Rlym2qlTSdSfVpbUOMet4eogYaNDbd2haSwyttmo4vlKfU//gduEf PNJtAByHF8VUXKSxdjmFdF7P9DV9tVSDWkF6/yGaM+hrMQP37BlXjWEnrhul7p9J iMpmu1cSE/FxAfJE5d7zsFuAhkxN -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/1F.pem0000644000175000017500000001005212231547317023421 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 31 (0x1f) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app03.phx2.fedoraproject.org/name=mediawiki-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:cc:6e:6b:1a:e7:62:fe:80:1a:4f:a3:b3:60:0a: 6c:08:d1:86:97:10:cb:31:6f:ec:26:d8:f7:f7:33: 3c:0d:6c:cd:66:3d:b9:fa:6d:60:00:54:5b:3d:0c: fb:a3:0f:c5:6f:66:4a:4f:c7:20:28:f3:05:0e:b8: 7d:ca:29:c7:00:c8:17:17:7e:38:6b:75:00:73:34: 54:a9:5d:ac:c8:14:f7:c0:45:d8:14:f9:87:8c:68: ba:62:f5:bf:c9:47:74:53:4c:09:81:b2:f5:83:4a: 5c:8b:fb:90:6e:27:e2:c5:da:e0:43:9d:23:ad:5f: 79:40:09:d9:ea:85:5c:72:af Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: D9:AB:48:A4:29:FB:1D:27:9C:81:6A:3E:D1:6C:1A:90:22:A6:F5:20 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption e8:72:87:85:23:17:ca:18:ee:04:59:06:96:0d:25:3a:24:00: e3:b7:ae:c0:d4:94:4c:8d:3d:c1:60:a1:58:38:92:87:11:4e: e7:db:fa:14:ac:30:6e:4c:79:3e:e8:24:7a:5f:9b:84:bf:f0: ef:2f:6f:07:e2:eb:4a:b2:e9:98:d5:b2:29:ce:78:0d:8c:0d: 06:56:2a:eb:05:7e:ff:d1:7d:18:6a:4d:ad:ac:cd:24:b4:e6: f5:82:f6:5f:d4:2f:04:bc:75:4f:93:50:8a:b6:6d:f2:f9:1b: 18:10:b5:dd:a3:e8:75:c0:e9:aa:ea:07:14:bb:60:f6:ea:32: c3:90 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBHzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDMucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDAzLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDMbmsa52L+gBpPo7NgCmwI0YaXEMsxb+wm2Pf3MzwNbM1mPbn6bWAAVFs9DPuj D8VvZkpPxyAo8wUOuH3KKccAyBcXfjhrdQBzNFSpXazIFPfARdgU+YeMaLpi9b/J R3RTTAmBsvWDSlyL+5BuJ+LF2uBDnSOtX3lACdnqhVxyrwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBTZq0ikKfsdJ5yBaj7RbBqQIqb1IDCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEA6HKHhSMXyhjuBFkGlg0lOiQA47euwNSUTI09 wWChWDiShxFO59v6FKwwbkx5Pugkel+bhL/w7y9vB+LrSrLpmNWyKc54DYwNBlYq 6wV+/9F9GGpNrazNJLTm9YL2X9QvBLx1T5NQirZt8vkbGBC13aPodcDpquoHFLtg 9uoyw5A= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app02.stg.phx2.fedoraproject.org.crt0000644000175000017500000001005112231547317032300 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 11 (0xb) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app02.stg.phx2.fedoraproject.org/name=shell-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:a5:a2:48:b0:70:f9:84:9e:89:f1:fd:d1:a2:0b: 0b:bd:ea:0f:e1:fa:e3:a2:3f:b5:0d:77:e2:96:38: 41:cf:7b:be:98:fd:3c:ad:3c:f8:d0:f8:0e:ef:91: 30:b0:d4:b7:cd:b5:d2:36:1a:a7:17:65:a5:0a:78: fd:8c:6f:df:f5:04:4c:83:85:d7:25:34:c1:b1:ec: 2c:31:06:32:1c:ca:88:d5:6e:b1:15:b0:a7:8e:61: 06:f8:18:81:79:19:85:03:56:27:6c:85:98:8a:26: 7c:b3:8e:b3:f2:d6:e9:85:87:a4:29:df:45:d9:5b: 2c:86:81:c3:4b:e8:1a:c5:2b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 0E:91:E8:05:7B:09:E6:BD:10:83:D3:49:6A:F6:0C:C5:78:47:50:27 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 9b:4e:d3:49:45:7f:8e:d0:50:22:eb:3e:11:b4:b8:dd:05:cc: 07:98:ef:e7:66:0f:9d:b9:a0:7c:8d:9f:f0:b4:61:4a:95:d5: ec:35:3c:4f:f9:8d:d1:a6:bb:12:2c:ff:70:f4:35:45:62:1f: b8:cb:bc:bf:b2:8e:c1:fa:80:5d:32:cd:31:8d:48:2c:5b:83: 76:23:ea:66:35:36:f1:9c:23:e1:9f:81:f2:c4:ad:12:1b:58: 76:14:16:22:5f:47:f7:2d:44:f7:38:4a:2a:cf:92:db:ff:1e: c6:be:9e:d9:89:96:a1:ca:b6:1d:b7:87:58:f0:cc:e1:75:e1: 37:73 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBCzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZzaGVsbC1hcHAw Mi5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmc2hlbGwtYXBw MDIuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQClokiwcPmEnonx/dGiCwu96g/h+uOiP7UNd+KWOEHPe76Y/TytPPjQ+A7vkTCw 1LfNtdI2GqcXZaUKeP2Mb9/1BEyDhdclNMGx7CwxBjIcyojVbrEVsKeOYQb4GIF5 GYUDVidshZiKJnyzjrPy1umFh6Qp30XZWyyGgcNL6BrFKwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQOkegFewnmvRCD00lq9gzFeEdQJzCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAm07TSUV/jtBQIus+EbS43QXMB5jv52YPnbmg fI2f8LRhSpXV7DU8T/mN0aa7Eiz/cPQ1RWIfuMu8v7KOwfqAXTLNMY1ILFuDdiPq ZjU28Zwj4Z+B8sStEhtYdhQWIl9H9y1E9zhKKs+S2/8exr6e2YmWocq2HbeHWPDM 4XXhN3M= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app01.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031467 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANYic06s5HaUXdWR hhxbNhs5NA/HSxLIQ5cwtePNctWa0NsKOvvhkjIYCuaQ9LP+8KXQVIHcYBTiIjko jzRlcnKtCNzkRyMCTN4C9fJEFzy4ZETPlOP2Gggnb6VFCixkRdbPDoNnRLD4rfwS SyechfNFtRqzqutmK6GvIYGG898JAgMBAAECgYEAhm7qZSI17BwJLONHhtXcigrH nIBJqWkAxhJWnsWEqoWfSWSK00cyOTDO5yFp/va2reK0qzJnP7UYNzo3bXWi+yUe f3BFFwhqyTvNJboVsXvjH+ALRJXsYk5wvDRowGHqxZBFnwc19+qtLlol1g5/shwe SK6W56bjxFF1BmIBsuECQQD4BdcodE4FEZCrPiry7i1n9rNGvyfYLmUF/G1wchnB cc3ZCaxyS6ZsL4PCPyhRkzzt1n2Rf3VJXsPlDofckXMDAkEA3QWVGO1RPx/Qthqf /5r5zQoXg0pIR6CF8bIRuDDOhnxhyv4GUGGG/FwRbdY8yhdLTN3WWJPz9gDQHjzW lEiCAwJBALMalJsUEds7KftfM2imcoem8SNfmwhTyIQgG2+eFddJtVrLz4nh81Yg occ+EIGID/G4eIj/P9Ux58ibS6UOK70CQQCi7lKTJZ8XIaUCGW6JRv2PITlkF4Zh Bvy2x8Y4OgKFMXwF4G1XJA4WSuiuR5hYggOIjqBMfAUD/GVvZPnqJelxAkAcxCX3 Y75QHX/E2Hqnvi3xMz6SmAhto3bIhC4C/R7kjeKvdk6lfgIRqpGl46fKh17qRX6E zSsMjX94jz0psbZ0 -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app02.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031512 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKygPPjl99dThxFE Jvvm49LrzH2nhr0puajkb7/ppE+q1T8BT5C3G6KhrQtDSJAka0Izr66cT2qpmLbl XQ2ZyN/XPowCqrVa0jgrWpcAwrfnhewMYR3QaT6zvGn0Edd+ZUe0CDZRDo+skZw4 gTqxLPnZH0oSKkad4zuhxDC8V82/AgMBAAECgYBKFPY1ppNnEAyN516Hij3JPbJj VmqncWmgxnACvyTpn5mmUUyxATPV5mZZyAUy/r4dCgth9ujKEIBeNS5q8M1YNbAy r2DUd9QsORrEQeHL24PgXI91zbCzQQFKMNg+cjTHUY9jsmVehQVjw1KtxIafyAuh LOD5GB3O7ClNJCH/0QJBAOEKQ6cZmVzFTX+YBnr+IGYh/tFHyPjof2BfzH8A8ajv MK+RDu3SJGfvCohOrKRyVHlD1HfNgTsXilrnbVnMXZcCQQDEX/z1b2oQtEUJB9RD tBnYrt3MceI1AWYQFRHfnNeAugYs3R+rwLh4N9j2FuR0i6OqjjKddwNTYvGaPJay u+YZAkEAxjOdHDpeqaeYty01X/QcoveED9zys89KCJ63ZJB3RzvLnIXdKTbxG50c oKryQS/1GIzWP+H+1QXJtICp/fIR5wJBAIstPKr2e8W6/fKYiegyDN91j90GGbxX cW6UgEZrcpDZRuclEP05aYRKkIpZTzEKhsSqY1UWtFS1G2ak6mliooECQQC/sXa3 TW4WZ5Gsdai15+zuycbJO0x30jYJWwwDF+8ExP9GBoN50s27/uWpYMKS/K5lt8P0 2rhKu/RFdItZukSi -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages01.phx2.fedoraproject.org.crt0000644000175000017500000001005712231547317032507 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 15 (0xf) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-packages01.phx2.fedoraproject.org/name=shell-packages01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c1:08:27:90:ec:80:49:61:9d:6d:02:2a:bb:22: b1:4f:d6:2b:f3:cf:90:90:91:38:2b:59:a6:90:2f: 6a:41:82:4f:15:12:4e:15:fc:89:f7:a5:57:96:70: b8:e5:81:5f:da:8b:c7:aa:5b:b3:8c:61:be:e9:13: f7:43:f3:69:a2:09:1a:7d:72:25:c5:6f:28:be:b7: 29:1e:47:f9:8e:70:36:36:ca:0c:75:df:3e:7d:c1: ba:01:d1:76:cb:ee:b5:bf:c4:93:13:37:b1:79:ed: 89:e7:f8:f9:f5:53:93:68:ef:6c:ca:a5:6d:af:d7: c3:ca:a9:94:49:63:d6:a7:e1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 4D:1F:87:3B:3A:69:9E:5B:4F:65:3A:EA:C4:77:90:F9:8A:C3:41:5B X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 7e:b5:e5:d2:05:62:4f:52:22:b4:d0:36:a2:c4:56:b3:7b:c4: 50:9b:92:95:00:1d:10:0d:1b:7b:8e:9e:d0:a9:46:dd:c2:f7: a1:a1:2b:09:f3:90:9b:bc:a9:3c:5e:00:36:42:6c:c3:59:a1: b8:6a:b2:24:00:40:57:69:de:bd:af:61:5f:d7:7d:cd:77:50: 50:c5:f1:43:75:5b:aa:af:13:86:ca:ba:64:f2:bf:0f:d5:b6: c8:6f:83:28:39:94:13:d6:56:85:2d:4d:df:dc:84:12:1d:aa: 30:14:39:e0:12:d9:3d:61:2e:22:1c:79:18:fa:4a:9e:17:0d: db:85 -----BEGIN CERTIFICATE----- MIIEUzCCA7ygAwIBAgIBDzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTAwLgYDVQQDEydzaGVsbC1wYWNr YWdlczAxLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMDAuBgNVBCkTJ3NoZWxsLXBh Y2thZ2VzMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYX YWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBAMEIJ5DsgElhnW0CKrsisU/WK/PPkJCROCtZppAvakGCTxUSThX8ifelV5Zw uOWBX9qLx6pbs4xhvukT90PzaaIJGn1yJcVvKL63KR5H+Y5wNjbKDHXfPn3BugHR dsvutb/EkxM3sXntief4+fVTk2jvbMqlba/Xw8qplElj1qfhAgMBAAGjggFXMIIB UzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQg Q2VydGlmaWNhdGUwHQYDVR0OBBYEFE0fhzs6aZ5bT2U66sR3kPmKw0FbMIHVBgNV HSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQG EwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZl ZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEP MA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9q ZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQE AwIHgDANBgkqhkiG9w0BAQUFAAOBgQB+teXSBWJPUiK00DaixFaze8RQm5KVAB0Q DRt7jp7QqUbdwvehoSsJ85CbvKk8XgA2QmzDWaG4arIkAEBXad69r2Ff133Nd1BQ xfFDdVuqrxOGyrpk8r8P1bbIb4MoOZQT1laFLU3f3IQSHaowFDngEtk9YS4iHHkY +kqeFw3bhQ== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/07.pem0000644000175000017500000001002312231547317023377 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 7 (0x7) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app05.phx2.fedoraproject.org/name=shell-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:bf:cb:b3:59:50:a2:bc:de:06:de:e6:e6:47:e3: 45:12:0e:86:a0:5b:8e:84:8a:4a:44:80:f7:06:bf: 3d:5f:6d:01:e0:dc:78:4d:af:5c:b9:db:5c:1d:61: c7:c2:5b:a9:1b:82:66:56:1f:2b:cf:33:14:6c:9c: 39:36:21:42:be:60:ca:79:53:3b:8e:a9:3c:b6:18: 11:96:d0:73:c6:5c:74:0b:0a:a7:48:9d:3e:1c:0c: 1e:b7:c9:f3:d1:47:28:d1:47:31:92:c9:d4:b9:61: 54:f7:92:7c:0b:d9:d4:81:1e:41:84:e2:3f:90:44: 00:5b:ef:dc:69:cf:79:5c:59 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E1:C3:41:E8:A2:BA:2D:DC:DD:AD:45:CC:29:A2:0C:E7:F6:21:62:D9 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 6d:ca:0c:aa:bf:2e:75:b5:cb:c7:f7:f9:b2:40:ff:2a:d9:7f: 06:8e:ed:fb:69:aa:bb:36:d8:23:aa:58:58:31:b3:62:7e:88: e3:45:54:4f:43:9d:79:d4:50:ba:57:7d:3c:92:0a:d3:a9:08: 1b:df:a0:ff:5e:e4:38:72:9f:0d:cd:b8:52:4d:53:bd:06:1c: 99:e6:2b:07:2e:39:f7:24:71:a8:1d:70:1a:e2:31:46:d3:af: 85:5f:e5:f5:9f:2a:76:88:a7:87:43:b2:7a:36:76:64:88:45: 9e:69:20:74:e6:0d:ab:5b:5e:f1:e1:82:51:ac:d7:c7:5d:5b: ca:c5 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBBzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw NS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwNS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAv8uzWVCi vN4G3ubmR+NFEg6GoFuOhIpKRID3Br89X20B4Nx4Ta9cudtcHWHHwlupG4JmVh8r zzMUbJw5NiFCvmDKeVM7jqk8thgRltBzxlx0CwqnSJ0+HAwet8nz0Uco0UcxksnU uWFU95J8C9nUgR5BhOI/kEQAW+/cac95XFkCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQU4cNB6KK6LdzdrUXMKaIM5/YhYtkwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAG3KDKq/LnW1y8f3+bJA/yrZfwaO7ftpqrs22COqWFgxs2J+ iONFVE9DnXnUULpXfTySCtOpCBvfoP9e5Dhynw3NuFJNU70GHJnmKwcuOfckcagd cBriMUbTr4Vf5fWfKnaIp4dDsno2dmSIRZ5pIHTmDatbXvHhglGs18ddW8rF -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/0E.pem0000644000175000017500000001005112231547317023416 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 14 (0xe) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-fas01.dev.phx2.fedoraproject.org/name=shell-fas01.dev.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:df:60:8a:56:a3:8e:46:fa:db:94:95:3e:27:ba: 87:38:f5:0f:f7:4f:29:41:38:25:b6:f5:1c:bf:49: 89:38:41:ed:29:26:f9:96:6a:0c:98:16:ed:0d:e9: 01:56:d5:f5:83:07:7e:8b:40:c7:df:89:91:2e:ea: 0d:82:d9:91:13:35:61:d1:22:e8:56:96:18:a0:45: 3f:45:57:91:d2:86:76:58:66:f2:38:70:fb:db:81: 2a:b5:d6:a9:01:80:85:59:97:d3:3d:49:35:c6:6c: 2d:b5:a8:47:50:9d:b4:b9:79:95:8b:c2:6b:25:20: f3:e8:96:6d:79:fc:53:be:a5 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E7:96:A6:27:1B:7F:5F:3A:37:D5:0D:67:56:D5:65:0D:A5:DF:58:0A X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption ef:83:7d:74:e5:d4:ef:85:c1:21:cd:c1:fa:eb:6e:75:67:ea: 75:56:59:d2:a2:1b:33:16:4e:7f:47:fa:19:64:b6:01:9f:c0: d7:c6:2f:c3:ff:fd:62:9e:e2:7b:1d:6a:32:32:14:fc:83:f9: e4:7c:58:f7:7c:03:2a:d8:84:7f:49:5e:c4:84:ef:73:1a:6f: 7e:e0:a5:4b:19:11:49:c4:7e:ba:30:b5:ba:84:e6:b5:1b:c1: 7f:ad:10:75:99:5f:28:55:1b:48:9b:ee:30:7e:be:fa:a2:0f: 31:0a:5d:4d:f5:34:7f:66:aa:6f:0d:d6:e3:8f:f6:ba:72:56: 5f:f8 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBDjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZzaGVsbC1mYXMw MS5kZXYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmc2hlbGwtZmFz MDEuZGV2LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDfYIpWo45G+tuUlT4nuoc49Q/3TylBOCW29Ry/SYk4Qe0pJvmWagyYFu0N6QFW 1fWDB36LQMffiZEu6g2C2ZETNWHRIuhWlhigRT9FV5HShnZYZvI4cPvbgSq11qkB gIVZl9M9STXGbC21qEdQnbS5eZWLwmslIPPolm15/FO+pQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBTnlqYnG39fOjfVDWdW1WUNpd9YCjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEA74N9dOXU74XBIc3B+utudWfqdVZZ0qIbMxZO f0f6GWS2AZ/A18Yvw//9Yp7iex1qMjIU/IP55HxY93wDKtiEf0lexITvcxpvfuCl SxkRScR+ujC1uoTmtRvBf60QdZlfKFUbSJvuMH6++qIPMQpdTfU0f2aqbw3W44/2 unJWX/g= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app07.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031476 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMiYm9kaGktYXBwMDcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMiYm9kaGktYXBwMDcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBALHJHSTd/YFdzvsw0E/TTlpd9x2m252vTueJy4Pd IsNrTMYuNn6KPlDhk8zJsvuXnYK090XVUsz7Yrayo78DERWpdkTZiWhr2Pm8UlSB R5sr02Kvvr0W2gmoMA0VxvyDucWXkfnGKpMCLNVwnYMgB9k0Dt7cB0TNtITTzChw 8oiLAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQA0em33ZbVhyROZwAwOVLHUYkBq Kk9p0D8qk5eQk37aQJiSdnvX42QIjinpt/sP2P8YOLOClgNNtbUgP5UsERIrBf7I Ke6OfEwdwZ7EYeZ36txNAsaO9YhFOyxloKvzAqFWixWvEZDUfIAyboCpwDFzVbC5 BwZ3o8B2Ps9jeYYupQ== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/18.pem0000644000175000017500000001002512231547317023403 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 24 (0x18) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app05.phx2.fedoraproject.org/name=bodhi-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c8:42:bf:54:60:1b:06:3c:67:c9:80:0f:91:11: 5d:e9:71:bc:c2:50:c9:72:97:17:7b:3c:74:01:d3: c5:bd:d2:a5:0e:29:74:93:40:99:3e:2c:a9:0c:11: 89:4e:27:96:0e:38:3e:d1:b8:d3:ba:b8:30:8b:4c: 46:db:c3:85:43:5f:a9:2e:ce:37:28:96:72:89:e9: 53:1c:d9:42:71:6e:c5:86:be:9d:6f:56:8c:42:46: 56:cd:d5:38:c9:b7:5a:d5:9b:ee:67:04:b3:39:a0: fe:14:e1:f3:5b:d5:47:74:49:03:c4:f1:42:54:ff: 8d:12:a2:bf:3b:e9:26:51:5f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E1:B5:55:CD:B1:4D:4F:E3:BC:BA:A7:7F:57:9C:D3:4E:5B:01:51:DA X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption a1:49:36:a4:c7:27:6b:11:3d:e3:a0:b6:d1:d9:4b:fd:3e:a6: 09:e6:24:7b:18:fa:7b:ec:7a:e6:ff:bb:5f:bc:1a:62:bf:d1: 80:07:39:32:15:47:2e:ca:2a:a8:58:47:56:24:07:79:24:6b: 54:9e:ed:80:78:f5:c6:17:ea:0f:91:78:c2:2f:ed:99:3e:f9: f3:af:c7:ea:87:6a:87:ad:cf:a0:e4:71:67:3f:17:56:9b:9b: c6:4f:25:6e:21:23:80:e0:7a:7b:69:fa:c8:5b:7a:51:1f:31: 70:13:b4:c3:1b:51:37:9a:e7:b6:9e:f8:2a:71:fd:11:7e:fd: ff:21 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBGDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw NS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwNS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyEK/VGAb BjxnyYAPkRFd6XG8wlDJcpcXezx0AdPFvdKlDil0k0CZPiypDBGJTieWDjg+0bjT urgwi0xG28OFQ1+pLs43KJZyielTHNlCcW7Fhr6db1aMQkZWzdU4ybda1ZvuZwSz OaD+FOHzW9VHdEkDxPFCVP+NEqK/O+kmUV8CAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQU4bVVzbFNT+O8uqd/V5zTTlsBUdowgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAKFJNqTHJ2sRPeOgttHZS/0+pgnmJHsY+nvseub/u1+8GmK/ 0YAHOTIVRy7KKqhYR1YkB3kka1Se7YB49cYX6g+ReMIv7Zk++fOvx+qHaoetz6Dk cWc/F1abm8ZPJW4hI4Dgentp+shbelEfMXATtMMbUTea57ae+Cpx/RF+/f8h -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/26.pem0000644000175000017500000001001512231547317023401 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 38 (0x26) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fas-fas01.phx2.fedoraproject.org/name=fas-fas01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:9d:a7:37:34:0a:a2:66:c0:a8:c9:40:77:58:d4: 41:a1:ab:88:b7:e5:75:87:c5:7d:2c:d3:71:5d:ee: 6f:0c:11:1f:51:3b:8c:2e:a0:b2:54:e4:01:4a:a0: d0:08:c3:7b:18:06:2a:1a:f5:9f:4a:47:5b:2c:8f: d5:83:f1:d8:87:24:82:61:37:b2:87:81:78:23:79: b7:9f:5e:22:3a:75:11:a3:69:e6:94:c0:33:03:53: d1:71:45:5e:4e:ca:cc:95:a6:92:93:7c:ae:6a:e6: 89:71:c1:78:67:0d:c6:ef:41:b4:c8:57:ab:31:82: 80:b5:52:15:d6:b3:29:3f:99 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 2C:3A:53:24:0B:F6:30:F6:AC:66:FA:3E:F6:85:03:AA:B6:7E:FB:67 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 49:0f:21:c5:45:b6:a8:1c:a5:b2:e7:fc:c2:04:07:3c:a9:2d: 26:f6:bd:23:26:f4:77:b2:46:66:e3:20:4a:36:60:c9:19:8c: b5:45:4e:f9:25:00:85:57:80:7c:7e:78:f8:e5:5b:47:83:20: cd:5c:f1:91:87:d7:b1:4e:71:7e:ac:1e:d6:62:25:28:d2:d3: 79:c0:3d:78:30:5b:73:36:56:47:59:21:9e:f1:ed:83:e6:73: 9f:3d:85:42:30:93:63:00:3e:83:58:0d:0b:4c:6e:3c:33:a0: d5:ff:eb:f9:a5:5f:4f:a1:e4:66:86:d2:7e:38:dc:67:be:5d: a1:19 -----BEGIN CERTIFICATE----- MIIERTCCA66gAwIBAgIBJjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB1DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSkwJwYDVQQDEyBmYXMtZmFzMDEu cGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEpMCcGA1UEKRMgZmFzLWZhczAxLnBoeDIu ZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXBy b2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdpzc0CqJmwKjJ QHdY1EGhq4i35XWHxX0s03Fd7m8MER9RO4wuoLJU5AFKoNAIw3sYBioa9Z9KR1ss j9WD8diHJIJhN7KHgXgjebefXiI6dRGjaeaUwDMDU9FxRV5OysyVppKTfK5q5olx wXhnDcbvQbTIV6sxgoC1UhXWsyk/mQIDAQABo4IBVzCCAVMwCQYDVR0TBAIwADAt BglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0G A1UdDgQWBBQsOlMkC/Yw9qxm+j72hQOqtn77ZzCB1QYDVR0jBIHNMIHKgBQAmKXV 58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgT Ak5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEP MA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1z ZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmeCCQCO6yjY qROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZIhvcN AQEFBQADgYEASQ8hxUW2qBylsuf8wgQHPKktJva9Iyb0d7JGZuMgSjZgyRmMtUVO +SUAhVeAfH54+OVbR4MgzVzxkYfXsU5xfqwe1mIlKNLTecA9eDBbczZWR1khnvHt g+Zznz2FQjCTYwA+g1gNC0xuPDOg1f/r+aVfT6HkZobSfjjcZ75doRk= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/scm-pkgs01.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031350 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOA6AyhHzuTM2mdV zeS0k0NpqNVuBqF/peFWQO+EnWKr5AzQAezBYGZVuhIodJKCYijLEXtWOH7+kXUG 505WxBwBzyUsVM9oWskCaxBGeWUwHXbhXeF5a3vv3QnYwYoNEPh9LekLvGenJVWt 8DxvCWGhuegpSmXR9KyARdc5K4vPAgMBAAECgYBNcHuqq7IunvlG+wFS3XKGs7UV kRxFJnq5qjpe/mQEseze5+/iPp72eOD8aHBqMRGJmSh+ejak1XKTAkFccubjR41q KNoLRl4JyO9ei45Eo534kkdGFK5xRs7YdrXOrrknTkx+Tp3GpeTxmuQ3TEJQoJUe Twdguojqw9RTt275EQJBAP4fdyfniSkJFlIlm7zso6M7lVQbWR5TvgwdbVkDzuUI mKKIGawQDCbtXL9BfRVboPSy1TWQOxwykpa75xwVrZUCQQDh4gOt7Cc6wesSQHB0 gNUp9Fwy+10JlX3QM+QCK3i8UGvlAqOcyzh3BD6EEpf8E/0hmH5JSGMDpVAUqhZY dRLTAkEAnbkh156ZPuLo+6tj8epd1h5RHJasxWnsdtB84da/PuAK/DXE2UpMgIyq F/qpi+wHBllIg6o1RdcNrIiLdJ7v0QJBAMTLDVuUd+UYF34SSCcoKw7fRwhfuIHm DPO8kbRWPV0LT8T4lKTA5JPETdbxABrtK0b+vV+JQkJl3yvxt4Afl2MCQDRiyVDD mFF+zbNqXTs4yziKzNVnWzB49J0f++98h+/72s5zBRrD9svFEOBNmy7K26dwa9qP YLC5UwO2y3FBCAg= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages02.phx2.fedoraproject.org.csr0000644000175000017500000000150612231547317034031 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICMTCCAZoCAQAwgfAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzE3MDUGA1UEAxMuZmVkb3JhdGFnZ2VyLXBhY2thZ2VzMDIucGh4Mi5mZWRv cmFwcm9qZWN0Lm9yZzE3MDUGA1UEKRMuZmVkb3JhdGFnZ2VyLXBhY2thZ2VzMDIu cGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVk b3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM7lpFZK nsxGMkg2wt1gVjQf0lAGjn1BwmSaFikVchC6g4fgKZn9+Rs2BmQg7pSSAPaKHY4N 3MfvsSauWHCwnnrdKu+3Ex7OBp5esLdG+LopVt9X+p7252ZMxkuZKg99mNbdJlA4 rw50NApQI3vc/MXtSHbg/E7IUGF8GE1B1CcNAgMBAAGgADANBgkqhkiG9w0BAQUF AAOBgQCbLantimjnqx45VP/yFum2pSXLU/1xHvqYp4/gaE0vIshTwErt0v/U4fIQ osY0OUDoF/k1t/Imb8IHK7yxypx4zrePI0ErgVOV1DcMOeXu/6EeZ/43zQUhU34v 5ojRjGD3L5v6dAQuTG0NpUDgmzasoLmOMp3DnztAnAL+BQowGg== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app03.phx2.fedoraproject.org.key0000644000175000017500000000162012231547317031465 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBANXm1363KFq3lbmf uKJwZwMYQe0t6wxjHdITPyZ7JbhEIExXD4/Gnsqs+o/jmOx0KkJRc4jjR26ySuBk oGkGuTzTxXq7FMFCPZNoVYS0VcH73elgIgg5MB0UBwEwJXGAq4WbiAqGDwkBDlS0 CZBHRIvvLcpYZffrYg+sKTdn4V8XAgMBAAECgYBfSMeyENEPKDywRbAv3DZnMIUd rJjKGdUM4bn94Fm7Lc3dc+Lgvy+5RTkQo+hZXJ3+kN4Qmn4Vl6K3NtwmLPKSj52K CEszKTN4v/mAKBIlVYZNH6Xmwq7JUjdrbJ+XrmPkR8/UvW5p1Toq1YdRy2psb7ge dOCXagplM13LmtwsIQJBAOxB1nq9rgtay6U1NknevYrQKr2CAAnH2yiL4CKwvvBG J7U19dDT8sWg1Ks4bNqFsWlNWIifGWlyam+KJv4pkdkCQQDnxsMVlu9mCiK8Y7P/ tZj9dwTJf193SAXciEAllDpXnLXax51ejHON34fb5rLF0X9lIPJ+4hFcngNvR4qu XPJvAkA9KGniChn0vIM8+AJeqvc76Nk3h2CFJ6Q24caalFBJGJAM27QPY95ThGep Dwk2pCch0DDb5PuKDWE6EHQ5lP85AkBTogUC5VO9Hisqj0+EFaL+0tOHYc6w2+xB h2ieJr5mnsWADEdctpF7wAzl7HjVqKKvexQFdM2O/fV/UfFYuXFBAkBd6uhiPyjX rlT5kLvQNWWuIC3xxl3O0Eu5SYD1XA9g3mQa781d9n1TXfkjNAswJVwRiqjWBDmf JTdMt2e9QhRC -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/0D.pem0000644000175000017500000001005112231547317023415 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 13 (0xd) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-fas01.stg.phx2.fedoraproject.org/name=shell-fas01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:de:ab:04:fd:4c:1b:4b:f1:9b:ac:f4:ba:a4:ab: d2:ea:fb:0e:f2:07:eb:e3:af:73:6e:a5:2b:61:1c: 43:f2:8b:6a:e2:03:a1:6b:02:70:96:fa:44:a9:7c: d1:b0:1c:bc:f4:b1:b8:89:f8:bb:03:8c:10:b9:0c: e4:62:8e:c5:95:b7:38:1a:e2:82:24:6d:9f:86:ac: 34:5f:04:04:43:5c:a3:05:82:bc:b1:a0:b3:e6:9a: d0:12:c9:7c:56:55:d5:51:11:51:b8:2e:87:43:1f: 2c:85:7f:70:87:44:93:cf:d7:95:9b:38:fa:ef:27: e6:25:f8:01:8d:70:ea:3b:69 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 18:2B:D1:42:4E:D1:DE:2E:4A:39:66:9B:1D:B9:21:9C:38:A9:CE:78 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 61:52:82:64:2d:70:0e:14:a2:5a:34:20:f3:5e:81:e4:4a:37: 45:1b:64:ca:78:58:ff:18:6d:66:be:47:a3:07:31:ba:2a:d7: 81:93:32:37:34:7d:d9:7c:89:1c:e8:30:eb:9d:a1:30:b3:b5: 95:29:28:bc:66:6d:55:5b:75:3a:f7:b9:55:87:49:10:e5:d9: b6:d0:71:22:46:96:b3:23:c8:29:b2:58:f8:45:6d:03:f3:d5: ff:96:11:a8:0b:ec:b1:b1:7b:a0:ad:9c:0e:93:26:df:de:f4: 69:f2:cd:35:ec:85:8d:ac:56:59:c9:f3:cb:77:6e:96:ee:cb: 65:3e -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBDTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZzaGVsbC1mYXMw MS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmc2hlbGwtZmFz MDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDeqwT9TBtL8Zus9Lqkq9Lq+w7yB+vjr3NupSthHEPyi2riA6FrAnCW+kSpfNGw HLz0sbiJ+LsDjBC5DORijsWVtzga4oIkbZ+GrDRfBARDXKMFgryxoLPmmtASyXxW VdVREVG4LodDHyyFf3CHRJPP15WbOPrvJ+Yl+AGNcOo7aQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQYK9FCTtHeLko5ZpsduSGcOKnOeDCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAYVKCZC1wDhSiWjQg816B5Eo3RRtkynhY/xht Zr5HowcxuirXgZMyNzR92XyJHOgw652hMLO1lSkovGZtVVt1Ove5VYdJEOXZttBx IkaWsyPIKbJY+EVtA/PV/5YRqAvssbF7oK2cDpMm3970afLNNeyFjaxWWcnzy3du lu7LZT4= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app02.phx2.fedoraproject.org.crt0000644000175000017500000001002512231547317031463 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 21 (0x15) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app02.phx2.fedoraproject.org/name=bodhi-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d9:b1:07:22:2d:26:46:b9:33:8a:4b:c6:5c:92: 06:2a:cf:c2:90:5a:36:b8:fc:81:48:b2:ab:97:56: 43:eb:b3:8d:76:ca:12:57:c6:56:90:92:13:70:43: d7:65:9a:52:61:cd:69:d9:76:aa:64:29:c9:09:49: 83:9e:03:b2:1f:25:26:e1:b5:be:b5:98:c8:09:71: 31:cd:84:5b:cf:1c:8a:37:4b:12:0f:b7:c5:95:9d: d1:a2:00:a0:78:7f:86:80:c0:e6:05:b2:9b:f7:0d: 77:c3:cb:7c:d9:db:b9:63:b0:12:29:a0:05:ee:4f: 61:76:55:ca:0c:ea:a2:bd:13 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 84:80:BF:15:57:CB:7E:84:06:34:8E:81:73:0F:2F:7D:82:E1:ED:CC X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption c6:62:0a:ac:71:8c:48:32:38:40:4f:e9:7d:08:19:a7:28:12: d9:18:c6:30:04:b3:93:6f:b1:11:03:96:69:b3:60:70:bc:bb: 2f:52:61:28:09:c4:da:b3:a4:b9:29:16:34:b9:ce:e8:ec:77: f0:d4:93:09:c3:5e:08:aa:8a:da:88:39:6b:79:88:c9:a2:d1: 8f:59:a5:78:66:43:eb:86:50:96:ee:25:4a:8b:7e:67:54:32: 60:76:a6:90:a3:d7:b2:8e:0b:d2:eb:61:29:50:db:05:e9:92: 64:98:db:d2:99:3d:f0:66:66:b1:bd:23:7b:16:10:78:97:ea: b9:c3 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBFTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw Mi5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwMi5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA2bEHIi0m RrkzikvGXJIGKs/CkFo2uPyBSLKrl1ZD67ONdsoSV8ZWkJITcEPXZZpSYc1p2Xaq ZCnJCUmDngOyHyUm4bW+tZjICXExzYRbzxyKN0sSD7fFlZ3RogCgeH+GgMDmBbKb 9w13w8t82du5Y7ASKaAF7k9hdlXKDOqivRMCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUhIC/FVfLfoQGNI6Bcw8vfYLh7cwwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAMZiCqxxjEgyOEBP6X0IGacoEtkYxjAEs5NvsREDlmmzYHC8 uy9SYSgJxNqzpLkpFjS5zujsd/DUkwnDXgiqitqIOWt5iMmi0Y9ZpXhmQ+uGUJbu JUqLfmdUMmB2ppCj17KOC9LrYSlQ2wXpkmSY29KZPfBmZrG9I3sWEHiX6rnD -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app05.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031516 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMic2hlbGwtYXBwMDUucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMic2hlbGwtYXBwMDUucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAL/Ls1lQorzeBt7m5kfjRRIOhqBbjoSKSkSA9wa/ PV9tAeDceE2vXLnbXB1hx8JbqRuCZlYfK88zFGycOTYhQr5gynlTO46pPLYYEZbQ c8ZcdAsKp0idPhwMHrfJ89FHKNFHMZLJ1LlhVPeSfAvZ1IEeQYTiP5BEAFvv3GnP eVxZAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQAwhHS0zBhe0Rwr8yZ81K6WJ3N/ AGfBr/UG01eXjWM4GJW1ucrTqPy1riToBd68gX7rf9tzV27zTjw6Q8yTFPWvmamg yl9l2IM+64pCJW/6mEB2SH2b+CoObVSUiIASuiSGg4HhX8Nr/XnN48YlLpuA9SS8 TonHyj3uFfrqjH9/Ug== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app01.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032345 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANPHIrCkF2M+xamx an7WXklEg4Ff4AX0BIb3PZWjbEPYeM0REexQdB5oe3hS/9BgHm1pYAp48Uco0AdY BR9d+sccG6+8PRCOX36wJpZuLdqFcW7QBbZ2w+0kLo5tsdCNdwshsQeZsRNw7pFm ARYx+bZ2mgTGpBqISfSJWwx+1DkFAgMBAAECgYAWZaIKkmAS0+mtp6C+p0czcnaB 8TTNDGCKMY2mzLC/gB5Oebauilete5lLQWPikrfFFHbexKmnv+44SJvKFHNX+CIK f/daBlQVxIXF8erM2SKZLo1JCSkQIc2xb4ftJJ1yPNURUUK5emdZ8dsYTu+zAwkK hQtpG4NWe6aSrxcS4QJBAO7HIG0rDhQDAEbssgOS4CHQ8VHHoarDH70AWoW3ogVW Zc9xbdKOC28/Bz/ma+AnOMrc8kRhDWUt5/TtTpaLdC0CQQDjDXj2bjzr+IryWQL5 OQimDrGtbce7oxYPZCgdjqyu9j/P7b7/KpzaGN3pMi/qCH4WQjRNOaCMsRWExBWt tqc5AkEAnNSTOsDNtV0nQG5Umb5NkkhvSByL1eHlJblmu28abtEJe8/vpxz+66mF NHY+onKAfdXTFhB8wNj/AkMfnAeqXQJAYxoVSxJwuto/42mgl6EiOkC9oqIBBNA5 J7yimcwVaUSIM7xkmkFCNxuVeFx0d2T/i72X0IEvp1j/uHRRtgG8WQJBAI5VFs+j l/aVhotz1jxND1jI9UYlbnIeDbdiGUH0WFjYDukzuXCCo5xmFoASAH6SYcTKXUkp VRTVc3XglnuPFj8= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/dummy-revoked.key0000644000175000017500000000162412231547317025757 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAK/6iylIhjweZgFd +VCXCzox9hYAq5phtjYZPuN6dTba1sRwQTEDnRedjV36x+YGLkVi8IJyEJipKy7L +056zFDlXFBXAQxBZge3Bm/kCxPds87SjCzZwx2kIlGrzUd/WzUysG9FAfXaeI35 e2/BgfGmQEluJsHXqL0e+wxgEd+PAgMBAAECgYB0KIHRB0Erz7jvMBOQQZM0n6Pb FCgxaEv426MqTjuusLbQxXQSoVsBKosUvKNUT0IdpNgyko4n5opNgnFodSAFMZL4 KOBv4ZPjKtNUDNxf+v88GtrnIIX6BjQ8CC/e14nGNBT/G0aF6eWLSR4HKdfFAmRq me0YOOozVAwkn4uhMQJBANeVggJTmI2pp2S0Q7I4K6N/1stjxfMTNQLLEUoqDtVf jH/o7E4rEUVF5yTekDgmhC91prtExHVlvhzlmLZjqmcCQQDQ+ENSUBNjnA93v5gk EXo5aibroMJY13voE0WWK71qpAXtzX/TfozarTKC6kPczhe1JTVLJpOjSNLiG12d YbiZAkEAg8LN9gwPxi11sLf4VBm+mixNJHwzhPAtSyq/w3tXG5RNc/PxUYlDAfrK Xh9lN9xamAMpR3WtOS9Y9aJiJr9dawJAKxmZYQfNB/VvJ0aoDYBhUig3wM+WZhaD otkeuBtrZOxRoLuKysdGK/AfA+tndco4D4+OD2L0fnANtr7oLwaxuQJADpD0Di6M jVWWpmXU0GATtrv1yTc+UfIaP99okarsinZ3KwiX98Byfu0NaKoL7UT3aYefY62O rJfqn6Xk6KdHkg== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/0A.pem0000644000175000017500000001005112231547317023412 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 10 (0xa) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app01.stg.phx2.fedoraproject.org/name=shell-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c1:bc:81:28:0e:43:20:28:23:dc:7f:93:1f:7e: 03:66:b7:64:86:99:2a:c5:3a:dd:c0:76:e9:26:4b: c1:ab:77:58:54:c1:b5:13:67:32:51:85:6d:1f:d0: 2a:6b:47:66:6b:d7:c9:2d:de:f7:08:69:0c:b2:62: 31:22:9c:80:c1:82:fa:d8:5f:95:2b:d7:48:b8:2d: 6f:f0:20:4c:b9:c7:9a:9b:95:30:cc:eb:10:80:e9: db:e8:50:ff:4f:a4:63:b5:d1:00:a1:44:6d:e6:5c: f1:77:3f:b1:0d:ca:8a:fb:cc:be:89:0d:11:0a:93: ca:16:05:08:cd:ea:9e:b1:9d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 4A:E2:CA:AC:F3:6B:6C:F8:87:E9:9E:F0:B5:FE:4C:F1:0F:DB:93:13 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 07:57:c8:52:52:ea:cb:a6:f2:b2:e3:79:8f:35:d5:38:f3:1c: 4e:a0:a2:61:42:bc:d8:fd:40:bd:23:24:32:ea:45:c9:0f:0f: 44:b4:0b:40:c7:14:84:52:d1:cb:b9:48:6f:45:7e:22:50:7b: 36:f1:e7:94:fd:49:96:26:05:14:b7:52:83:f3:80:ff:fc:88: 87:29:d4:0f:38:34:9c:4c:4f:11:58:be:88:99:54:0f:17:5f: 85:07:47:d9:b1:fd:a3:d8:6d:ec:ae:77:7d:b7:d8:3c:f9:fb: ea:dd:41:f4:bd:9d:20:65:16:05:ba:f8:39:63:d0:83:94:7f: b8:f5 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBCjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZzaGVsbC1hcHAw MS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmc2hlbGwtYXBw MDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDBvIEoDkMgKCPcf5MffgNmt2SGmSrFOt3AdukmS8Grd1hUwbUTZzJRhW0f0Cpr R2Zr18kt3vcIaQyyYjEinIDBgvrYX5Ur10i4LW/wIEy5x5qblTDM6xCA6dvoUP9P pGO10QChRG3mXPF3P7ENyor7zL6JDREKk8oWBQjN6p6xnQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBRK4sqs82ts+IfpnvC1/kzxD9uTEzCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAB1fIUlLqy6bysuN5jzXVOPMcTqCiYUK82P1A vSMkMupFyQ8PRLQLQMcUhFLRy7lIb0V+IlB7NvHnlP1JliYFFLdSg/OA//yIhynU Dzg0nExPEVi+iJlUDxdfhQdH2bH9o9ht7K53fbfYPPn76t1B9L2dIGUWBbr4OWPQ g5R/uPU= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001014212231547317034621 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 43 (0x2b) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedoratagger-packages01.stg.phx2.fedoraproject.org/name=fedoratagger-packages01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d3:d0:82:a2:4c:c1:4a:3f:e3:45:a4:08:f0:b6: 46:f8:14:4d:d1:3f:da:8d:71:7a:b8:17:17:3b:5c: cf:4a:39:21:fa:5c:95:23:c1:8b:4c:80:1e:72:37: 84:92:56:47:50:34:57:fd:bb:79:4b:8b:39:af:1a: 6f:3d:af:0f:f2:34:c9:e8:9c:4b:09:c5:6a:05:42: 71:9a:90:2f:96:49:96:a5:0f:7f:d9:68:49:5f:ef: 87:90:a3:05:25:e6:44:50:41:25:25:11:7f:9f:96: 03:9d:02:f5:74:4e:3e:c2:3d:84:6f:5a:6c:3c:3e: b4:c5:cf:95:fc:87:0e:63:e7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: EE:A0:70:85:34:D5:AA:7F:CE:70:7E:5E:1B:BA:2A:D2:D6:76:B4:5F X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 39:00:c8:9c:47:15:1a:f3:f3:14:8e:d3:6f:62:b1:70:e6:0d: c6:c5:b4:a4:43:b0:23:31:95:9f:14:01:db:12:b0:7e:26:12: d1:7f:59:7f:6a:76:60:39:4f:90:bd:92:a8:ab:8c:1d:33:84: 9e:1b:52:23:be:cc:41:68:89:1c:20:84:c7:60:48:af:40:c3: aa:07:5f:fa:a4:33:d4:d8:ec:a5:01:59:a5:86:c2:17:85:2c: bb:52:8c:4e:55:79:5b:7b:54:51:5a:04:a5:37:bd:c5:b6:78: cf:9d:47:19:43:63:6c:ce:42:ed:f8:33:ab:a0:e8:31:28:54: 05:3e -----BEGIN CERTIFICATE----- MIIEaTCCA9KgAwIBAgIBKzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB+DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTswOQYDVQQDEzJmZWRvcmF0YWdn ZXItcGFja2FnZXMwMS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzE7MDkGA1UE KRMyZmVkb3JhdGFnZ2VyLXBhY2thZ2VzMDEuc3RnLnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnMIGf MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDT0IKiTMFKP+NFpAjwtkb4FE3RP9qN cXq4Fxc7XM9KOSH6XJUjwYtMgB5yN4SSVkdQNFf9u3lLizmvGm89rw/yNMnonEsJ xWoFQnGakC+WSZalD3/ZaElf74eQowUl5kRQQSUlEX+flgOdAvV0Tj7CPYRvWmw8 PrTFz5X8hw5j5wIDAQABo4IBVzCCAVMwCQYDVR0TBAIwADAtBglghkgBhvhCAQ0E IBYeRWFzeS1SU0EgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTuoHCF NNWqf85wfl4buirS1na0XzCB1QYDVR0jBIHNMIHKgBQAmKXV58RVDoSjZ/5mShbg BBXdIaGBpqSBozCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQH EwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEPMA0GA1UECxMGZmVk bXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3 DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmeCCQCO6yjYqROdfDATBgNVHSUE DDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZIhvcNAQEFBQADgYEAOQDI nEcVGvPzFI7Tb2KxcOYNxsW0pEOwIzGVnxQB2xKwfiYS0X9Zf2p2YDlPkL2SqKuM HTOEnhtSI77MQWiJHCCEx2BIr0DDqgdf+qQz1NjspQFZpYbCF4Usu1KMTlV5W3tU UVoEpTe9xbZ4z51HGUNjbM5C7fgzq6DoMShUBT4= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032256 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 27 (0x1b) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app01.stg.phx2.fedoraproject.org/name=bodhi-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ab:ae:73:d5:a8:59:9b:56:0f:9a:93:ba:61:65: 4a:0f:b7:1c:0b:cb:01:28:ed:49:4c:93:f8:b5:13: 55:56:ab:b5:96:3a:e6:05:eb:28:01:06:52:3f:ee: 83:44:92:de:c2:9a:30:66:df:45:2e:8b:f4:aa:e0: 41:78:a6:84:94:58:b8:35:55:44:2f:37:46:e6:b5: c1:40:02:ab:ab:b8:90:6a:a2:61:5d:4f:d3:8d:32: ca:75:37:13:6f:e1:54:42:d6:b5:d0:73:a6:6b:65: f2:b2:70:76:0f:eb:33:0e:2c:c0:12:6c:9a:b6:ad: 16:47:74:47:33:47:99:0b:0f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 33:67:11:D6:5C:18:7A:EF:0F:21:38:02:06:67:CA:7C:8B:09:BC:66 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 3e:43:96:43:7d:f8:3d:d1:82:23:9a:be:8e:23:e0:3f:b2:be: e6:87:b0:46:98:e2:53:2a:8f:c4:1c:71:33:cf:f2:96:01:4d: 11:51:ea:73:17:bf:7a:cd:c9:77:e8:53:73:84:12:8d:bb:9d: 19:2f:65:1c:54:ba:ff:ff:b4:ea:ff:26:02:80:8a:00:2b:3e: 6e:57:c2:e1:76:ef:ca:8c:60:4d:ce:a3:b1:20:1c:95:33:d6: e4:5f:7e:b2:fa:94:8f:01:d3:48:4f:42:63:0e:61:7b:3d:7a: 2c:e1:d8:9d:48:e9:76:d6:d5:6a:da:a2:36:b8:d9:c9:e4:08: af:36 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBGzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZib2RoaS1hcHAw MS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmYm9kaGktYXBw MDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQCrrnPVqFmbVg+ak7phZUoPtxwLywEo7UlMk/i1E1VWq7WWOuYF6ygBBlI/7oNE kt7CmjBm30Uui/Sq4EF4poSUWLg1VUQvN0bmtcFAAquruJBqomFdT9ONMsp1NxNv 4VRC1rXQc6ZrZfKycHYP6zMOLMASbJq2rRZHdEczR5kLDwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQzZxHWXBh67w8hOAIGZ8p8iwm8ZjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAPkOWQ334PdGCI5q+jiPgP7K+5oewRpjiUyqP xBxxM8/ylgFNEVHqcxe/es3Jd+hTc4QSjbudGS9lHFS6//+06v8mAoCKACs+blfC 4XbvyoxgTc6jsSAclTPW5F9+svqUjwHTSE9CYw5hez16LOHYnUjpdtbVatqiNrjZ yeQIrzY= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/23.pem0000644000175000017500000001005212231547317023377 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 35 (0x23) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app07.phx2.fedoraproject.org/name=mediawiki-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:a2:4b:a4:9b:ca:bc:d0:3a:bc:30:c7:87:79:2d: df:5b:1b:08:5e:8f:b5:1f:13:a1:2d:65:7e:27:a7: c9:3f:65:d7:a6:a1:43:db:c4:9c:6a:71:4d:65:88: 85:14:65:c0:f0:fb:a5:d0:4a:26:99:9f:82:f5:f5: 06:68:56:86:e7:67:52:90:40:d9:5c:11:f7:40:c3: 17:a7:a3:7d:45:a4:09:29:ab:99:9d:f0:39:f7:a2: 05:2d:08:34:c6:22:00:b0:e6:10:ca:f9:91:e4:a7: 15:18:46:17:c2:1c:2b:be:6c:b6:a0:f7:8c:4a:19: 29:23:d5:4e:8a:84:61:56:59 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: AB:00:98:5E:BF:83:5B:8F:25:15:E0:31:54:1D:FC:91:FD:EF:87:73 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption b9:3a:ec:d0:04:16:90:a0:85:a8:40:0d:b5:79:6b:0e:7d:9a: b1:bf:46:91:41:7c:41:4f:72:58:92:41:a1:4f:77:1b:cd:01: 42:65:25:7b:1a:3f:36:ad:96:24:e4:6b:c0:07:c1:13:6f:88: 69:6a:39:87:1e:01:80:94:4c:2e:c7:ef:a8:47:75:8f:67:4d: 77:3c:94:b9:88:d9:dc:f2:96:cf:43:6b:7b:79:bb:f8:d6:01: 6f:d5:a1:6c:d9:3d:0d:bf:29:2c:8b:32:cc:c6:fc:23:83:31: c9:7d:75:42:7e:6e:27:b1:d3:9c:fd:1c:fd:11:96:a7:a5:07: 45:b1 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBIzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDA3LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQCiS6SbyrzQOrwwx4d5Ld9bGwhej7UfE6EtZX4np8k/ZdemoUPbxJxqcU1liIUU ZcDw+6XQSiaZn4L19QZoVobnZ1KQQNlcEfdAwxeno31FpAkpq5md8Dn3ogUtCDTG IgCw5hDK+ZHkpxUYRhfCHCu+bLag94xKGSkj1U6KhGFWWQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBSrAJhev4NbjyUV4DFUHfyR/e+HczCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAuTrs0AQWkKCFqEANtXlrDn2asb9GkUF8QU9y WJJBoU93G80BQmUlexo/Nq2WJORrwAfBE2+IaWo5hx4BgJRMLsfvqEd1j2dNdzyU uYjZ3PKWz0Nre3m7+NYBb9WhbNk9Db8pLIsyzMb8I4MxyX11Qn5uJ7HTnP0c/RGW p6UHRbE= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/server.crt0000644000175000017500000001001012231547317024462 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:b1:a2:5c:d7:10:6a:83:a4:1d:65:66:51:80:f5: 72:2d:15:af:77:92:ad:1d:ad:80:d8:c8:e2:ee:cf: 10:3b:07:02:1e:4f:18:c4:47:d6:82:8d:53:ff:c2: 1b:72:49:fe:62:fe:68:26:f0:91:8f:d7:e0:9e:b8: 46:96:ef:ef:4b:07:f4:21:10:09:d9:90:92:a6:25: 3a:29:ca:b6:e8:69:06:df:ba:a7:73:b1:71:c3:6c: 1c:d3:7d:d6:ff:3a:ce:15:b7:bc:7b:fc:6c:6b:d6: 6f:a7:fd:e0:28:59:07:49:bf:66:9c:3e:1f:5f:b8: 85:c4:61:51:f9:67:00:40:a7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: Easy-RSA Generated Server Certificate X509v3 Subject Key Identifier: 50:DA:1E:62:70:71:C2:72:0D:67:F3:F1:24:A2:E2:9E:31:E1:A3:F0 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Server Authentication X509v3 Key Usage: Digital Signature, Key Encipherment Signature Algorithm: sha1WithRSAEncryption e8:01:80:e4:eb:85:87:d5:be:94:80:e4:e5:d2:df:e8:c6:b5: 38:1e:69:31:c0:73:1e:00:60:7b:f4:5f:5c:cb:68:d0:94:d0: bd:9c:ea:33:bd:a1:3a:83:cd:cf:29:57:8b:95:02:d5:bd:fb: fc:33:d8:a8:da:05:84:67:e2:f4:8b:ba:53:e3:e4:67:0d:52: c1:ce:9f:a9:63:ca:86:59:bd:fa:e7:9d:48:8f:b1:e1:fe:a0: a5:6b:0d:6f:03:9c:30:26:80:1b:90:30:e6:a2:ca:4c:29:1e: 74:98:5d:cf:34:fb:d7:fa:7a:3a:af:51:96:87:02:dc:18:0a: fb:83 -----BEGIN CERTIFICATE----- MIIEKzCCA5SgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALGiXNcQaoOkHWVmUYD1 ci0Vr3eSrR2tgNjI4u7PEDsHAh5PGMRH1oKNU//CG3JJ/mL+aCbwkY/X4J64Rpbv 70sH9CEQCdmQkqYlOinKtuhpBt+6p3OxccNsHNN91v86zhW3vHv8bGvWb6f94ChZ B0m/Zpw+H1+4hcRhUflnAECnAgMBAAGjggFxMIIBbTAJBgNVHRMEAjAAMBEGCWCG SAGG+EIBAQQEAwIGQDA0BglghkgBhvhCAQ0EJxYlRWFzeS1SU0EgR2VuZXJhdGVk IFNlcnZlciBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUUNoeYnBxwnINZ/PxJKLinjHh o/AwgdUGA1UdIwSBzTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAx CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUG A1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMG ZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZl ZG9yYXByb2plY3Qub3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwEw CwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBBQUAA4GBAOgBgOTrhYfVvpSA5OXS3+jG tTgeaTHAcx4AYHv0X1zLaNCU0L2c6jO9oTqDzc8pV4uVAtW9+/wz2KjaBYRn4vSL ulPj5GcNUsHOn6ljyoZZvfrnnUiPseH+oKVrDW8DnDAmgBuQMOaiykwpHnSYXc80 +9f6ejqvUZaHAtwYCvuD -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app04.phx2.fedoraproject.org.crt0000644000175000017500000001002312231547317031505 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 6 (0x6) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app04.phx2.fedoraproject.org/name=shell-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:e8:ae:46:69:1a:0e:10:7f:93:dd:18:cf:e0:62: 75:ef:44:6f:fc:79:d3:c6:6b:0c:27:84:2e:b5:41: 53:eb:ad:24:41:1c:1b:2c:8e:da:87:17:9b:12:35: cf:d4:e7:68:93:47:12:b6:e3:10:e7:aa:73:1e:fc: 82:47:1f:92:30:ba:89:2e:36:91:b6:55:32:c0:12: cf:75:6b:5b:98:06:06:5c:92:a5:fe:b6:26:dc:ea: 12:72:be:2b:e5:b4:62:e2:12:82:94:d8:79:c6:14: 0f:63:64:ad:7b:73:d4:83:9d:c2:b5:54:5e:d5:ab: 3e:c1:2e:66:8b:2e:ef:42:35 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: AE:12:E4:43:F3:1A:3F:DA:A5:21:20:DF:57:3D:C6:76:31:F6:A4:00 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption ca:49:0a:ad:a8:10:3f:56:67:2a:80:18:03:5c:e3:2a:c0:5f: 60:a0:94:32:e4:b5:8d:ce:84:99:f2:a2:5c:37:05:d2:e0:25: cb:7d:cf:44:0f:88:24:56:b7:6e:2c:c0:61:21:93:42:3b:a8: 56:d2:57:14:8e:36:1b:6f:b6:30:32:ea:19:3a:61:83:0b:36: ef:1b:d7:74:c8:ed:75:e4:e6:5c:9f:44:e6:d8:2d:c8:be:d9: b3:81:33:8c:69:09:5b:8c:6c:fb:a1:3d:09:e4:8d:11:fb:a3: 2c:e8:5a:79:b8:5e:ea:67:5d:1f:22:95:73:8c:99:0e:05:2a: fb:29 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBBjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw NC5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwNC5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6K5GaRoO EH+T3RjP4GJ170Rv/HnTxmsMJ4QutUFT660kQRwbLI7ahxebEjXP1Odok0cStuMQ 56pzHvyCRx+SMLqJLjaRtlUywBLPdWtbmAYGXJKl/rYm3OoScr4r5bRi4hKClNh5 xhQPY2Ste3PUg53CtVRe1as+wS5miy7vQjUCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUrhLkQ/MaP9qlISDfVz3GdjH2pAAwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAMpJCq2oED9WZyqAGANc4yrAX2CglDLktY3OhJnyolw3BdLg Jct9z0QPiCRWt24swGEhk0I7qFbSVxSONhtvtjAy6hk6YYMLNu8b13TI7XXk5lyf RObYLci+2bOBM4xpCVuMbPuhPQnkjRH7oyzoWnm4XupnXR8ilXOMmQ4FKvsp -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.dev.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032257 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAN9gilajjkb625SV Pie6hzj1D/dPKUE4Jbb1HL9JiThB7Skm+ZZqDJgW7Q3pAVbV9YMHfotAx9+JkS7q DYLZkRM1YdEi6FaWGKBFP0VXkdKGdlhm8jhw+9uBKrXWqQGAhVmX0z1JNcZsLbWo R1CdtLl5lYvCayUg8+iWbXn8U76lAgMBAAECgYEA2l7CXphdyr4KU2Li9GvBLclE 5nwY1I1TMVzF0arN3pV0h7p2XLknvrcK34JdsMpRzNpSt0eJHdqad8aPls+ipdSI jEdjxyAKLMv/tucbIxn4wcSeg2VDOs5dqHLNy0izd7pjpZ4z2c/dFekfQym3EQVM +OfRDafkTzRI8j/JE7ECQQD6cYyDkdrOWB467GONKUP5DTJglAHuNZGThjGgTD6e J78daVSoG4SVKS9pTdgCkXp6q7qiNkbBRuVlM9B5ykUnAkEA5FVC8ccrc0ritoG7 jEpO4zlgV2aanQYwSP/tlifVSWWsUuPkHV1alTAijRQtd0djg/bJSn1gsgthO+a7 bIf1UwJAVcpj6gYiwCCral/j0k1afYwpv6+z4Zf0IGcNxO2ZXbAb5cVZPKUAi+Ap 35bM8kRHgpIlQr/5COhyWHKhbbb+bQJBANc+WME7FAa3TUjmuzngwsUIzX0WyCHG N7ZZLEskebebFPt+wQe9fSquGaQMpV+P+IvqFI8X6hNtDtg9BemlsOkCQDT1fVx/ bj7o3bZYkvjYJ6bzn3MZ9KtesmmwMLI98JtN9oVgtExgpX+Ew25umhxHku9Ll7il RUyeeA+1eTxKWk0= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/17.pem0000644000175000017500000001002512231547317023402 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 23 (0x17) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app04.phx2.fedoraproject.org/name=bodhi-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:aa:cb:fc:f9:7d:35:db:6b:71:34:3c:19:7c:ed: 21:0d:d8:ce:8e:4a:aa:b8:e1:79:18:28:f3:e0:0d: 16:bf:a3:86:13:10:24:d3:cd:02:d0:92:27:a7:8e: a9:08:fe:4f:8b:c8:d5:b4:80:3b:8c:0c:f8:7c:ae: 29:c2:b6:fe:a8:05:a7:02:ba:0e:20:0e:27:24:1c: 1a:3d:b3:15:19:cd:b0:fd:21:b1:6a:d9:f3:e5:e3: 97:49:d4:86:6b:54:4a:83:1e:5e:85:07:c7:c4:78: 83:d1:44:8a:96:e4:1c:ce:1c:a0:36:85:78:17:46: c3:06:57:b4:b3:57:00:d6:b1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: EE:40:47:3E:1A:13:F7:DA:46:81:62:AA:88:0B:B2:4E:EB:16:EB:60 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 01:da:a1:26:2f:7d:b3:41:f0:ac:26:49:22:c4:05:d4:f3:6c: bc:87:d3:d7:02:fc:28:af:28:5d:ab:57:20:fa:c9:67:83:c3: d5:29:35:8b:e0:57:4f:ea:54:b2:28:71:39:02:65:0c:9d:65: d5:8d:97:b9:79:94:30:13:e8:d0:b7:e7:be:35:22:54:78:9f: 65:cf:7c:3d:bc:a6:f9:82:0c:5f:06:06:42:83:a7:6c:ee:d9: ba:bd:0c:9a:a4:e9:c1:6e:1a:7a:0e:e3:d5:9f:82:69:27:bf: 57:9f:dd:03:00:6a:c3:17:98:ab:b5:00:e3:fb:4f:b9:ef:9d: 38:55 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBFzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw NC5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwNC5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqsv8+X01 22txNDwZfO0hDdjOjkqquOF5GCjz4A0Wv6OGExAk080C0JInp46pCP5Pi8jVtIA7 jAz4fK4pwrb+qAWnAroOIA4nJBwaPbMVGc2w/SGxatnz5eOXSdSGa1RKgx5ehQfH xHiD0USKluQczhygNoV4F0bDBle0s1cA1rECAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQU7kBHPhoT99pGgWKqiAuyTusW62AwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAAHaoSYvfbNB8KwmSSLEBdTzbLyH09cC/CivKF2rVyD6yWeD w9UpNYvgV0/qVLIocTkCZQydZdWNl7l5lDAT6NC35741IlR4n2XPfD28pvmCDF8G BkKDp2zu2bq9DJqk6cFuGnoO49Wfgmknv1ef3QMAasMXmKu1AOP7T7nvnThV -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app04.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031472 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKrL/Pl9NdtrcTQ8 GXztIQ3Yzo5KqrjheRgo8+ANFr+jhhMQJNPNAtCSJ6eOqQj+T4vI1bSAO4wM+Hyu KcK2/qgFpwK6DiAOJyQcGj2zFRnNsP0hsWrZ8+Xjl0nUhmtUSoMeXoUHx8R4g9FE ipbkHM4coDaFeBdGwwZXtLNXANaxAgMBAAECgYBDBtCdPEUBefWwERHTk9+P5pCR CL5c1adHEvM57wkJZev82S4KrH65SVIkkHjHnb2r1sH/Fv/HY2O00khzMItY0r33 WRI6tLbvcw6mEFHiQPdUoyFHmN5l1yoU8YCqEz7eIoiekTunb3ws8De6f8y283zE o4vqJU6tUd7B/zMOkQJBANibLlF2xxX3FTlH9LW2Q3FtnIv5LMQNN1Sa6d2jKrOT fJo4l4bYdZh9/lCyApeDr1CMlwy1SS37z0g7qbvGNx0CQQDJ3ABLT8CodkAOufJx PgtGo0ueIaUx3HZYHyRlPRlZ7LEy42p5Zcpo0hw1Q+c6eu7gvk7pvYC22urPNfNh TsWlAkEAmNPkulWz4iuTLfc3EX6n10AfVCNbEnjAsVEb8OVPG6TUJXwIbXwMfKto 5Ea0zXJ8H7kSWkUOfQNOHQj7mSEhgQJASQT/Sj74Rzg3ZdxX2iUCeTP616H+GvJQ EQJ67PBUKlZXpzviuTVcKdzPfWkpzNrJbJ0K+LynQf4g8IHon2uaTQJAQYPLx9IJ OkWO4YVaAl3SOFV1sX0kVF/F5vMXsWnb989CRbsijSEc/k2LFjjgRRt1PIU5OgNk wlHmKJjbetEdow== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031503 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMic2hlbGwtZmFzMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMic2hlbGwtZmFzMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAJPr/Xf+v1zXuNxKZq6PmsIbosxI0SzTywF/GPzd 17DYeC2iDsSPkybIpSACC3e/GDKvXrh7uCXZM/jOyHpvyHgMFwi3lvtRajTQNEog YjZ853np06uFWycJDqhQYOx+EHDYLBhq44JTvVtiCFMrICogNAXvA2bzZyrlCory 8phhAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQCJiSzbL1ob8YpWP4StDyogmhci YgauUdrKoW0jGwhtMTN4tfzLLjiJvNjr3Vzjq3mu7HhQfwenBXcEm38EUb/zeZ3P Jb2B7L2vkFC9CQmUKPSYyoblUcjHVN8yjczc+kcurQUmZmeJMqj4/c9yGWR2xhat ohDvW9cAj3bKFj3auw== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001004212231547317031732 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 39 (0x27) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fas-fas01.stg.phx2.fedoraproject.org/name=fas-fas01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:cf:e4:45:2a:19:69:c2:49:0d:e9:72:f1:e9:3c: 1c:a7:c5:34:e7:9a:d2:af:41:f4:dd:39:f6:8e:de: 63:60:e6:32:fe:33:bd:c0:c7:e3:ba:cb:6d:d5:b6: ac:50:54:8d:fc:2c:16:87:68:c2:d1:c1:92:f1:b6: 55:07:77:9f:d2:32:86:cc:c5:d3:76:8e:c8:ba:e5: 67:69:f3:98:2a:3e:7e:52:39:0d:29:13:0e:85:53: 0f:33:1b:1f:33:7f:3f:ea:e6:ab:03:18:b8:fe:5e: 6f:c7:2d:ff:0c:dd:b0:54:bb:1c:aa:bb:b5:2f:7c: 1b:16:5e:bc:04:9e:fd:2b:03 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 45:B5:AE:95:07:F6:A4:6F:E9:BF:47:48:95:BE:12:4B:9F:6F:24:67 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 4b:83:e1:91:44:dc:e0:74:c3:71:b5:85:33:e2:17:b6:b8:aa: a1:a7:e3:22:54:6d:76:f9:5c:f7:8a:4f:77:10:f6:51:90:e4: 3f:e8:1d:b1:2f:63:79:5e:46:ea:af:ef:be:46:5b:af:3c:4e: a9:15:2f:ac:23:89:20:74:f2:1e:e4:02:cc:5a:a8:be:08:c2: c7:b9:f4:42:8b:c9:e4:a4:3e:13:c8:41:bc:b9:4e:37:22:e0: 09:cb:c7:ab:56:26:c2:20:51:97:2b:06:ed:a3:e0:f8:b1:ea: 17:c1:00:21:b0:18:15:64:cf:68:0c:a9:a0:bc:45:c1:2c:4c: c1:49 -----BEGIN CERTIFICATE----- MIIETTCCA7agAwIBAgIBJzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB3DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS0wKwYDVQQDEyRmYXMtZmFzMDEu c3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxLTArBgNVBCkTJGZhcy1mYXMwMS5z dGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5A ZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM/k RSoZacJJDely8ek8HKfFNOea0q9B9N059o7eY2DmMv4zvcDH47rLbdW2rFBUjfws FodowtHBkvG2VQd3n9IyhszF03aOyLrlZ2nzmCo+flI5DSkTDoVTDzMbHzN/P+rm qwMYuP5eb8ct/wzdsFS7HKq7tS98GxZevASe/SsDAgMBAAGjggFXMIIBUzAJBgNV HRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQgQ2VydGlm aWNhdGUwHQYDVR0OBBYEFEW1rpUH9qRv6b9HSJW+EkufbyRnMIHVBgNVHSMEgc0w gcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQGEwJVUzEL MAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZlZG9yYSBQ cm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEPMA0GA1UE KRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9y Z4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDAN BgkqhkiG9w0BAQUFAAOBgQBLg+GRRNzgdMNxtYUz4he2uKqhp+MiVG12+Vz3ik93 EPZRkOQ/6B2xL2N5Xkbqr+++RluvPE6pFS+sI4kgdPIe5ALMWqi+CMLHufRCi8nk pD4TyEG8uU43IuAJy8erVibCIFGXKwbto+D4seoXwQAhsBgVZM9oDKmgvEXBLEzB SQ== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/02.pem0000644000175000017500000000766112231547317023410 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 2 (0x2) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=dummy-revoked/name=dummy-revoked/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:af:fa:8b:29:48:86:3c:1e:66:01:5d:f9:50:97: 0b:3a:31:f6:16:00:ab:9a:61:b6:36:19:3e:e3:7a: 75:36:da:d6:c4:70:41:31:03:9d:17:9d:8d:5d:fa: c7:e6:06:2e:45:62:f0:82:72:10:98:a9:2b:2e:cb: fb:4e:7a:cc:50:e5:5c:50:57:01:0c:41:66:07:b7: 06:6f:e4:0b:13:dd:b3:ce:d2:8c:2c:d9:c3:1d:a4: 22:51:ab:cd:47:7f:5b:35:32:b0:6f:45:01:f5:da: 78:8d:f9:7b:6f:c1:81:f1:a6:40:49:6e:26:c1:d7: a8:bd:1e:fb:0c:60:11:df:8f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 2D:7E:F4:ED:38:1E:85:3B:D6:28:61:93:AE:D4:39:FC:44:21:72:ED X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 30:70:4e:0b:c2:3e:07:7f:a2:f7:cb:55:ac:a3:89:06:4f:cc: 47:ff:a5:fa:6b:4f:9d:58:2b:72:3f:db:72:6b:7a:2f:dc:82: 0f:a4:17:23:be:26:86:5e:3d:87:f6:1b:db:16:87:81:ae:08: c7:37:d7:0b:6b:7f:4f:b5:53:24:4d:0a:ab:53:1c:66:a7:92: c7:4a:8b:cd:8c:f0:c2:5f:78:d0:21:37:30:b7:02:e8:3d:03: 10:e0:c4:7d:c5:f9:da:7f:23:66:e6:92:80:3b:63:73:c2:9e: 90:89:c7:14:cc:6a:5c:b1:1b:df:ed:02:99:59:f2:6e:32:f4: d5:17 -----BEGIN CERTIFICATE----- MIIEHzCCA4igAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCBrjELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMRYwFAYDVQQDEw1kdW1teS1yZXZv a2VkMRYwFAYDVQQpEw1kdW1teS1yZXZva2VkMSYwJAYJKoZIhvcNAQkBFhdhZG1p bkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA r/qLKUiGPB5mAV35UJcLOjH2FgCrmmG2Nhk+43p1NtrWxHBBMQOdF52NXfrH5gYu RWLwgnIQmKkrLsv7TnrMUOVcUFcBDEFmB7cGb+QLE92zztKMLNnDHaQiUavNR39b NTKwb0UB9dp4jfl7b8GB8aZASW4mwdeovR77DGAR348CAwEAAaOCAVcwggFTMAkG A1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0 aWZpY2F0ZTAdBgNVHQ4EFgQULX707TgehTvWKGGTrtQ5/EQhcu0wgdUGA1UdIwSB zTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVT MQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3Jh IFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYD VQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qu b3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeA MA0GCSqGSIb3DQEBBQUAA4GBADBwTgvCPgd/ovfLVayjiQZPzEf/pfprT51YK3I/ 23Jrei/cgg+kFyO+JoZePYf2G9sWh4GuCMc31wtrf0+1UyRNCqtTHGanksdKi82M 8MJfeNAhNzC3Aug9AxDgxH3F+dp/I2bmkoA7Y3PCnpCJxxTMalyxG9/tAplZ8m4y 9NUX -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/09.pem0000644000175000017500000001002312231547317023401 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 9 (0x9) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app07.phx2.fedoraproject.org/name=shell-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c5:ad:18:17:6a:54:2a:15:7e:b0:4e:7c:e0:62: 13:ed:f6:5a:be:3e:27:a0:92:7e:23:d3:61:40:51: 7b:91:79:94:bd:7a:78:f0:10:30:98:d4:5f:38:77: 05:9d:b9:57:58:89:bc:72:e6:6d:55:a8:a3:01:43: 7b:45:62:9a:54:ef:4f:1c:c3:80:6c:c0:6c:95:87: 67:28:49:77:d1:bf:64:04:2a:14:88:c8:12:9b:7f: cd:41:0b:39:79:be:06:59:1e:3a:7c:6d:4f:81:9e: 21:6b:a6:be:cd:91:94:e7:da:d2:e8:eb:f6:37:d4: ff:94:fb:5b:5c:3e:55:7d:3d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: F5:F5:64:4B:7F:89:86:9C:2A:28:5A:36:B4:C3:CB:55:87:B2:C4:C8 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption e4:cd:1f:e4:c3:ac:2c:2b:6d:a4:35:96:5d:10:94:b7:c1:be: 5d:ba:6d:f1:ec:e2:6b:4c:a9:83:3e:52:23:f0:9a:74:8b:53: 7c:fc:36:bd:74:91:47:89:f1:4e:34:83:b4:ed:57:5b:b3:ba: 45:db:33:a9:4b:8a:88:e7:30:4d:cd:75:43:40:81:87:9d:af: fd:1f:10:4e:57:f6:82:e8:86:18:27:24:74:f8:60:7e:9c:90: 99:9d:13:56:97:f0:a9:87:7e:eb:39:31:ab:af:54:54:e5:73: 38:88:fe:80:74:cf:73:43:c2:ce:46:43:25:ec:99:6d:f0:63: 91:1c -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBCTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw Ny5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwNy5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxa0YF2pU KhV+sE584GIT7fZavj4noJJ+I9NhQFF7kXmUvXp48BAwmNRfOHcFnblXWIm8cuZt VaijAUN7RWKaVO9PHMOAbMBslYdnKEl30b9kBCoUiMgSm3/NQQs5eb4GWR46fG1P gZ4ha6a+zZGU59rS6Ov2N9T/lPtbXD5VfT0CAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQU9fVkS3+JhpwqKFo2tMPLVYeyxMgwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAOTNH+TDrCwrbaQ1ll0QlLfBvl26bfHs4mtMqYM+UiPwmnSL U3z8Nr10kUeJ8U40g7TtV1uzukXbM6lLiojnME3NdUNAgYedr/0fEE5X9oLohhgn JHT4YH6ckJmdE1aX8KmHfus5MauvVFTlcziI/oB0z3NDws5GQyXsmW3wY5Ec -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/10.pem0000644000175000017500000001006012231547317023372 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 16 (0x10) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-packages02.phx2.fedoraproject.org/name=shell-packages02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c1:5d:b2:f3:e1:95:08:73:5c:1d:84:e4:6a:f7: c6:b6:15:ce:f0:ce:a7:18:72:fe:43:0f:50:28:6c: 97:e6:b2:cd:47:86:a7:ad:95:74:a7:c8:c1:23:29: 6e:6a:75:61:a4:be:62:80:a6:fe:54:2a:8a:b4:13: 16:56:af:8b:56:c0:c2:a5:49:10:86:be:be:23:26: 5c:7e:b9:6d:3d:8e:d9:a1:be:5d:11:56:d7:62:a6: e5:57:4a:2d:f7:0e:ae:bf:52:a8:65:ac:6f:38:f3: d3:c9:e6:12:ad:ff:b5:d2:46:0b:7d:df:50:cb:01: 84:9e:13:1d:07:32:11:a2:57 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A5:84:96:52:F0:B2:05:0D:EC:6C:E0:3C:25:4F:DB:1B:7D:CD:E6:94 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 6b:09:ad:38:0a:1c:00:ce:d5:0a:85:29:86:48:34:ed:20:9a: 53:d2:6e:58:8d:e5:4d:28:60:64:30:be:91:54:14:69:de:1c: 8b:96:c7:c9:ef:63:f5:00:75:57:f5:0b:63:a8:49:86:59:ae: 7c:ab:4b:fa:1a:0b:72:ae:d6:c4:28:b1:d7:12:11:34:e5:a1: 69:fe:a3:e7:0b:23:72:ba:07:9a:23:48:39:5a:b3:63:21:0b: 13:3e:06:f4:f2:30:65:78:b4:43:e7:2e:31:85:d3:df:71:b6: dd:b4:f8:7d:25:1c:f2:55:bd:e4:b2:48:64:48:b8:c9:54:3f: b8:ee -----BEGIN CERTIFICATE----- MIIEUzCCA7ygAwIBAgIBEDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTAwLgYDVQQDEydzaGVsbC1wYWNr YWdlczAyLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMDAuBgNVBCkTJ3NoZWxsLXBh Y2thZ2VzMDIucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYX YWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBAMFdsvPhlQhzXB2E5Gr3xrYVzvDOpxhy/kMPUChsl+ayzUeGp62VdKfIwSMp bmp1YaS+YoCm/lQqirQTFlavi1bAwqVJEIa+viMmXH65bT2O2aG+XRFW12Km5VdK LfcOrr9SqGWsbzjz08nmEq3/tdJGC33fUMsBhJ4THQcyEaJXAgMBAAGjggFXMIIB UzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQg Q2VydGlmaWNhdGUwHQYDVR0OBBYEFKWEllLwsgUN7GzgPCVP2xt9zeaUMIHVBgNV HSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQG EwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZl ZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEP MA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9q ZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQE AwIHgDANBgkqhkiG9w0BAQUFAAOBgQBrCa04ChwAztUKhSmGSDTtIJpT0m5YjeVN KGBkML6RVBRp3hyLlsfJ72P1AHVX9QtjqEmGWa58q0v6GgtyrtbEKLHXEhE05aFp /qPnCyNyugeaI0g5WrNjIQsTPgb08jBleLRD5y4xhdPfcbbdtPh9JRzyVb3kskhk SLjJVD+47g== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/0B.pem0000644000175000017500000001005112231547317023413 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 11 (0xb) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app02.stg.phx2.fedoraproject.org/name=shell-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:a5:a2:48:b0:70:f9:84:9e:89:f1:fd:d1:a2:0b: 0b:bd:ea:0f:e1:fa:e3:a2:3f:b5:0d:77:e2:96:38: 41:cf:7b:be:98:fd:3c:ad:3c:f8:d0:f8:0e:ef:91: 30:b0:d4:b7:cd:b5:d2:36:1a:a7:17:65:a5:0a:78: fd:8c:6f:df:f5:04:4c:83:85:d7:25:34:c1:b1:ec: 2c:31:06:32:1c:ca:88:d5:6e:b1:15:b0:a7:8e:61: 06:f8:18:81:79:19:85:03:56:27:6c:85:98:8a:26: 7c:b3:8e:b3:f2:d6:e9:85:87:a4:29:df:45:d9:5b: 2c:86:81:c3:4b:e8:1a:c5:2b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 0E:91:E8:05:7B:09:E6:BD:10:83:D3:49:6A:F6:0C:C5:78:47:50:27 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 9b:4e:d3:49:45:7f:8e:d0:50:22:eb:3e:11:b4:b8:dd:05:cc: 07:98:ef:e7:66:0f:9d:b9:a0:7c:8d:9f:f0:b4:61:4a:95:d5: ec:35:3c:4f:f9:8d:d1:a6:bb:12:2c:ff:70:f4:35:45:62:1f: b8:cb:bc:bf:b2:8e:c1:fa:80:5d:32:cd:31:8d:48:2c:5b:83: 76:23:ea:66:35:36:f1:9c:23:e1:9f:81:f2:c4:ad:12:1b:58: 76:14:16:22:5f:47:f7:2d:44:f7:38:4a:2a:cf:92:db:ff:1e: c6:be:9e:d9:89:96:a1:ca:b6:1d:b7:87:58:f0:cc:e1:75:e1: 37:73 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBCzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZzaGVsbC1hcHAw Mi5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmc2hlbGwtYXBw MDIuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQClokiwcPmEnonx/dGiCwu96g/h+uOiP7UNd+KWOEHPe76Y/TytPPjQ+A7vkTCw 1LfNtdI2GqcXZaUKeP2Mb9/1BEyDhdclNMGx7CwxBjIcyojVbrEVsKeOYQb4GIF5 GYUDVidshZiKJnyzjrPy1umFh6Qp30XZWyyGgcNL6BrFKwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQOkegFewnmvRCD00lq9gzFeEdQJzCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAm07TSUV/jtBQIus+EbS43QXMB5jv52YPnbmg fI2f8LRhSpXV7DU8T/mN0aa7Eiz/cPQ1RWIfuMu8v7KOwfqAXTLNMY1ILFuDdiPq ZjU28Zwj4Z+B8sStEhtYdhQWIl9H9y1E9zhKKs+S2/8exr6e2YmWocq2HbeHWPDM 4XXhN3M= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/04.pem0000644000175000017500000001002312231547317023374 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 4 (0x4) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app02.phx2.fedoraproject.org/name=shell-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ac:a0:3c:f8:e5:f7:d7:53:87:11:44:26:fb:e6: e3:d2:eb:cc:7d:a7:86:bd:29:b9:a8:e4:6f:bf:e9: a4:4f:aa:d5:3f:01:4f:90:b7:1b:a2:a1:ad:0b:43: 48:90:24:6b:42:33:af:ae:9c:4f:6a:a9:98:b6:e5: 5d:0d:99:c8:df:d7:3e:8c:02:aa:b5:5a:d2:38:2b: 5a:97:00:c2:b7:e7:85:ec:0c:61:1d:d0:69:3e:b3: bc:69:f4:11:d7:7e:65:47:b4:08:36:51:0e:8f:ac: 91:9c:38:81:3a:b1:2c:f9:d9:1f:4a:12:2a:46:9d: e3:3b:a1:c4:30:bc:57:cd:bf Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A0:9C:FA:C6:03:D5:A1:F5:76:BA:2D:74:EF:1D:32:6C:51:77:CB:54 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 66:e6:c2:3e:d8:61:c8:17:ac:90:64:8d:5c:98:87:ac:ba:4c: 6d:e9:f5:36:6e:6c:a1:88:b0:91:db:f0:f7:a6:4a:b8:3a:cd: 00:c9:02:d6:e3:f6:98:d6:95:e4:a9:95:27:6f:7a:50:e6:3f: 5a:4b:4e:3d:b1:56:eb:c8:a9:09:81:9a:61:73:67:ab:d1:3c: 86:22:31:e9:1d:28:87:90:c8:d4:9f:93:e1:07:de:17:ef:54: 4b:70:73:4a:94:91:9e:0b:b7:41:86:25:8e:bb:13:d3:d8:03: e3:a5:71:b3:eb:27:cc:2b:52:12:b0:a5:46:27:01:58:49:b0: 77:17 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw Mi5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwMi5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArKA8+OX3 11OHEUQm++bj0uvMfaeGvSm5qORvv+mkT6rVPwFPkLcboqGtC0NIkCRrQjOvrpxP aqmYtuVdDZnI39c+jAKqtVrSOCtalwDCt+eF7AxhHdBpPrO8afQR135lR7QINlEO j6yRnDiBOrEs+dkfShIqRp3jO6HEMLxXzb8CAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUoJz6xgPVofV2ui107x0ybFF3y1QwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAGbmwj7YYcgXrJBkjVyYh6y6TG3p9TZubKGIsJHb8PemSrg6 zQDJAtbj9pjWleSplSdvelDmP1pLTj2xVuvIqQmBmmFzZ6vRPIYiMekdKIeQyNSf k+EH3hfvVEtwc0qUkZ4Lt0GGJY67E9PYA+OlcbPrJ8wrUhKwpUYnAVhJsHcX -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/scm-pkgs01.phx2.fedoraproject.org.crt0000644000175000017500000001002312231547317031341 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 44 (0x2c) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=scm-pkgs01.phx2.fedoraproject.org/name=scm-pkgs01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:e0:3a:03:28:47:ce:e4:cc:da:67:55:cd:e4:b4: 93:43:69:a8:d5:6e:06:a1:7f:a5:e1:56:40:ef:84: 9d:62:ab:e4:0c:d0:01:ec:c1:60:66:55:ba:12:28: 74:92:82:62:28:cb:11:7b:56:38:7e:fe:91:75:06: e7:4e:56:c4:1c:01:cf:25:2c:54:cf:68:5a:c9:02: 6b:10:46:79:65:30:1d:76:e1:5d:e1:79:6b:7b:ef: dd:09:d8:c1:8a:0d:10:f8:7d:2d:e9:0b:bc:67:a7: 25:55:ad:f0:3c:6f:09:61:a1:b9:e8:29:4a:65:d1: f4:ac:80:45:d7:39:2b:8b:cf Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 1E:CA:5C:34:1E:F1:2E:A1:94:37:14:01:10:43:9A:17:DF:38:7C:01 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 29:b1:60:50:bc:5f:cc:3c:11:a1:c5:64:eb:e1:df:59:c7:fc: ba:dd:37:9c:51:0e:c8:0c:b6:ce:52:37:6a:f5:8b:9b:cd:36: 1a:84:ad:65:64:dd:32:24:f9:f1:91:c9:63:76:f5:ee:52:19: 3f:af:44:a2:c4:3c:69:2e:20:31:85:97:81:ae:71:b9:f5:e2: 46:82:71:8d:4d:f4:20:6e:8f:6c:5b:04:2e:74:b4:24:1e:c2: 62:d9:7d:b5:14:cd:0f:b8:3d:af:be:49:b9:6d:67:25:0b:06: 63:dd:9e:de:16:e8:9e:99:0e:8f:38:0e:6b:2d:1d:11:46:e5: c2:2a -----BEGIN CERTIFICATE----- MIIERzCCA7CgAwIBAgIBLDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB1jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSowKAYDVQQDEyFzY20tcGtnczAx LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxKjAoBgNVBCkTIXNjbS1wa2dzMDEucGh4 Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3Jh cHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOA6AyhHzuTM 2mdVzeS0k0NpqNVuBqF/peFWQO+EnWKr5AzQAezBYGZVuhIodJKCYijLEXtWOH7+ kXUG505WxBwBzyUsVM9oWskCaxBGeWUwHXbhXeF5a3vv3QnYwYoNEPh9LekLvGen JVWt8DxvCWGhuegpSmXR9KyARdc5K4vPAgMBAAGjggFXMIIBUzAJBgNVHRMEAjAA MC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUw HQYDVR0OBBYEFB7KXDQe8S6hlDcUARBDmhffOHwBMIHVBgNVHSMEgc0wgcqAFACY pdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQGEwJVUzELMAkGA1UE CBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZlZG9yYSBQcm9qZWN0 MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEPMA0GA1UEKRMGZmVk bXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZ4IJAI7r KNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDANBgkqhkiG 9w0BAQUFAAOBgQApsWBQvF/MPBGhxWTr4d9Zx/y63TecUQ7IDLbOUjdq9YubzTYa hK1lZN0yJPnxkcljdvXuUhk/r0SixDxpLiAxhZeBrnG59eJGgnGNTfQgbo9sWwQu dLQkHsJi2X21FM0PuD2vvkm5bWclCwZj3Z7eFuiemQ6POA5rLR0RRuXCKg== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/16.pem0000644000175000017500000001002512231547317023401 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 22 (0x16) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app03.phx2.fedoraproject.org/name=bodhi-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d5:e6:d7:7e:b7:28:5a:b7:95:b9:9f:b8:a2:70: 67:03:18:41:ed:2d:eb:0c:63:1d:d2:13:3f:26:7b: 25:b8:44:20:4c:57:0f:8f:c6:9e:ca:ac:fa:8f:e3: 98:ec:74:2a:42:51:73:88:e3:47:6e:b2:4a:e0:64: a0:69:06:b9:3c:d3:c5:7a:bb:14:c1:42:3d:93:68: 55:84:b4:55:c1:fb:dd:e9:60:22:08:39:30:1d:14: 07:01:30:25:71:80:ab:85:9b:88:0a:86:0f:09:01: 0e:54:b4:09:90:47:44:8b:ef:2d:ca:58:65:f7:eb: 62:0f:ac:29:37:67:e1:5f:17 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A1:41:27:47:9A:DA:D7:92:A1:10:AB:68:5B:5B:90:9F:6A:8C:8A:D1 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 61:80:ed:85:75:7a:87:8e:62:f8:37:8c:68:58:1f:bb:02:67: de:bc:b5:1b:fe:88:b6:18:12:97:eb:17:91:10:10:83:07:4b: 6d:52:87:dd:6f:64:dd:a9:c0:49:15:35:e9:e5:d4:6d:be:2b: f5:3b:4a:a4:e0:af:16:04:e7:2a:fe:66:e5:81:1a:95:3e:76: 24:8e:35:6d:73:a3:6c:b7:c0:74:dd:04:02:53:81:cc:94:c3: 03:0a:c7:ad:eb:d0:97:91:ab:08:83:85:7f:d3:ee:f1:d5:19: 4b:f1:14:2f:56:d4:f5:5d:96:33:87:19:ab:7b:09:f1:1b:33: c0:58 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBFjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw My5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwMy5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1ebXfrco WreVuZ+4onBnAxhB7S3rDGMd0hM/JnsluEQgTFcPj8aeyqz6j+OY7HQqQlFziONH brJK4GSgaQa5PNPFersUwUI9k2hVhLRVwfvd6WAiCDkwHRQHATAlcYCrhZuICoYP CQEOVLQJkEdEi+8tylhl9+tiD6wpN2fhXxcCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUoUEnR5ra15KhEKtoW1uQn2qMitEwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAGGA7YV1eoeOYvg3jGhYH7sCZ968tRv+iLYYEpfrF5EQEIMH S21Sh91vZN2pwEkVNenl1G2+K/U7SqTgrxYE5yr+ZuWBGpU+diSONW1zo2y3wHTd BAJTgcyUwwMKx63r0JeRqwiDhX/T7vHVGUvxFC9W1PVdljOHGat7CfEbM8BY -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app02.stg.phx2.fedoraproject.org.key0000644000175000017500000000162012231547317032260 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAMRlP9iM6DXd8AhW fW42zZE5gHd8AGReC8ODgQROEo/dl1QO3CXNVZ/Ms2QCdRDJCrmg9faztqDE3iYg 537iksKUqSVfonGd/ARBOeB1pQfuASGySu6qmRy+9DHSML+6CyOpnlQDnTXCyWwV P4k3knJK2Ifl60VVlJb6xB2fsfkvAgMBAAECgYAwJe5wJaNsSVvmf2XC1naxStqe 8GycLp5NsXi42HcehCHsfrQkJGIAikvUkfGnStJxTe/fKpH0ei9IQ7rdVajK03lK yIKHTT6q2zRKrPBJQgPT4ByukYcQH0Z24K97o0tM9ONhtTn8LjNYWisIYJBX22Dh h+Ng02+oOXTEC8xDUQJBAOM47sFesnlyabs5zZc/mYHiBnA24Cf/XS3S6vsVtily QjGLcbZoc1CIPyH3sDtBt5d+LLu86YooIaHBGAS7QqkCQQDdRNbANqcKDpCx1JPo oED95MrcGLLHaAawDBEssYWkDX4O7LbblzyWfpLZ9N/T0UGgx2eo/tmfaIMo+R6M QJwXAkBhk+F0SSZ74RZmwLv5Z+aUUGxTZD1+77skIp+mk/xWcCrc+/UpUFG1E82I 2MVlrSMae6TaOpZQLkvDGxklbwWBAkB9kADllp33wQgvQdilW7tF2L2dZI6fRdL1 uANO/3Y9AEMWqRGjTxFcvXsMID+b7dV2LXIPnn9UTHSRnbzODiQFAkA5rl+Ldf+e w+FNWGTVnLT/Rf4zyIOFw4lza544iITUJ+a0xMG8V54wym+02f4PrHiHWzzxDg2X SlyT488WVxZl -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/29.pem0000644000175000017500000001011612231547317023406 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 41 (0x29) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedoratagger-packages01.phx2.fedoraproject.org/name=fedoratagger-packages01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:f2:0f:0a:65:78:33:21:ad:bb:46:88:48:79:c1: b3:4d:df:fa:99:27:15:7d:b6:7b:a6:b4:b3:87:a7: ea:26:6c:f0:5d:e0:cf:a3:1b:c7:f3:fa:64:d4:76: 96:b3:d8:83:e0:4c:91:5e:70:2d:73:27:92:2a:24: 3e:f2:48:05:6f:1e:f4:ac:d6:dc:dc:f9:1c:e5:b7: fe:ca:0a:09:e6:0b:1d:a3:f4:8e:48:e9:3e:5c:27: 01:bc:69:de:5b:dd:28:5b:39:29:03:97:96:12:e0: 0b:e7:6a:e3:37:f6:db:d2:b7:48:24:10:62:45:02: 6f:a8:b9:67:31:4c:94:74:2d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 16:2E:F4:F6:8B:ED:79:92:67:17:B1:CC:B6:A7:23:68:CF:AE:F4:D5 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 5a:d2:87:48:3b:ee:a4:3e:d5:7b:85:40:18:ea:cb:0d:04:f8: 53:30:bb:57:1a:47:9d:84:ff:03:de:ee:4a:ef:b1:1a:d8:bd: 8d:37:84:80:fd:88:37:3d:e1:68:2a:f0:c6:14:02:58:d6:ea: 38:84:e3:0e:9e:24:1e:2a:70:b3:e9:c8:25:8e:ca:50:d6:69: ac:26:49:34:3b:d6:e6:b7:9f:8d:e0:bd:75:75:30:a4:29:04: 0c:4b:15:15:23:f2:be:b9:c9:90:63:dc:3c:54:ce:67:e6:5c: cc:cc:51:ca:d4:05:77:32:84:3f:10:0b:f3:fa:b4:13:ec:73: fc:0f -----BEGIN CERTIFICATE----- MIIEYTCCA8qgAwIBAgIBKTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB8DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTcwNQYDVQQDEy5mZWRvcmF0YWdn ZXItcGFja2FnZXMwMS5waHgyLmZlZG9yYXByb2plY3Qub3JnMTcwNQYDVQQpEy5m ZWRvcmF0YWdnZXItcGFja2FnZXMwMS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYw JAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEA8g8KZXgzIa27RohIecGzTd/6mScVfbZ7prSzh6fq JmzwXeDPoxvH8/pk1HaWs9iD4EyRXnAtcyeSKiQ+8kgFbx70rNbc3Pkc5bf+ygoJ 5gsdo/SOSOk+XCcBvGneW90oWzkpA5eWEuAL52rjN/bb0rdIJBBiRQJvqLlnMUyU dC0CAwEAAaOCAVcwggFTMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3kt UlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUFi709ovteZJnF7HM tqcjaM+u9NUwgdUGA1UdIwSBzTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaak gaMwgaAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWln aDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0G A1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYB BQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAFrSh0g77qQ+1XuF QBjqyw0E+FMwu1caR52E/wPe7krvsRrYvY03hID9iDc94Wgq8MYUAljW6jiE4w6e JB4qcLPpyCWOylDWaawmSTQ71ua3n43gvXV1MKQpBAxLFRUj8r65yZBj3DxUzmfm XMzMUcrUBXcyhD8QC/P6tBPsc/wP -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/dummy-revoked.csr0000644000175000017500000000135512231547317025757 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIIB7zCCAVgCAQAwga4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEWMBQGA1UEAxMNZHVtbXktcmV2b2tlZDEWMBQGA1UEKRMNZHVtbXktcmV2 b2tlZDEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8w DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK/6iylIhjweZgFd+VCXCzox9hYAq5ph tjYZPuN6dTba1sRwQTEDnRedjV36x+YGLkVi8IJyEJipKy7L+056zFDlXFBXAQxB Zge3Bm/kCxPds87SjCzZwx2kIlGrzUd/WzUysG9FAfXaeI35e2/BgfGmQEluJsHX qL0e+wxgEd+PAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQBh+kBr6szmOw+lh1jJ x+AR1onj+9x9VGK1pOeMjRiaa6TENcrRdhdysWyQxlL4Hoe+r4BNR5jrLS8L3hYh gdqWjJ66US9GBTY/KvA02193FFp4NixccsmabeH7iCsASKg5RtCVh6Dkr2KrVtkL 8IFfybYD8v/vHTUr29Nyi9O7Lg== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages01.phx2.fedoraproject.org.csr0000644000175000017500000000150612231547317034030 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICMTCCAZoCAQAwgfAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzE3MDUGA1UEAxMuZmVkb3JhdGFnZ2VyLXBhY2thZ2VzMDEucGh4Mi5mZWRv cmFwcm9qZWN0Lm9yZzE3MDUGA1UEKRMuZmVkb3JhdGFnZ2VyLXBhY2thZ2VzMDEu cGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVk b3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPIPCmV4 MyGtu0aISHnBs03f+pknFX22e6a0s4en6iZs8F3gz6Mbx/P6ZNR2lrPYg+BMkV5w LXMnkiokPvJIBW8e9KzW3Nz5HOW3/soKCeYLHaP0jkjpPlwnAbxp3lvdKFs5KQOX lhLgC+dq4zf229K3SCQQYkUCb6i5ZzFMlHQtAgMBAAGgADANBgkqhkiG9w0BAQUF AAOBgQBLZpfzte7U2R6ylshxePsgZywAiypwl+6O6WRrJuDzPMrpgR62kw0jQDEU rChf7kr6y3ZgTjE90fjawEANYNRs+G+pW3xQ1EuEdr3NQ+bvE+DHQGx5L1VlICea wptU57C0jfH2zOzMciURKwz/8M8HmVF1GTF6YKH+CywBpEBi2w== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app01.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031512 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMic2hlbGwtYXBwMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMic2hlbGwtYXBwMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAMldMnb56KSE5hbNJH6ZaCo+p1tPwjs6dKw8ML7l mRdig3ZdQHkVs37KTkDliCuVfqNqsWAOrWoiuGz38pWC9SBiMJVT/Zmuc8JEb1pH rVoxjkaeQe4O6BAkDgaN4J0LdFH+U1gENelp9GwqyEEqjllSknCvb1JP6KJlJQGW 5LBHAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQA7DT3kL3icRibh+nGPd14lJHub 4C2xxShBZbRljdQHFa+s0Jc/br8sikMFTDrDkBJeqPqKA5gTlTR2gr9re7lo+V8S eqZGhWNQzY0/7Z9rL48vMJk4MgySlQ6bJMAihrys8V1krOnfY2SgZV6Gvka5wsru EdPZXY9ItAmKhZGl6g== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app06.phx2.fedoraproject.org.crt0000644000175000017500000001002512231547317031467 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 25 (0x19) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app06.phx2.fedoraproject.org/name=bodhi-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:b5:fc:9a:da:08:04:27:9e:c8:11:f3:fb:a0:20: bb:41:2a:91:e2:a6:48:f7:27:ab:d8:f8:a1:cd:8b: b3:d6:1d:ce:8d:d3:7e:9d:71:4f:65:ce:7b:c1:b0: 49:8a:33:87:58:c7:1b:29:5c:2d:0e:d2:fb:9d:7a: 41:90:99:15:a7:3a:f7:6f:64:7a:a9:75:e7:27:33: f9:42:30:99:c5:64:c7:e3:9e:65:d2:f8:fa:33:b6: 71:39:64:b9:2b:e1:3e:51:71:37:ea:b3:a5:c1:25: 41:dc:8d:41:c0:4f:f8:07:0c:90:8a:d4:87:63:eb: 45:f6:a2:5c:e5:78:0c:59:ab Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 03:B9:F9:5C:00:5B:75:A4:26:CD:A7:4E:4B:B0:50:D7:BE:01:06:F8 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption be:8f:ec:83:41:35:69:9d:45:82:1b:c6:83:3f:b1:24:1a:1a: 1b:8a:ca:bf:35:95:42:62:08:d3:04:62:08:e2:ed:fe:d3:72: a6:12:0d:75:95:ec:ff:1d:1c:3e:77:cc:54:17:76:19:e5:06: 47:51:a7:83:11:49:ba:29:58:eb:31:b7:06:1c:d3:7b:42:71: 23:c0:40:27:90:1c:ed:62:58:ca:f4:76:2d:f4:40:f9:3d:0b: 64:71:17:53:a8:ab:13:40:f3:c7:61:2b:3b:b4:38:be:4d:1b: 69:60:17:16:d2:63:f5:b7:6d:01:15:99:02:d5:60:ae:6a:a4: 9e:e1 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBGTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw Ni5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwNi5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtfya2ggE J57IEfP7oCC7QSqR4qZI9yer2PihzYuz1h3OjdN+nXFPZc57wbBJijOHWMcbKVwt DtL7nXpBkJkVpzr3b2R6qXXnJzP5QjCZxWTH455l0vj6M7ZxOWS5K+E+UXE36rOl wSVB3I1BwE/4BwyQitSHY+tF9qJc5XgMWasCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUA7n5XABbdaQmzadOS7BQ174BBvgwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAL6P7INBNWmdRYIbxoM/sSQaGhuKyr81lUJiCNMEYgji7f7T cqYSDXWV7P8dHD53zFQXdhnlBkdRp4MRSbopWOsxtwYc03tCcSPAQCeQHO1iWMr0 di30QPk9C2RxF1OoqxNA88dhKzu0OL5NG2lgFxbSY/W3bQEVmQLVYK5qpJ7h -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app04.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031473 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMiYm9kaGktYXBwMDQucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMiYm9kaGktYXBwMDQucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAKrL/Pl9NdtrcTQ8GXztIQ3Yzo5KqrjheRgo8+AN Fr+jhhMQJNPNAtCSJ6eOqQj+T4vI1bSAO4wM+HyuKcK2/qgFpwK6DiAOJyQcGj2z FRnNsP0hsWrZ8+Xjl0nUhmtUSoMeXoUHx8R4g9FEipbkHM4coDaFeBdGwwZXtLNX ANaxAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQA8CrXG5lM+JfJMZJIbbn9OoCa8 ySBhVSR8JoklBoKq5p3lrizZt6UY6bzDQQVGxlxdXbQd+JxM7WEQ9SYS3Teub7mk Ow4ecQK4iWHzFerNkgb7YzWiPUYCZuPHxlLj0dDLgcnJhbAvhLAzcP3aZT3/5tv1 jEiRfPeXXn+Ox7ydyA== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app03.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032342 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 31 (0x1f) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app03.phx2.fedoraproject.org/name=mediawiki-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:cc:6e:6b:1a:e7:62:fe:80:1a:4f:a3:b3:60:0a: 6c:08:d1:86:97:10:cb:31:6f:ec:26:d8:f7:f7:33: 3c:0d:6c:cd:66:3d:b9:fa:6d:60:00:54:5b:3d:0c: fb:a3:0f:c5:6f:66:4a:4f:c7:20:28:f3:05:0e:b8: 7d:ca:29:c7:00:c8:17:17:7e:38:6b:75:00:73:34: 54:a9:5d:ac:c8:14:f7:c0:45:d8:14:f9:87:8c:68: ba:62:f5:bf:c9:47:74:53:4c:09:81:b2:f5:83:4a: 5c:8b:fb:90:6e:27:e2:c5:da:e0:43:9d:23:ad:5f: 79:40:09:d9:ea:85:5c:72:af Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: D9:AB:48:A4:29:FB:1D:27:9C:81:6A:3E:D1:6C:1A:90:22:A6:F5:20 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption e8:72:87:85:23:17:ca:18:ee:04:59:06:96:0d:25:3a:24:00: e3:b7:ae:c0:d4:94:4c:8d:3d:c1:60:a1:58:38:92:87:11:4e: e7:db:fa:14:ac:30:6e:4c:79:3e:e8:24:7a:5f:9b:84:bf:f0: ef:2f:6f:07:e2:eb:4a:b2:e9:98:d5:b2:29:ce:78:0d:8c:0d: 06:56:2a:eb:05:7e:ff:d1:7d:18:6a:4d:ad:ac:cd:24:b4:e6: f5:82:f6:5f:d4:2f:04:bc:75:4f:93:50:8a:b6:6d:f2:f9:1b: 18:10:b5:dd:a3:e8:75:c0:e9:aa:ea:07:14:bb:60:f6:ea:32: c3:90 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBHzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDMucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDAzLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDMbmsa52L+gBpPo7NgCmwI0YaXEMsxb+wm2Pf3MzwNbM1mPbn6bWAAVFs9DPuj D8VvZkpPxyAo8wUOuH3KKccAyBcXfjhrdQBzNFSpXazIFPfARdgU+YeMaLpi9b/J R3RTTAmBsvWDSlyL+5BuJ+LF2uBDnSOtX3lACdnqhVxyrwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBTZq0ikKfsdJ5yBaj7RbBqQIqb1IDCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEA6HKHhSMXyhjuBFkGlg0lOiQA47euwNSUTI09 wWChWDiShxFO59v6FKwwbkx5Pugkel+bhL/w7y9vB+LrSrLpmNWyKc54DYwNBlYq 6wV+/9F9GGpNrazNJLTm9YL2X9QvBLx1T5NQirZt8vkbGBC13aPodcDpquoHFLtg 9uoyw5A= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-pkgs01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032471 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANsTLTV8HY/Dcu4W qSakYn32iEhmy/kLGOaiIBC6Vy0KMLgBsBUQHBTcbiyhArEd19fmGu1q6LXwAQSL 9vwtvPYpRBaKyLQQZK0ZmpPIgmgFBqk6dvToiNFaaN2DE2/ZoMyhw0AT5hi549Oi 5OxpgDBGZT7nPFfENMOZegtzFedbAgMBAAECgYALlSr5vfMuK65C6k3NLjnK4SL5 eP3lz/FkGERLvh5n0jcbM3Ok2XIypCjrESQ8SxCjaJYZ4WImZGcZX3ESijSIUjmv DNZVtQxtDZdfXwjhiIAY5+xPkkC4a0n5uKbKa3yUX6vb2anHOq2cL0+35XHQxQcn EUuNuUoL92WCaljjaQJBAPjGBOAweVv5OCZHDY8YBT7HSm21zaT+fxSMkZEfWgOh OOrfPPrmicYrmOIo9oWFGa888kmGcbNc7Q4b5j8zBbcCQQDhcE6BosERNI4kkurl GRL0Oq+NDW/GJD27rDLtQtZ/tGAzSky4F8yu8pssm85/5HbxmCYqHRwopmRwN9CL fMt9AkEAmxMtNOdir1+ijdHa9Ok/U8v9bHhZEdIHO7MIhtNpVDvq9BZmt+x/08WX jtuEGOVIhoFSc1zYgbualiH0HE9c7wJAaJUUJnmdfWDXLEpn5B4st9ZdyF7aYp4/ cUfiXEUsgxPnqQOn8aNA1kxABoLFWnlfYJbH5bOZc5Y1dAXAnmUndQJBAOJsrvVz EU/aQeBpFu8xM26u892zcJ+Lf4M6vW+yZ1ustRVrhs9Xga5k6NG3YF+3Ay5GG8D4 nP+2o1wNtJisgS8= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app05.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032351 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAPs9in9eg8GrR3Xt XAAJR6h8pJiISScm4eEYASh6hdJZPMMGNtxGYPh7Sb3lWa0Qibemtc+npO9HFp0y ylUMpmXgH5eIIzFgrJmsd94YiazuAUwpRuNdubm4tqQX1FU41yOJUlqaPhtwygLE faomNmxTCdzCy6aPWvQsCCYpji0zAgMBAAECgYA7+9p4RHmSoLEkD7Kac5y/NlsZ 69gDV/4v/sov/ui6awHd0jsA5nC6grz9cKezcTJgPZZE6NKxKjjU+U5jdey4Butt 7BI6WD9p7jvfNNPatqcwwnHbq4nvrIxNFei7RqUoFAve90TVT320pRiYcCaPHMVF MgZZCiuTDcEWfUAO4QJBAP8JZUknXEIb0J2FJdcwrt2SLlrgtM3j9pX2z5b9Pk1i lGU0JnK1OWa583ZwYtto2+Fh8hGC8KI2E6y6RH3J7pECQQD8MHl9ZfnCmsM9Wd5Q 1yjKbVOKp5dUurKenlyOwABNf959CmghhGP9OBfESeMaEFAKtNvdWgDNT9qA+IGL dgmDAkAq32B4eLZoopZiNITU9OkgdDd4rXeXeO/168Sf5Dh5981saeTguZhJrY7A 5UmpCqqT68wup21eR2rtSW7EGpMRAkEAmcx2SyOFzkjUCPZlvqd5GPrTmBvdDq9N f67Ug7pUdO8moNtX5hj3YdZzqCHnfl20ctMZw0TAeHXarAzh9EtoQQJALqKMBSS4 m1uoFkkJgUuaij+LkcfqM3HZ0D/f4j4Z4Lv3Eu+MumrJ+fw9LNohvKd1VS0nCNVM x2pTHPCBW7rgAg== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/1A.pem0000644000175000017500000001002512231547317023414 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 26 (0x1a) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app07.phx2.fedoraproject.org/name=bodhi-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:b1:c9:1d:24:dd:fd:81:5d:ce:fb:30:d0:4f:d3: 4e:5a:5d:f7:1d:a6:db:9d:af:4e:e7:89:cb:83:dd: 22:c3:6b:4c:c6:2e:36:7e:8a:3e:50:e1:93:cc:c9: b2:fb:97:9d:82:b4:f7:45:d5:52:cc:fb:62:b6:b2: a3:bf:03:11:15:a9:76:44:d9:89:68:6b:d8:f9:bc: 52:54:81:47:9b:2b:d3:62:af:be:bd:16:da:09:a8: 30:0d:15:c6:fc:83:b9:c5:97:91:f9:c6:2a:93:02: 2c:d5:70:9d:83:20:07:d9:34:0e:de:dc:07:44:cd: b4:84:d3:cc:28:70:f2:88:8b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A1:DB:45:9B:BC:F2:0E:99:B9:E9:C9:67:95:B1:94:7A:F1:6A:C7:9A X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 59:c6:61:f6:ed:4c:81:e6:fc:da:e7:4b:42:f2:db:4a:a1:77: b4:31:ef:bf:93:e6:72:b7:6e:48:86:e9:98:36:ff:03:ad:4d: c8:51:db:39:66:86:66:dc:fe:63:86:66:86:d4:07:e5:49:4f: 15:f1:32:17:81:cd:15:b9:b7:66:f3:be:33:2a:28:a3:3a:94: 82:db:53:1b:f3:da:52:3b:84:35:06:a7:f4:f8:26:ff:9a:90: 9f:1d:b5:7c:79:82:09:76:53:82:a1:84:f2:33:72:05:89:46: df:75:b0:ba:ed:bc:2a:c5:a0:6b:29:80:df:24:1c:08:78:bd: 4e:bf -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBGjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw Ny5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwNy5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsckdJN39 gV3O+zDQT9NOWl33Habbna9O54nLg90iw2tMxi42foo+UOGTzMmy+5edgrT3RdVS zPtitrKjvwMRFal2RNmJaGvY+bxSVIFHmyvTYq++vRbaCagwDRXG/IO5xZeR+cYq kwIs1XCdgyAH2TQO3twHRM20hNPMKHDyiIsCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUodtFm7zyDpm56clnlbGUevFqx5owgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAFnGYfbtTIHm/NrnS0Ly20qhd7Qx77+T5nK3bkiG6Zg2/wOt TchR2zlmhmbc/mOGZobUB+VJTxXxMheBzRW5t2bzvjMqKKM6lILbUxvz2lI7hDUG p/T4Jv+akJ8dtXx5ggl2U4KhhPIzcgWJRt91sLrtvCrFoGspgN8kHAh4vU6/ -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app07.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032355 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmbWVkaWF3aWtpLWFwcDA3LnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJm1lZGlhd2lraS1hcHAwNy5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAokukm8q80Dq8MMeHeS3fWxsIXo+1 HxOhLWV+J6fJP2XXpqFD28ScanFNZYiFFGXA8Pul0EommZ+C9fUGaFaG52dSkEDZ XBH3QMMXp6N9RaQJKauZnfA596IFLQg0xiIAsOYQyvmR5KcVGEYXwhwrvmy2oPeM ShkpI9VOioRhVlkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBACZE/2yqDlBt+jx5 lfDi4sBG7P2KJ8DdOAoo//V2KX2IN0Zf9BhBRWByBdanKJmrPp1RjDE6t5pSsTZM y0Tqm4gnPGTsCQ/eQ+5Cj7CvC0Z2nnTr7ZQmK8R3RI41i5L8iRVjaEb7qcdwBhOJ SyqIxPeAYvqpVUkScHxAIdZw2SZ4 -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app05.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032353 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmbWVkaWF3aWtpLWFwcDA1LnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJm1lZGlhd2lraS1hcHAwNS5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+z2Kf16DwatHde1cAAlHqHykmIhJ Jybh4RgBKHqF0lk8wwY23EZg+HtJveVZrRCJt6a1z6ek70cWnTLKVQymZeAfl4gj MWCsmax33hiJrO4BTClG4125ubi2pBfUVTjXI4lSWpo+G3DKAsR9qiY2bFMJ3MLL po9a9CwIJimOLTMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBACwAIqA5+/gQOKk6 eUNEKQdqY6M15cFg2KTakgI7nYHTtlJLrzMvw7XngXcGT572638cGGM2GkPvhSBg 568TEqE2fkbKR0wxQD2fS+wOzAHtBLpjJWfK28/TzPw6XM5EFVLgZrIc08an7Nd5 HMbF1BhkHMt2Zvd7sXzTysSu+EQ2 -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app03.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031472 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMiYm9kaGktYXBwMDMucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMiYm9kaGktYXBwMDMucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBANXm1363KFq3lbmfuKJwZwMYQe0t6wxjHdITPyZ7 JbhEIExXD4/Gnsqs+o/jmOx0KkJRc4jjR26ySuBkoGkGuTzTxXq7FMFCPZNoVYS0 VcH73elgIgg5MB0UBwEwJXGAq4WbiAqGDwkBDlS0CZBHRIvvLcpYZffrYg+sKTdn 4V8XAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQACeDntrwbqeX3waVOyEhdUFv2h t1kwbmwoKddF7NN2LDrqtiGcK4EMHdWpBPh2ZLSILi5KWm539KcZWOl60lSZpsI7 HOyZB6+FAvo9l0pxREbFDcQ/q+26BWXYp4uKujyGiumNZQsSoNq20h2RxrvLBxlE SwLU0LOe6dr61spTvw== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app03.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032347 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMxuaxrnYv6AGk+j s2AKbAjRhpcQyzFv7CbY9/czPA1szWY9ufptYABUWz0M+6MPxW9mSk/HICjzBQ64 fcopxwDIFxd+OGt1AHM0VKldrMgU98BF2BT5h4xoumL1v8lHdFNMCYGy9YNKXIv7 kG4n4sXa4EOdI61feUAJ2eqFXHKvAgMBAAECgYEAuW9DWiEfS8l5lFniYLCzdIBS fH8wQUTLyiUvMB1aULcrzZ0aMM27sjDSnhtDupKYvcbki18Njfd60/KHr7SbnDqy DaFrKvfcOLzUUfQXoas5ZzWh9THKotXaiPqM9gmNQ++B0l/QTf1ab/CtxqTfwdrI DaP93lxF9YuKgMz52GkCQQD2mN8jiXvdSxZRWLoYkX0yGVxdxtJyIeIssSCG1ImS vOvCG0waOxRV03E+fkcaMMydxW1UI9WHDnoVLrY5w0TdAkEA1DnzNrER+FruWuyt m/EYdrSkf1YKsH9rKVhQ+tL5xu9w440XyQaCp2pdSdsFbB+PAdUg0/e3LT8jQmlF wWnG+wJAZBtpMncEprBtzfY0Dfc6GNV8zsEA+75PoA8EAlhTxRMWrkUAnwFu3uyo Y1NGMBaxajcUi/zEGUDCRMkixs5DrQJAOGXOBFK5+83uWatb130SizkmHdC3tn+l 8q7NllpKlls7HL15/KoGPoc9k0ro/frE/i+tMac6voNw0002hFef0QJATadPFYV/ yeQmlqnZurT0mQLoagn6NWOomh8BG+PaQg6R8zayFv5VIXhGYZmUWGnmKOd3VXY4 Zih+XyuljIP7Ng== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages02.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032510 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMFdsvPhlQhzXB2E 5Gr3xrYVzvDOpxhy/kMPUChsl+ayzUeGp62VdKfIwSMpbmp1YaS+YoCm/lQqirQT Flavi1bAwqVJEIa+viMmXH65bT2O2aG+XRFW12Km5VdKLfcOrr9SqGWsbzjz08nm Eq3/tdJGC33fUMsBhJ4THQcyEaJXAgMBAAECgYEAsSizqBXpgVCP+MukqwxQFsts SdxL426X3cDN4/t6QHdY9Es+nR7tPjwEF78B1q+swk9b2BsnsN05Lzq9oLY8paqp MMg6OUNlqIlb6yek87uyIg1k5HqTmrxyHI7VguKJPOvl2ZJ2/Hf8qMG2xd/gL22m 7v5eKMmcW0inmqFN7mECQQDrUEjZ7DxeJDmmoMN8RAhXPOOyvgj2CqBHAkC7/vj9 RJv4+iKlLy+OXcmp9rWruJgAXU5BArG1VZw6g7qQ6nU7AkEA0l1jBy8P+hw9gw6U DOFTxokFMoa4+elnmFUtGNM3eN1XXFRP2gmE4892wEfv+jCzNmPLAqWXG2vAFLgv /d/FlQJBAMwhNVF2kVfJbQmTZIGkMugathwUpolp5mgzGBz9rtlmbzepJezN5h9G VO7QSgDRfWqzhnL291orDf/kzi9wdIkCQCAwQfLbdKpkn9Tp6iV+ZP9AABeXHb6/ xCY/AkOGLjrEQ5XRINbQFhF1sUoCt+mkggeUhX/GLrT3a9C/zjgegXECQGjjM6cQ 6+hpmjmB/272y4s0Tue0B1D8RVubpiuORcgOf3p6M2LLCCpik3e847IzjyRUl49g J29/SIncVD60qjU= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001007612231547317033142 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 36 (0x24) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app01.stg.phx2.fedoraproject.org/name=mediawiki-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:af:f8:46:1b:09:86:56:1f:02:e4:e6:8f:0a:01: 0e:af:5c:d5:e2:9f:2b:96:b4:32:73:da:d5:3f:c8: 07:24:7b:5e:cc:b2:a6:43:24:eb:c8:b8:42:38:2c: a6:0b:32:c0:bc:ac:3d:f7:3a:e3:7c:56:52:c6:c6: a1:2d:b7:53:9e:d4:75:c7:63:21:56:20:fa:c6:46: 77:c7:e8:96:4a:d1:49:b6:89:14:d1:18:0e:af:19: 4c:5b:da:bd:f8:3b:80:be:e0:5b:81:14:da:cc:e6: c5:99:1d:42:a6:3b:0b:93:30:14:d2:6f:83:d8:99: a1:49:1e:7b:e6:ea:60:c8:29 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E1:66:08:F7:79:4A:8D:3A:85:0E:FD:04:C6:12:3C:44:91:D4:ED:91 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 5e:95:9d:35:70:32:7b:25:01:3a:2d:36:3c:a4:86:5b:00:a5: c9:4a:ec:fb:9d:50:1d:22:02:1f:46:95:da:3f:97:3c:01:83: 41:b8:a0:2e:26:ee:7e:75:c9:39:9c:23:bf:ab:4e:a8:c9:5d: 40:be:e5:34:73:3c:e8:62:3c:bf:ea:a9:01:94:60:41:cc:45: e6:fa:eb:54:ca:f4:d0:0f:7c:02:a6:06:7d:16:77:8e:0e:7e: af:70:a1:2c:a4:32:9b:ab:b1:3c:2d:86:16:2b:bb:64:b9:2e: db:fe:32:24:75:2a:74:15:33:5d:0b:07:e3:0f:97:5d:a0:03: 58:4a -----BEGIN CERTIFICATE----- MIIEWTCCA8KgAwIBAgIBJDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB6DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTMwMQYDVQQDEyptZWRpYXdpa2kt YXBwMDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMzAxBgNVBCkTKm1lZGlh d2lraS1hcHAwMS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3 DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBAK/4RhsJhlYfAuTmjwoBDq9c1eKfK5a0MnPa1T/IByR7XsyypkMk 68i4QjgspgsywLysPfc643xWUsbGoS23U57UdcdjIVYg+sZGd8folkrRSbaJFNEY Dq8ZTFvavfg7gL7gW4EU2szmxZkdQqY7C5MwFNJvg9iZoUkee+bqYMgpAgMBAAGj ggFXMIIBUzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5l cmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOFmCPd5So06hQ79BMYSPESR1O2R MIHVBgNVHSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQsw CQYDVQQGEwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNV BAoTDkZlZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZl ZG1zZzEPMA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsG A1UdDwQEAwIHgDANBgkqhkiG9w0BAQUFAAOBgQBelZ01cDJ7JQE6LTY8pIZbAKXJ Suz7nVAdIgIfRpXaP5c8AYNBuKAuJu5+dck5nCO/q06oyV1AvuU0czzoYjy/6qkB lGBBzEXm+utUyvTQD3wCpgZ9FneODn6vcKEspDKbq7E8LYYWK7tkuS7b/jIkdSp0 FTNdCwfjD5ddoANYSg== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app01.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031470 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMiYm9kaGktYXBwMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMiYm9kaGktYXBwMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBANYic06s5HaUXdWRhhxbNhs5NA/HSxLIQ5cwtePN ctWa0NsKOvvhkjIYCuaQ9LP+8KXQVIHcYBTiIjkojzRlcnKtCNzkRyMCTN4C9fJE Fzy4ZETPlOP2Gggnb6VFCixkRdbPDoNnRLD4rfwSSyechfNFtRqzqutmK6GvIYGG 898JAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQCro90AjIssEc3vEMENm3EaU2mN QebbY5fAGT2j996tuHx2/oRlUxLG5hnxTxkcCAqL5rAGT23e4hgEWJVXnXiKTTNA KMkiFLt7GdIClRhYPTlqlePcU4Mu1AS0vnt/rrU8JhsJcpPOeO87OuQHKLXQwY3f 4f7+pA4nt3O8l972fw== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/ca.crt0000644000175000017500000000253712231547317023556 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE----- MIIDyzCCAzSgAwIBAgIJAI7rKNipE518MA0GCSqGSIb3DQEBBQUAMIGgMQswCQYD VQQGEwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoT DkZlZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1z ZzEPMA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFw cm9qZWN0Lm9yZzAeFw0xMjA3MTUyMTE4NTFaFw0yMjA3MTMyMTE4NTFaMIGgMQsw CQYDVQQGEwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNV BAoTDkZlZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZl ZG1zZzEPMA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA9J6RmGr1 LzSJ5Fau2wdkVUiS5WXBcd0bNPyUJ9/G7t9SrycnLnEK4GQh2B525p4SCqvsHZtM 8rqii/Y2PPF5PbpgVjJLYsJk4SSv84aH+VPYcaEtYlPClXgHb3J9jgAxgHBHkJMQ 7mvxiIau7frKFqmJGZkxO2M+Sv8eLCKLJP8CAwEAAaOCAQkwggEFMB0GA1UdDgQW BBQAmKXV58RVDoSjZ/5mShbgBBXdITCB1QYDVR0jBIHNMIHKgBQAmKXV58RVDoSj Z/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5DMRAw DgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEPMA0GA1UE CxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1zZzEmMCQG CSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmeCCQCO6yjYqROdfDAM BgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAN5r+1rbeTyGDdlelbqWOXBu uS0a9BfusO0uwf3tHK9zeB5CDKFgxdfSZ+Fxg1w2HFRHhCOYoZ2ASPfbyANTzxUF fVAId1uhBD1SlhXpTb3Ndo4uXfalf3W8MrQzFiVHbevvfsyd+RwoVT/PDokE3i4A fftCd0uwvSqVgyE28SFt -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001010012231547317033270 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 17 (0x11) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-packages01.stg.phx2.fedoraproject.org/name=shell-packages01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:da:64:64:a5:49:87:43:64:ff:43:dc:88:84:97: 3f:44:4a:d7:e1:dc:32:92:fc:e1:4d:a8:ab:35:39: 19:3f:d4:a7:1c:20:5f:9c:7c:d6:2f:58:33:42:ae: bf:6e:8f:2a:c2:da:5f:93:e4:1c:eb:88:e9:b6:53: 40:83:06:b4:fa:dc:eb:ad:99:6e:1b:7b:0d:20:d0: f2:ea:dd:f3:2e:dd:1a:51:78:8a:2e:2b:f3:1a:43: c4:f5:8c:44:12:2d:2c:1e:3d:1f:74:37:5b:6f:79: 4e:4f:fc:fe:23:00:26:a9:cc:91:ad:81:f0:6a:b0: 45:b0:a3:70:31:b4:5e:ee:c3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: B8:71:E7:CE:3B:BA:4E:19:05:D9:F8:3B:D6:B9:C8:7F:64:22:F7:F8 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 68:ea:02:85:b5:ab:80:56:da:a4:48:1e:d1:44:40:53:03:da: 1f:c0:ff:cc:2c:7d:9d:58:2a:a4:18:1c:aa:51:04:7e:1a:ff: c0:1d:d0:ca:f6:97:01:9f:ef:ec:f4:db:6e:26:7d:79:d8:6d: 2a:0c:ed:e2:5d:33:c8:23:c8:75:ba:6c:95:0c:9a:8a:18:ce: bb:00:fe:36:45:59:9e:bf:24:f2:cf:e1:24:c0:7f:d5:d3:78: 4a:2e:84:6e:59:91:11:b6:6d:3f:d2:a4:7c:b3:8c:1d:5e:63: 9e:c4:29:e0:83:fe:2b:d3:a2:13:3e:58:f4:a2:1d:d2:a7:76: 5f:5c -----BEGIN CERTIFICATE----- MIIEWzCCA8SgAwIBAgIBETANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB6jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTQwMgYDVQQDEytzaGVsbC1wYWNr YWdlczAxLnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMTQwMgYDVQQpEytzaGVs bC1wYWNrYWdlczAxLnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZI hvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEF AAOBjQAwgYkCgYEA2mRkpUmHQ2T/Q9yIhJc/RErX4dwykvzhTairNTkZP9SnHCBf nHzWL1gzQq6/bo8qwtpfk+Qc64jptlNAgwa0+tzrrZluG3sNINDy6t3zLt0aUXiK LivzGkPE9YxEEi0sHj0fdDdbb3lOT/z+IwAmqcyRrYHwarBFsKNwMbRe7sMCAwEA AaOCAVcwggFTMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdl bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUuHHnzju6ThkF2fg71rnIf2Qi 9/gwgdUGA1UdIwSBzTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAx CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUG A1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMG ZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZl ZG9yYXByb2plY3Qub3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIw CwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAGjqAoW1q4BW2qRIHtFEQFMD 2h/A/8wsfZ1YKqQYHKpRBH4a/8Ad0Mr2lwGf7+z0224mfXnYbSoM7eJdM8gjyHW6 bJUMmooYzrsA/jZFWZ6/JPLP4STAf9XTeEouhG5ZkRG2bT/SpHyzjB1eY57EKeCD /ivTohM+WPSiHdKndl9c -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162012231547317033135 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAK/4RhsJhlYfAuTm jwoBDq9c1eKfK5a0MnPa1T/IByR7XsyypkMk68i4QjgspgsywLysPfc643xWUsbG oS23U57UdcdjIVYg+sZGd8folkrRSbaJFNEYDq8ZTFvavfg7gL7gW4EU2szmxZkd QqY7C5MwFNJvg9iZoUkee+bqYMgpAgMBAAECgYBM/QGnGJ62lTDN9vWD+fxzytkl ImCOud4NBCQimKBPXM6YHl1RqRijo8INE7O92IGsymr9/LzEjHwAzax89OVXMWC6 v6XeUNlYjeSCfD3g/Wkm5fpnF1akFk71YxObVChZd/EelFhwDonFX5EVik2GTqO7 8BNO6MREh/Ad4jUSkQJBANxkP5dNB7SAw0gDOqTsbNL/GbE2llTRpk7oXKoQRymJ UJ0W0i+lcdA4rSxSR0Q//kYX+blon6CFWdhmE4Lnpc0CQQDMZqtRgbPQyeOlDA+e fxSz/4XzNCeNJPyanXY69sHG7WhZgyQA0H+j/laPNw4WogGa7XU+SXG9AKNolAmK 0g/NAkAtIgZ3yJmUWG4lWCvxTE145C7xwJkGo6xoKmOXnB/GnM06bkr64Omu13x3 QB5CFszOs+g7FPbjm4trqnPCcgfdAkAVOU/ura4TLvNxTthMV9u5eP3aq/6zXDTS hSkipD6ovjwIl2Jkp0GpsJ4iTtAqr3XFNYToC85AltFg6YY4IOm9AkB7ojC77PqX UIn38BKnEXMlm3H9OlCp9/E+BACy2l4TisNFUG2cWdeo8coJY55yGXF92Z+9oyL7 cgGawJ9GZoaY -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app03.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031513 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALw2qSUElmrrgF7j naVFoFaIUUxhv4l62FCKdlEfuxG535PpvGOnCuua3nDylxN0baz+t6E9I6G35+QB WfRq3tFYqg/JGzkXWuTDKOQa1z5gDU2qE7hSOn3YyTGVRar0E8Hh9fYwkYclbYRp iMF0aYta8m8WLL/VvkoYKVTFp/uDAgMBAAECgYEAkV4+giLq8qX2PlPbXN1MG8mp 0S7mOw8wp/RpsfqqB+TiNGIhaW6JVrQE/oO///y7ARSzS8vnC275ofcRPWCVuxJv 4BNkhiss9+BLsyRKFLXYDv8Ngp4yVlMugcNT/MjpNo/jMHL1WmaBIIMjgfbjyHx4 xsb1OvkG5AXZy/aMPdECQQD1PxTK1Tud88NjtYTimncLmJBzOoMXH7Cp0a/P28IQ X47jtnpPQ+itasEeBfBib7+CTmdUJNKP4am5Krj4+Xr9AkEAxHdg+eaT59zfnn1H ASUihuVA/ycgEmMXMnuNndr0Q6eUD6B0WpKbPipl+Qshc7Kmkj6FKi9TNdm6bwHq ySFYfwJBAKWINXWOpZXAcdJ8M7xrvAx0ppNQHClgd3K4GK34y60Xgq/KfBXCZWuf 0cd9BLq8aIwAdZgC3qjFDTTxVDag1dUCQAW+Z7tmnlRdBLyhdP33k/bVpPzQrANd mkQDkLRYvmNr9swuKLitKJS8sJaDWMsFIhGMemAtWgVtBCJSsAaJTwkCQQDKp02G 0XR2B7i4IcqIPZK8+wt/c+8/P3MpzQr6xFXdxWupIpwsUQLp1xpaPBBCeNoDVlBv EwUdHI3nsuWnd0yu -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/12.pem0000644000175000017500000001003312231547317023374 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 18 (0x12) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-pkgs01.phx2.fedoraproject.org/name=shell-pkgs01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d5:37:fb:d4:8a:a5:30:40:11:25:eb:66:ba:8d: 55:31:68:a3:e0:1a:77:db:c7:37:a3:84:44:ed:93: 3f:d4:32:8b:59:a1:fb:8b:64:6f:2f:54:f6:69:aa: fa:b0:88:ff:bb:b5:1d:4b:18:a7:1b:ec:54:c2:d0: 56:a5:da:78:4b:17:13:3b:8b:93:f3:7c:df:3d:16: 21:c4:90:7e:1d:6b:ef:13:31:be:41:4e:21:a7:97: 9c:2b:7b:9b:32:7e:62:44:5f:59:ac:31:74:12:ba: d5:cf:14:0d:58:42:1a:49:b9:c6:2a:53:e8:87:77: 12:3e:2e:ea:e3:4d:40:ff:8b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A5:8B:A6:2A:28:0E:3C:4E:6C:81:45:A4:4E:B9:3C:38:15:9F:58:DE X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 56:40:ad:61:bd:82:0a:e8:f7:6c:59:cf:2b:08:65:69:72:d2: 6d:28:b5:d4:fd:2a:88:11:45:ac:93:52:92:fd:1f:05:94:d2: bb:d5:3b:0f:79:cb:0d:f3:00:60:9d:e8:7d:2c:15:cf:b3:d8: a0:e5:60:d3:d9:bf:45:fb:f0:10:92:ce:bd:eb:30:da:70:45: 06:1e:c2:71:83:f0:7c:92:e5:43:01:63:f4:2e:4d:60:ec:70: 93:40:6d:d1:00:46:7c:a9:2d:2c:00:df:56:44:38:60:88:4a: b7:df:79:6e:2d:d9:3d:d3:f7:e7:31:66:b4:37:0d:85:52:76: ec:27 -----BEGIN CERTIFICATE----- MIIESzCCA7SgAwIBAgIBEjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSwwKgYDVQQDEyNzaGVsbC1wa2dz MDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEsMCoGA1UEKRMjc2hlbGwtcGtnczAx LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZl ZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVN/vU iqUwQBEl62a6jVUxaKPgGnfbxzejhETtkz/UMotZofuLZG8vVPZpqvqwiP+7tR1L GKcb7FTC0Fal2nhLFxM7i5PzfN89FiHEkH4da+8TMb5BTiGnl5wre5syfmJEX1ms MXQSutXPFA1YQhpJucYqU+iHdxI+LurjTUD/iwIDAQABo4IBVzCCAVMwCQYDVR0T BAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENlcnRpZmlj YXRlMB0GA1UdDgQWBBSli6YqKA48TmyBRaROuTw4FZ9Y3jCB1QYDVR0jBIHNMIHK gBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMCVVMxCzAJ BgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJv amVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkT BmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmeC CQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJ KoZIhvcNAQEFBQADgYEAVkCtYb2CCuj3bFnPKwhlaXLSbSi11P0qiBFFrJNSkv0f BZTSu9U7D3nLDfMAYJ3ofSwVz7PYoOVg09m/RfvwEJLOvesw2nBFBh7CcYPwfJLl QwFj9C5NYOxwk0Bt0QBGfKktLADfVkQ4YIhKt995bi3ZPdP35zFmtDcNhVJ27Cc= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages02.phx2.fedoraproject.org.csr0000644000175000017500000000146212231547317032507 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICIzCCAYwCAQAwgeIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEwMC4GA1UEAxMnc2hlbGwtcGFja2FnZXMwMi5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMTAwLgYDVQQpEydzaGVsbC1wYWNrYWdlczAyLnBoeDIuZmVkb3JhcHJv amVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3Jn MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBXbLz4ZUIc1wdhORq98a2Fc7w zqcYcv5DD1AobJfmss1HhqetlXSnyMEjKW5qdWGkvmKApv5UKoq0ExZWr4tWwMKl SRCGvr4jJlx+uW09jtmhvl0RVtdipuVXSi33Dq6/UqhlrG8489PJ5hKt/7XSRgt9 31DLAYSeEx0HMhGiVwIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEAeL2djAQK57BD XrPrFdNHx55L0YoOtxt8/gAKRCczOXuTbZJJoisA1nmSlR/S3ZuNWta8Nk/8hoZX qhmMc/D0EfnjVIIIMPrTHc5lNR34rMN84katMAQgpOl1u8i8ga4vUZC/efwPSxP1 TNm8dMg35KJz3QevxI5UDV5+33LXx+E= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app04.phx2.fedoraproject.org.crt0000644000175000017500000001005212231547317032343 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 32 (0x20) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app04.phx2.fedoraproject.org/name=mediawiki-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:eb:55:b8:4b:6f:d0:85:8e:b6:ce:92:e4:09:d0: 4a:d4:2b:e9:47:3a:b6:27:57:61:27:64:b4:71:46: 79:1e:04:33:54:23:72:59:48:e4:73:86:2b:68:33: 85:a9:3a:85:d2:9e:7a:1a:89:c9:a0:0c:1a:b9:ad: e3:25:b2:f1:17:1b:85:83:07:56:03:b2:e2:1a:32: fd:17:3f:90:c2:f9:1d:39:f7:22:5a:77:c3:61:35: a3:fe:64:9f:5b:a7:20:89:60:4c:70:51:af:34:c8: 01:f7:c9:ef:76:02:0d:7d:69:f5:9b:11:05:5f:89: 9c:4b:ff:d6:eb:e7:96:73:03 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 05:2F:27:1F:0B:FE:55:17:3A:FA:C7:59:E3:EF:2A:96:9A:EC:49:49 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption f3:50:1d:7d:e5:e3:71:04:fb:cd:42:29:71:20:95:36:04:d4: 45:f6:5e:14:4e:e8:f6:b9:8d:f1:53:82:a4:b8:28:a0:79:4d: db:3b:99:10:bc:50:c8:39:d7:b1:cd:49:c9:5f:9e:a4:f9:95: c4:41:68:5e:8b:65:d8:28:d1:81:cc:0c:57:ab:d8:95:3d:03: 17:b3:5a:25:12:a7:b7:65:ed:fe:ec:48:4b:b6:b3:f7:ae:48: 51:72:e0:55:45:8e:ef:ed:f7:50:73:f4:b4:ba:03:c9:be:68: 3d:3b:7e:44:3b:ab:d9:2d:e2:5a:54:bf:bd:af:de:ca:17:b2: b3:c8 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBIDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDQucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDA0LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDrVbhLb9CFjrbOkuQJ0ErUK+lHOrYnV2EnZLRxRnkeBDNUI3JZSORzhitoM4Wp OoXSnnoaicmgDBq5reMlsvEXG4WDB1YDsuIaMv0XP5DC+R059yJad8NhNaP+ZJ9b pyCJYExwUa80yAH3ye92Ag19afWbEQVfiZxL/9br55ZzAwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQFLycfC/5VFzr6x1nj7yqWmuxJSTCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEA81AdfeXjcQT7zUIpcSCVNgTURfZeFE7o9rmN 8VOCpLgooHlN2zuZELxQyDnXsc1JyV+epPmVxEFoXotl2CjRgcwMV6vYlT0DF7Na JRKnt2Xt/uxIS7az965IUXLgVUWO7+33UHP0tLoDyb5oPTt+RDur2S3iWlS/va/e yheys8g= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.phx2.fedoraproject.org.crt0000644000175000017500000001002412231547317031474 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 12 (0xc) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-fas01.phx2.fedoraproject.org/name=shell-fas01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:93:eb:fd:77:fe:bf:5c:d7:b8:dc:4a:66:ae:8f: 9a:c2:1b:a2:cc:48:d1:2c:d3:cb:01:7f:18:fc:dd: d7:b0:d8:78:2d:a2:0e:c4:8f:93:26:c8:a5:20:02: 0b:77:bf:18:32:af:5e:b8:7b:b8:25:d9:33:f8:ce: c8:7a:6f:c8:78:0c:17:08:b7:96:fb:51:6a:34:d0: 34:4a:20:62:36:7c:e7:79:e9:d3:ab:85:5b:27:09: 0e:a8:50:60:ec:7e:10:70:d8:2c:18:6a:e3:82:53: bd:5b:62:08:53:2b:20:2a:20:34:05:ef:03:66:f3: 67:2a:e5:0a:8a:f2:f2:98:61 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 57:24:78:6A:46:74:8F:BA:E0:0D:AE:1D:10:72:8D:6B:FF:E7:64:D5 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 33:56:05:7a:bb:46:ba:a1:90:ae:72:12:09:c7:79:a6:59:69: 68:32:d0:4f:56:cb:f3:15:81:89:8f:d8:84:37:02:01:a8:2b: d3:9a:21:1c:20:db:aa:ce:56:73:6b:99:a6:2c:1a:c3:a6:89: 72:a0:f7:a7:5b:a7:a6:8d:ff:8b:20:1e:48:2f:18:ff:01:d1: 33:17:7d:eb:06:35:6c:b3:b8:f4:86:10:f9:d4:5e:48:8d:15: 1b:93:6e:75:39:01:e9:60:a9:9d:05:e7:82:2e:7d:46:c8:d4: ad:82:d8:80:52:44:a6:0d:37:a8:26:4a:fc:40:67:98:22:11: 44:ca -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBDDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1mYXMw MS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1mYXMwMS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAk+v9d/6/ XNe43Epmro+awhuizEjRLNPLAX8Y/N3XsNh4LaIOxI+TJsilIAILd78YMq9euHu4 Jdkz+M7Iem/IeAwXCLeW+1FqNNA0SiBiNnzneenTq4VbJwkOqFBg7H4QcNgsGGrj glO9W2IIUysgKiA0Be8DZvNnKuUKivLymGECAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUVyR4akZ0j7rgDa4dEHKNa//nZNUwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBADNWBXq7RrqhkK5yEgnHeaZZaWgy0E9Wy/MVgYmP2IQ3AgGo K9OaIRwg26rOVnNrmaYsGsOmiXKg96dbp6aN/4sgHkgvGP8B0TMXfesGNWyzuPSG EPnUXkiNFRuTbnU5AelgqZ0F54IufUbI1K2C2IBSRKYNN6gmSvxAZ5giEUTK -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032263 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKuuc9WoWZtWD5qT umFlSg+3HAvLASjtSUyT+LUTVVartZY65gXrKAEGUj/ug0SS3sKaMGbfRS6L9Krg QXimhJRYuDVVRC83Rua1wUACq6u4kGqiYV1P040yynU3E2/hVELWtdBzpmtl8rJw dg/rMw4swBJsmratFkd0RzNHmQsPAgMBAAECgYBpJLFqc+1VFhL+X2UxSwBduY4i ptRyBUjz7lfORiXoq8bNWAsSKt/YKM/suZ2JPM3Sru3fwvOyuyJAGJHgW1MsKdm+ 7R5uyjtDnonSNVi3jAM11r9tkcU9a8aKqyTAnrr2SRFbObBTGoz21izISREmopbZ feAXaiiKC7jjKJz90QJBAOIEgl4IEihM/WVqbLzbJXpgbU33QRRanTqkZakwlIas Ys7j9mSIZ7qgdicLtNfZ7o1HHWfQrOsltfP+3ex5NzkCQQDCdLQW1HTRUxq9Sbnm O2Qb17eDxUVvFe2VdA5vBqVsep88FAeXqEMdD/uuetCZtSL+BOfznZFZY6kueGtJ iEyHAkBr4d8gZxXTqrwhFmWE183R1gkWd/jWcFIwVZw43/llNw+K1YEch4eLq1/6 Tzoo9dtKEDHXBeIj88IgDv17DHjxAkEAoGS0uvQJWzOqJaHvZZltbI3VQCpyqDs1 GgZ9dVTNFBpcx6hZzt0qZoltdrC06WQAdfhD/qzkXBAZV0xaam+zdwJAZBHpw/Gh NkzV25UUTIcTo8PFbA9jsP3Oowqd7ICYleE4wemeLKb+imfGxrfYCCIrNsJ9vaO/ hFH12T07Hzed2w== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app04.phx2.fedoraproject.org.crt0000644000175000017500000001002512231547317031465 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 23 (0x17) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app04.phx2.fedoraproject.org/name=bodhi-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:aa:cb:fc:f9:7d:35:db:6b:71:34:3c:19:7c:ed: 21:0d:d8:ce:8e:4a:aa:b8:e1:79:18:28:f3:e0:0d: 16:bf:a3:86:13:10:24:d3:cd:02:d0:92:27:a7:8e: a9:08:fe:4f:8b:c8:d5:b4:80:3b:8c:0c:f8:7c:ae: 29:c2:b6:fe:a8:05:a7:02:ba:0e:20:0e:27:24:1c: 1a:3d:b3:15:19:cd:b0:fd:21:b1:6a:d9:f3:e5:e3: 97:49:d4:86:6b:54:4a:83:1e:5e:85:07:c7:c4:78: 83:d1:44:8a:96:e4:1c:ce:1c:a0:36:85:78:17:46: c3:06:57:b4:b3:57:00:d6:b1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: EE:40:47:3E:1A:13:F7:DA:46:81:62:AA:88:0B:B2:4E:EB:16:EB:60 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 01:da:a1:26:2f:7d:b3:41:f0:ac:26:49:22:c4:05:d4:f3:6c: bc:87:d3:d7:02:fc:28:af:28:5d:ab:57:20:fa:c9:67:83:c3: d5:29:35:8b:e0:57:4f:ea:54:b2:28:71:39:02:65:0c:9d:65: d5:8d:97:b9:79:94:30:13:e8:d0:b7:e7:be:35:22:54:78:9f: 65:cf:7c:3d:bc:a6:f9:82:0c:5f:06:06:42:83:a7:6c:ee:d9: ba:bd:0c:9a:a4:e9:c1:6e:1a:7a:0e:e3:d5:9f:82:69:27:bf: 57:9f:dd:03:00:6a:c3:17:98:ab:b5:00:e3:fb:4f:b9:ef:9d: 38:55 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBFzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw NC5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwNC5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqsv8+X01 22txNDwZfO0hDdjOjkqquOF5GCjz4A0Wv6OGExAk080C0JInp46pCP5Pi8jVtIA7 jAz4fK4pwrb+qAWnAroOIA4nJBwaPbMVGc2w/SGxatnz5eOXSdSGa1RKgx5ehQfH xHiD0USKluQczhygNoV4F0bDBle0s1cA1rECAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQU7kBHPhoT99pGgWKqiAuyTusW62AwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAAHaoSYvfbNB8KwmSSLEBdTzbLyH09cC/CivKF2rVyD6yWeD w9UpNYvgV0/qVLIocTkCZQydZdWNl7l5lDAT6NC35741IlR4n2XPfD28pvmCDF8G BkKDp2zu2bq9DJqk6cFuGnoO49Wfgmknv1ef3QMAasMXmKu1AOP7T7nvnThV -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/2A.pem0000644000175000017500000001011612231547317023416 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 42 (0x2a) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedoratagger-packages02.phx2.fedoraproject.org/name=fedoratagger-packages02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ce:e5:a4:56:4a:9e:cc:46:32:48:36:c2:dd:60: 56:34:1f:d2:50:06:8e:7d:41:c2:64:9a:16:29:15: 72:10:ba:83:87:e0:29:99:fd:f9:1b:36:06:64:20: ee:94:92:00:f6:8a:1d:8e:0d:dc:c7:ef:b1:26:ae: 58:70:b0:9e:7a:dd:2a:ef:b7:13:1e:ce:06:9e:5e: b0:b7:46:f8:ba:29:56:df:57:fa:9e:f6:e7:66:4c: c6:4b:99:2a:0f:7d:98:d6:dd:26:50:38:af:0e:74: 34:0a:50:23:7b:dc:fc:c5:ed:48:76:e0:fc:4e:c8: 50:61:7c:18:4d:41:d4:27:0d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: EA:E7:19:57:F0:2A:87:D3:FE:C5:04:6A:08:DA:93:5A:D4:C2:EF:14 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 90:42:74:42:ea:0c:9e:05:85:e9:15:87:b1:16:a2:52:4a:f1: 10:a0:64:f3:52:b3:d6:1f:54:48:aa:a7:f7:63:5e:7a:cc:a6: 10:ad:3c:af:1f:26:1f:19:1c:e9:97:a6:9d:bd:a9:c5:ab:85: 2d:57:83:f3:6d:cb:9a:48:71:7c:66:f8:bc:56:16:35:a4:80: 9c:fe:6e:19:ec:cb:dc:0c:11:75:c3:3c:3f:73:7a:6c:c0:81: 1c:93:f5:50:1c:da:a9:d9:9c:71:c8:95:2a:e4:88:99:94:e9: 9c:0f:b7:9d:89:6d:6f:0c:49:5b:26:eb:7b:23:e6:d1:a5:c2: 5d:eb -----BEGIN CERTIFICATE----- MIIEYTCCA8qgAwIBAgIBKjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB8DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTcwNQYDVQQDEy5mZWRvcmF0YWdn ZXItcGFja2FnZXMwMi5waHgyLmZlZG9yYXByb2plY3Qub3JnMTcwNQYDVQQpEy5m ZWRvcmF0YWdnZXItcGFja2FnZXMwMi5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYw JAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEAzuWkVkqezEYySDbC3WBWNB/SUAaOfUHCZJoWKRVy ELqDh+Apmf35GzYGZCDulJIA9oodjg3cx++xJq5YcLCeet0q77cTHs4Gnl6wt0b4 uilW31f6nvbnZkzGS5kqD32Y1t0mUDivDnQ0ClAje9z8xe1IduD8TshQYXwYTUHU Jw0CAwEAAaOCAVcwggFTMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3kt UlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU6ucZV/Aqh9P+xQRq CNqTWtTC7xQwgdUGA1UdIwSBzTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaak gaMwgaAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWln aDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0G A1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYB BQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAJBCdELqDJ4FhekV h7EWolJK8RCgZPNSs9YfVEiqp/djXnrMphCtPK8fJh8ZHOmXpp29qcWrhS1Xg/Nt y5pIcXxm+LxWFjWkgJz+bhnsy9wMEXXDPD9zemzAgRyT9VAc2qnZnHHIlSrkiJmU 6ZwPt52JbW8MSVsm63sj5tGlwl3r -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/server.key0000644000175000017500000000162012231547317024471 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALGiXNcQaoOkHWVm UYD1ci0Vr3eSrR2tgNjI4u7PEDsHAh5PGMRH1oKNU//CG3JJ/mL+aCbwkY/X4J64 Rpbv70sH9CEQCdmQkqYlOinKtuhpBt+6p3OxccNsHNN91v86zhW3vHv8bGvWb6f9 4ChZB0m/Zpw+H1+4hcRhUflnAECnAgMBAAECgYAfnrlMBz4OpN4euLH1dLuYTu3n KRLr34C6FjhfLjjDaSH1ZzsPZYJHxwSW2GSuWYGQ+ZxsohInOtRfLIpUP+2mb1SU 8j0cIlrvYiussHJZ0774OYwW6iRsu9qW14+6T53hY0lCzJq5HRgh1OD95TYDe4D7 ano1dcAgQ/43ca3ZYQJBAOitxcE5oy2N0zcLlpjV/l12tb3Rcdhigz3phdpj2Hk8 DI6fLMFynbvFTlHaFjZZVVzsk93Ho3F7Z0sIZ65a1M8CQQDDcDhPmiJMN6b5WaeD Lj1BTwjXN4RHUj+xC8nh+l+xjAuBRY2ZNtwbx3jEO2DHWaFQmp8ZsN+yOX/MztOD EvypAkAg5qmG6BKF138dUnsqA2BjcOzD+YDCmzN5prKxrdqnUfFonWNju0RIj97C PjdT2g/zAtTp0FfxLQTvHDIk+l0LAkBdZw9yc656kIpbVw6osfuSb8xA1wZ/833/ BixItJjxSIXjFTOUCtTs7cr4tYwOGfbvh8YLyC1Qhwxd/Ga3mOZpAkBJYHyf3bCH wEW4PqHOyGUl8yiSNEdhY9VDHec2LT7++oFtlKk+sv1ekzA7uEeygEiKp2WfjNOW zmdI0NoDbN+c -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.phx2.fedoraproject.org.crt0000644000175000017500000001001512231547317031136 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 38 (0x26) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fas-fas01.phx2.fedoraproject.org/name=fas-fas01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:9d:a7:37:34:0a:a2:66:c0:a8:c9:40:77:58:d4: 41:a1:ab:88:b7:e5:75:87:c5:7d:2c:d3:71:5d:ee: 6f:0c:11:1f:51:3b:8c:2e:a0:b2:54:e4:01:4a:a0: d0:08:c3:7b:18:06:2a:1a:f5:9f:4a:47:5b:2c:8f: d5:83:f1:d8:87:24:82:61:37:b2:87:81:78:23:79: b7:9f:5e:22:3a:75:11:a3:69:e6:94:c0:33:03:53: d1:71:45:5e:4e:ca:cc:95:a6:92:93:7c:ae:6a:e6: 89:71:c1:78:67:0d:c6:ef:41:b4:c8:57:ab:31:82: 80:b5:52:15:d6:b3:29:3f:99 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 2C:3A:53:24:0B:F6:30:F6:AC:66:FA:3E:F6:85:03:AA:B6:7E:FB:67 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 49:0f:21:c5:45:b6:a8:1c:a5:b2:e7:fc:c2:04:07:3c:a9:2d: 26:f6:bd:23:26:f4:77:b2:46:66:e3:20:4a:36:60:c9:19:8c: b5:45:4e:f9:25:00:85:57:80:7c:7e:78:f8:e5:5b:47:83:20: cd:5c:f1:91:87:d7:b1:4e:71:7e:ac:1e:d6:62:25:28:d2:d3: 79:c0:3d:78:30:5b:73:36:56:47:59:21:9e:f1:ed:83:e6:73: 9f:3d:85:42:30:93:63:00:3e:83:58:0d:0b:4c:6e:3c:33:a0: d5:ff:eb:f9:a5:5f:4f:a1:e4:66:86:d2:7e:38:dc:67:be:5d: a1:19 -----BEGIN CERTIFICATE----- MIIERTCCA66gAwIBAgIBJjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB1DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSkwJwYDVQQDEyBmYXMtZmFzMDEu cGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEpMCcGA1UEKRMgZmFzLWZhczAxLnBoeDIu ZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXBy b2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdpzc0CqJmwKjJ QHdY1EGhq4i35XWHxX0s03Fd7m8MER9RO4wuoLJU5AFKoNAIw3sYBioa9Z9KR1ss j9WD8diHJIJhN7KHgXgjebefXiI6dRGjaeaUwDMDU9FxRV5OysyVppKTfK5q5olx wXhnDcbvQbTIV6sxgoC1UhXWsyk/mQIDAQABo4IBVzCCAVMwCQYDVR0TBAIwADAt BglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0G A1UdDgQWBBQsOlMkC/Yw9qxm+j72hQOqtn77ZzCB1QYDVR0jBIHNMIHKgBQAmKXV 58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgT Ak5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEP MA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1z ZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmeCCQCO6yjY qROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZIhvcN AQEFBQADgYEASQ8hxUW2qBylsuf8wgQHPKktJva9Iyb0d7JGZuMgSjZgyRmMtUVO +SUAhVeAfH54+OVbR4MgzVzxkYfXsU5xfqwe1mIlKNLTecA9eDBbczZWR1khnvHt g+Zznz2FQjCTYwA+g1gNC0xuPDOg1f/r+aVfT6HkZobSfjjcZ75doRk= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-packages02.phx2.fedoraproject.org.crt0000644000175000017500000001006012231547317032502 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 16 (0x10) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-packages02.phx2.fedoraproject.org/name=shell-packages02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c1:5d:b2:f3:e1:95:08:73:5c:1d:84:e4:6a:f7: c6:b6:15:ce:f0:ce:a7:18:72:fe:43:0f:50:28:6c: 97:e6:b2:cd:47:86:a7:ad:95:74:a7:c8:c1:23:29: 6e:6a:75:61:a4:be:62:80:a6:fe:54:2a:8a:b4:13: 16:56:af:8b:56:c0:c2:a5:49:10:86:be:be:23:26: 5c:7e:b9:6d:3d:8e:d9:a1:be:5d:11:56:d7:62:a6: e5:57:4a:2d:f7:0e:ae:bf:52:a8:65:ac:6f:38:f3: d3:c9:e6:12:ad:ff:b5:d2:46:0b:7d:df:50:cb:01: 84:9e:13:1d:07:32:11:a2:57 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A5:84:96:52:F0:B2:05:0D:EC:6C:E0:3C:25:4F:DB:1B:7D:CD:E6:94 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 6b:09:ad:38:0a:1c:00:ce:d5:0a:85:29:86:48:34:ed:20:9a: 53:d2:6e:58:8d:e5:4d:28:60:64:30:be:91:54:14:69:de:1c: 8b:96:c7:c9:ef:63:f5:00:75:57:f5:0b:63:a8:49:86:59:ae: 7c:ab:4b:fa:1a:0b:72:ae:d6:c4:28:b1:d7:12:11:34:e5:a1: 69:fe:a3:e7:0b:23:72:ba:07:9a:23:48:39:5a:b3:63:21:0b: 13:3e:06:f4:f2:30:65:78:b4:43:e7:2e:31:85:d3:df:71:b6: dd:b4:f8:7d:25:1c:f2:55:bd:e4:b2:48:64:48:b8:c9:54:3f: b8:ee -----BEGIN CERTIFICATE----- MIIEUzCCA7ygAwIBAgIBEDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTAwLgYDVQQDEydzaGVsbC1wYWNr YWdlczAyLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMDAuBgNVBCkTJ3NoZWxsLXBh Y2thZ2VzMDIucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYX YWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBAMFdsvPhlQhzXB2E5Gr3xrYVzvDOpxhy/kMPUChsl+ayzUeGp62VdKfIwSMp bmp1YaS+YoCm/lQqirQTFlavi1bAwqVJEIa+viMmXH65bT2O2aG+XRFW12Km5VdK LfcOrr9SqGWsbzjz08nmEq3/tdJGC33fUMsBhJ4THQcyEaJXAgMBAAGjggFXMIIB UzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQg Q2VydGlmaWNhdGUwHQYDVR0OBBYEFKWEllLwsgUN7GzgPCVP2xt9zeaUMIHVBgNV HSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQG EwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZl ZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEP MA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9q ZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQE AwIHgDANBgkqhkiG9w0BAQUFAAOBgQBrCa04ChwAztUKhSmGSDTtIJpT0m5YjeVN KGBkML6RVBRp3hyLlsfJ72P1AHVX9QtjqEmGWa58q0v6GgtyrtbEKLHXEhE05aFp /qPnCyNyugeaI0g5WrNjIQsTPgb08jBleLRD5y4xhdPfcbbdtPh9JRzyVb3kskhk SLjJVD+47g== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/index.txt.old0000644000175000017500000002066712231547317025112 0ustar threebeanthreebean00000000000000V 220713211852Z 01 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org R 220713211852Z 120715211852Z 02 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=dummy-revoked/name=dummy-revoked/emailAddress=admin@fedoraproject.org V 220713211852Z 03 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app01.phx2.fedoraproject.org/name=shell-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 04 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app02.phx2.fedoraproject.org/name=shell-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 05 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app03.phx2.fedoraproject.org/name=shell-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 06 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app04.phx2.fedoraproject.org/name=shell-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 07 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app05.phx2.fedoraproject.org/name=shell-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 08 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app06.phx2.fedoraproject.org/name=shell-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 09 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app07.phx2.fedoraproject.org/name=shell-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0A unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app01.stg.phx2.fedoraproject.org/name=shell-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0B unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app02.stg.phx2.fedoraproject.org/name=shell-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0C unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-fas01.phx2.fedoraproject.org/name=shell-fas01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0D unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-fas01.stg.phx2.fedoraproject.org/name=shell-fas01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0E unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-fas01.dev.phx2.fedoraproject.org/name=shell-fas01.dev.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0F unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-packages01.phx2.fedoraproject.org/name=shell-packages01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 10 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-packages02.phx2.fedoraproject.org/name=shell-packages02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 11 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-packages01.stg.phx2.fedoraproject.org/name=shell-packages01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 12 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-pkgs01.phx2.fedoraproject.org/name=shell-pkgs01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 13 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-pkgs01.stg.phx2.fedoraproject.org/name=shell-pkgs01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 14 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app01.phx2.fedoraproject.org/name=bodhi-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 15 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app02.phx2.fedoraproject.org/name=bodhi-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 16 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app03.phx2.fedoraproject.org/name=bodhi-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 17 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app04.phx2.fedoraproject.org/name=bodhi-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 18 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app05.phx2.fedoraproject.org/name=bodhi-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 19 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app06.phx2.fedoraproject.org/name=bodhi-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1A unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app07.phx2.fedoraproject.org/name=bodhi-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1B unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app01.stg.phx2.fedoraproject.org/name=bodhi-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1C unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app02.stg.phx2.fedoraproject.org/name=bodhi-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1D unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app01.phx2.fedoraproject.org/name=mediawiki-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1E unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app02.phx2.fedoraproject.org/name=mediawiki-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1F unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app03.phx2.fedoraproject.org/name=mediawiki-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 20 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app04.phx2.fedoraproject.org/name=mediawiki-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 21 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app05.phx2.fedoraproject.org/name=mediawiki-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 22 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app06.phx2.fedoraproject.org/name=mediawiki-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 23 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app07.phx2.fedoraproject.org/name=mediawiki-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 24 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app01.stg.phx2.fedoraproject.org/name=mediawiki-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 25 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app02.stg.phx2.fedoraproject.org/name=mediawiki-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 26 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fas-fas01.phx2.fedoraproject.org/name=fas-fas01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 27 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fas-fas01.stg.phx2.fedoraproject.org/name=fas-fas01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 28 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fas-fas01.dev.phx2.fedoraproject.org/name=fas-fas01.dev.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 29 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedoratagger-packages01.phx2.fedoraproject.org/name=fedoratagger-packages01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 2A unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedoratagger-packages02.phx2.fedoraproject.org/name=fedoratagger-packages02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 2B unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedoratagger-packages01.stg.phx2.fedoraproject.org/name=fedoratagger-packages01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 2C unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=scm-pkgs01.phx2.fedoraproject.org/name=scm-pkgs01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app02.stg.phx2.fedoraproject.org.csr0000644000175000017500000000147212231547317033142 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICKTCCAZICAQAwgegxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEzMDEGA1UEAxMqbWVkaWF3aWtpLWFwcDAyLnN0Zy5waHgyLmZlZG9yYXBy b2plY3Qub3JnMTMwMQYDVQQpEyptZWRpYXdpa2ktYXBwMDIuc3RnLnBoeDIuZmVk b3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2pl Y3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEsb7cnJW/lVkbw+fo a1WE26XpRpZs1lFenIxiwLCYhk3iH1Zd4tktYQAGP7ieh1DbyXzYflYDNblYB8Kq ONfquIqHoQn4TBPTAY7DLm7AtvhtovZ5sUyDb/gRobLidRWwymF3T0scpblA2UaK QQDcYJk+zeu/MRN65qg8Bn+DIwIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEAK87p ysz+JmXvradhGK3kTUv1bWNr3ufW44N0qzhEE726RYFBNmHOmS3y7kBGnlSItpcN 2p77HzpNKZsMa5EqOabNr41o+a+nsWthHwRvgvniMX6xOt/vrpGvGAuy+SAmxaj5 jzljUlBUz9l6IZj0B1Dbq5avMI8PMqoZzAyeYXk= -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317034626 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANPQgqJMwUo/40Wk CPC2RvgUTdE/2o1xergXFztcz0o5IfpclSPBi0yAHnI3hJJWR1A0V/27eUuLOa8a bz2vD/I0yeicSwnFagVCcZqQL5ZJlqUPf9loSV/vh5CjBSXmRFBBJSURf5+WA50C 9XROPsI9hG9abDw+tMXPlfyHDmPnAgMBAAECgYEAk1EpGlKB+O84Vb5BzZEpCO+u M8PScJ+ld5XvvYTOU1QrMqLjw4ugI6PUCSJd3R2O2dSeAkY6lXUOuJ+NEPzJ/Cn+ WoGWC/yPuCZqnpg9pBEcHQwHgU9KZiMvxxoiJJK6DRGsFm6Gwugyte4SK5Jxf4tp ywZ5hQBhZEN0JpFyp0ECQQDvAzMwE09qFmLnVMk282t+XUFZh5ttQlq1sm9lJjFL igv56vDxHGjPGsNrx6BJxDGviGDjiSsa07RDLY/ww+BHAkEA4t5yQE+2V95gjE7F Dhvr/MEEudM2IUmtw7FLtpURbxoJzVWTxoqTo2v92eDnF8a3mDRaQvGVJeM7nEFH JRvPYQJAZW0jNLyND8TuNaLaPHJx5E7oo3iTcXseCUruUKszcg3j5StZEchvhaui 0EMHdyZFu2qRSx1zaE/8iCF2msJUkwJBANXzLFIEGpVBLVIEkwecQ3Ao43kPe9Pm tQ2BLULxz/Az4RyY4PTzCQqsNEj+NVGR4OCUNq89PwftBPF2Ck8vq+ECQQCmaDEW FbTFxVpg5jP55f+44PyFt4Bz0CqXpj7zZmqr7A5nefkObGuI4pvbi7P+GKbS2WUk TUIIzoyRQoB29iF1 -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-pkgs01.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031676 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGzCCAYQCAQAwgdoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEsMCoGA1UEAxMjc2hlbGwtcGtnczAxLnBoeDIuZmVkb3JhcHJvamVjdC5v cmcxLDAqBgNVBCkTI3NoZWxsLXBrZ3MwMS5waHgyLmZlZG9yYXByb2plY3Qub3Jn MSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkq hkiG9w0BAQEFAAOBjQAwgYkCgYEA1Tf71IqlMEARJetmuo1VMWij4Bp328c3o4RE 7ZM/1DKLWaH7i2RvL1T2aar6sIj/u7UdSxinG+xUwtBWpdp4SxcTO4uT83zfPRYh xJB+HWvvEzG+QU4hp5ecK3ubMn5iRF9ZrDF0ErrVzxQNWEIaSbnGKlPoh3cSPi7q 401A/4sCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAMEUK9yuqbpPfwe1zqpfE26t t7n5wf5oaxtQBYUN8vM2f9sC7/+mVgtimDSrVKThTfkenNlapNPvsBTtP+9zzHfG 1is/aAm5Akurdhukc+V3ooWSjNh+/JfMpnl6PoZ/ySlQoY0XDu4nTzc425O+R0ei sNhSYiqiX/4BmabXjxoC -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-fas01.dev.phx2.fedoraproject.org.crt0000644000175000017500000001005112231547317032251 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 14 (0xe) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-fas01.dev.phx2.fedoraproject.org/name=shell-fas01.dev.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:df:60:8a:56:a3:8e:46:fa:db:94:95:3e:27:ba: 87:38:f5:0f:f7:4f:29:41:38:25:b6:f5:1c:bf:49: 89:38:41:ed:29:26:f9:96:6a:0c:98:16:ed:0d:e9: 01:56:d5:f5:83:07:7e:8b:40:c7:df:89:91:2e:ea: 0d:82:d9:91:13:35:61:d1:22:e8:56:96:18:a0:45: 3f:45:57:91:d2:86:76:58:66:f2:38:70:fb:db:81: 2a:b5:d6:a9:01:80:85:59:97:d3:3d:49:35:c6:6c: 2d:b5:a8:47:50:9d:b4:b9:79:95:8b:c2:6b:25:20: f3:e8:96:6d:79:fc:53:be:a5 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E7:96:A6:27:1B:7F:5F:3A:37:D5:0D:67:56:D5:65:0D:A5:DF:58:0A X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption ef:83:7d:74:e5:d4:ef:85:c1:21:cd:c1:fa:eb:6e:75:67:ea: 75:56:59:d2:a2:1b:33:16:4e:7f:47:fa:19:64:b6:01:9f:c0: d7:c6:2f:c3:ff:fd:62:9e:e2:7b:1d:6a:32:32:14:fc:83:f9: e4:7c:58:f7:7c:03:2a:d8:84:7f:49:5e:c4:84:ef:73:1a:6f: 7e:e0:a5:4b:19:11:49:c4:7e:ba:30:b5:ba:84:e6:b5:1b:c1: 7f:ad:10:75:99:5f:28:55:1b:48:9b:ee:30:7e:be:fa:a2:0f: 31:0a:5d:4d:f5:34:7f:66:aa:6f:0d:d6:e3:8f:f6:ba:72:56: 5f:f8 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBDjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZzaGVsbC1mYXMw MS5kZXYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmc2hlbGwtZmFz MDEuZGV2LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDfYIpWo45G+tuUlT4nuoc49Q/3TylBOCW29Ry/SYk4Qe0pJvmWagyYFu0N6QFW 1fWDB36LQMffiZEu6g2C2ZETNWHRIuhWlhigRT9FV5HShnZYZvI4cPvbgSq11qkB gIVZl9M9STXGbC21qEdQnbS5eZWLwmslIPPolm15/FO+pQIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBTnlqYnG39fOjfVDWdW1WUNpd9YCjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEA74N9dOXU74XBIc3B+utudWfqdVZZ0qIbMxZO f0f6GWS2AZ/A18Yvw//9Yp7iex1qMjIU/IP55HxY93wDKtiEf0lexITvcxpvfuCl SxkRScR+ujC1uoTmtRvBf60QdZlfKFUbSJvuMH6++qIPMQpdTfU0f2aqbw3W44/2 unJWX/g= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/mediawiki-app06.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032354 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICITCCAYoCAQAwgeAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEvMC0GA1UEAxMmbWVkaWF3aWtpLWFwcDA2LnBoeDIuZmVkb3JhcHJvamVj dC5vcmcxLzAtBgNVBCkTJm1lZGlhd2lraS1hcHAwNi5waHgyLmZlZG9yYXByb2pl Y3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7GkF14+9ssbc3ZyOKK8k8ylY65mp yvDCvm2W6jGbSe05X+Y3HyyjUH094HaRAOdcpTCe5axHSGMN2bCh8uS8nBR6Tw8/ m8EXEGyEeMjOcBMwA88+YrF39t7hu38fhklfNZnpQ7iqtysJcgn8m63/zerzdbL7 gvIaF68Y8gSK2rsCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBADPufs9C9BIoRXRU q7Nr5/YBRF9RaczA9Y5b5X4oOpqH1Bsnp/z57dL6jN0W5KyR4jLUibiAimSEp/uq 2iWOdSQk+6LMQioQNEKipMkfH0Bv9zGOneXg/vTS4A87hAVCJ5cmU+5cDTtiBBOJ 5R1i75e54wTXsqHuiFwaSZckQtSy -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/scm-pkgs01.stg.phx2.fedoraproject.org.csr0000644000175000017500000000145612231547317032146 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICHzCCAYgCAQAwgd4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEuMCwGA1UEAxMlc2NtLXBrZ3MwMS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0 Lm9yZzEuMCwGA1UEKRMlc2NtLXBrZ3MwMS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0 Lm9yZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8w DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANCNuo7CLGW2gPK5SLi5pndhdtS/iEtr o6Zxwf7HRgBJ5xqqZRCGL6BCgiJOhSiw/vqUnSi0SxaAVFvd3sR3DOuO6pGQvSL/ 5+Ij9D29BN49EQ6bDORRsdn8IxzuHwxZE6AkCirEooClA+SMpnqCVk4ksbDRnhXG mEENTW/5kSYBAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQA1m6TtK5SrbuavV5Qu rYgdE/qQFSTPN783xkTyT6iMPXelKHG+3pkTMKRc0qqrFy9DtPsf2NYZwmMJuIq1 Wt9uW9wMWHA7DM3a/RfKtALt5T+5P+hnmWbM/bzBhbeVStqtwIj+63rkm/bm5E+o HRsR1HjK1yPdPje3wIQMpibeCg== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app07.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031517 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMWtGBdqVCoVfrBO fOBiE+32Wr4+J6CSfiPTYUBRe5F5lL16ePAQMJjUXzh3BZ25V1iJvHLmbVWoowFD e0VimlTvTxzDgGzAbJWHZyhJd9G/ZAQqFIjIEpt/zUELOXm+BlkeOnxtT4GeIWum vs2RlOfa0ujr9jfU/5T7W1w+VX09AgMBAAECgYEAhZGXVMMRCbqqdwEh2hALfWBY InInHpW9zAFZljc4sqyfd4SY0UVvQOVHTgUGc3O39GhlQJI40Id5VTI+yjx9ILLY p6cuzeU+qO7Jn2NZ/JR3iFaA7NAPisk0VXb8OnXhbQl8m5SFK7uxNSlO8MWirMuA T+g/fj9o/Br9UObGylUCQQD82yuFOSQwWRFduoUcDFfadz7WYuI0m77f5OamjaPw dw5hT/GnlhfS3ZYCYAiuP6vbREAzfXp8WnDSH++xxxVTAkEAyCJJ49ruAknJibjz LkpkUpzoTUCc6/4TElGWJ8alFfqd3oXvWXWK+NHRFWrDotB9Eu8+4nTr2t9P/iTW mdfBLwJAV2V5uWZyt7NRaVAaygMKKpykv30WKpDafJClmFPEokzET6ZOJFqgiWXF f7Spy3B+eh8xAZsRRwILlNUtCAmDuQJAfNf24+6EHmVNFV6MREofvvEmcFpoCUbb OsguNO3TuZw2ssM2BcYvRPwNw6BwHbaU7yTTQ4zQPB6l1dHBFQLj/QJBANvi8xfG kExy81PWxWyiFsHqlpLgkAoQ5jjXSxKlcV53jXhV4P4Z/YaPPmUgaYMJEm1o0rN6 5IMe+2wtKPe9BZA= -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app01.phx2.fedoraproject.org.crt0000644000175000017500000001002512231547317031462 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 20 (0x14) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app01.phx2.fedoraproject.org/name=bodhi-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d6:22:73:4e:ac:e4:76:94:5d:d5:91:86:1c:5b: 36:1b:39:34:0f:c7:4b:12:c8:43:97:30:b5:e3:cd: 72:d5:9a:d0:db:0a:3a:fb:e1:92:32:18:0a:e6:90: f4:b3:fe:f0:a5:d0:54:81:dc:60:14:e2:22:39:28: 8f:34:65:72:72:ad:08:dc:e4:47:23:02:4c:de:02: f5:f2:44:17:3c:b8:64:44:cf:94:e3:f6:1a:08:27: 6f:a5:45:0a:2c:64:45:d6:cf:0e:83:67:44:b0:f8: ad:fc:12:4b:27:9c:85:f3:45:b5:1a:b3:aa:eb:66: 2b:a1:af:21:81:86:f3:df:09 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 93:78:BE:E2:F2:D6:18:DF:CE:6A:CF:8F:FD:86:9E:8D:7A:3C:10:55 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 3a:8f:ed:20:63:0b:b3:9c:a7:77:dd:28:71:09:29:45:2f:03: ec:c2:83:6a:23:61:a4:24:54:67:14:31:16:bf:69:14:af:7c: 1d:91:22:f1:1b:13:f7:da:90:05:bb:2d:d1:11:17:52:99:ae: e9:e0:30:08:9f:d1:51:5c:a9:45:7d:1c:34:97:cf:98:8b:ae: 71:03:87:b2:b3:f3:45:a6:ec:26:4b:b6:92:64:1f:2a:36:5f: 46:8f:89:61:d5:34:91:64:fe:98:86:19:ef:98:62:1d:6f:10: 4d:96:95:a0:cf:cc:57:43:e4:07:1f:ff:b2:81:90:43:20:a6: 9b:19 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBFDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw MS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwMS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1iJzTqzk dpRd1ZGGHFs2Gzk0D8dLEshDlzC1481y1ZrQ2wo6++GSMhgK5pD0s/7wpdBUgdxg FOIiOSiPNGVycq0I3ORHIwJM3gL18kQXPLhkRM+U4/YaCCdvpUUKLGRF1s8Og2dE sPit/BJLJ5yF80W1GrOq62Yroa8hgYbz3wkCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUk3i+4vLWGN/Oas+P/YaejXo8EFUwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBADqP7SBjC7Ocp3fdKHEJKUUvA+zCg2ojYaQkVGcUMRa/aRSv fB2RIvEbE/fakAW7LdERF1KZrungMAif0VFcqUV9HDSXz5iLrnEDh7Kz80Wm7CZL tpJkHyo2X0aPiWHVNJFk/piGGe+YYh1vEE2WlaDPzFdD5Acf/7KBkEMgppsZ -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.phx2.fedoraproject.org.csr0000644000175000017500000000143612231547317031144 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICFTCCAX4CAQAwgdQxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzEpMCcGA1UEAxMgZmFzLWZhczAxLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcx KTAnBgNVBCkTIGZhcy1mYXMwMS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJ KoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0B AQEFAAOBjQAwgYkCgYEAnac3NAqiZsCoyUB3WNRBoauIt+V1h8V9LNNxXe5vDBEf UTuMLqCyVOQBSqDQCMN7GAYqGvWfSkdbLI/Vg/HYhySCYTeyh4F4I3m3n14iOnUR o2nmlMAzA1PRcUVeTsrMlaaSk3yuauaJccF4Zw3G70G0yFerMYKAtVIV1rMpP5kC AwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAC8ZnlHzgqNEnopXa6lkf0Je245u6rhz njUwdokBacL755hw9KHXRJhzp8/OakbcpTHjxfHz/jGEEcvoIWn3quGSdMf82NMg m8RBBlETrJ0E7IUbTSDnpSFf3g6wb7S1oZzyP59JplbxWiVtpDUX4ljeJncXSWJi eNobjfNoughS -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/06.pem0000644000175000017500000001002312231547317023376 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 6 (0x6) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app04.phx2.fedoraproject.org/name=shell-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:e8:ae:46:69:1a:0e:10:7f:93:dd:18:cf:e0:62: 75:ef:44:6f:fc:79:d3:c6:6b:0c:27:84:2e:b5:41: 53:eb:ad:24:41:1c:1b:2c:8e:da:87:17:9b:12:35: cf:d4:e7:68:93:47:12:b6:e3:10:e7:aa:73:1e:fc: 82:47:1f:92:30:ba:89:2e:36:91:b6:55:32:c0:12: cf:75:6b:5b:98:06:06:5c:92:a5:fe:b6:26:dc:ea: 12:72:be:2b:e5:b4:62:e2:12:82:94:d8:79:c6:14: 0f:63:64:ad:7b:73:d4:83:9d:c2:b5:54:5e:d5:ab: 3e:c1:2e:66:8b:2e:ef:42:35 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: AE:12:E4:43:F3:1A:3F:DA:A5:21:20:DF:57:3D:C6:76:31:F6:A4:00 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption ca:49:0a:ad:a8:10:3f:56:67:2a:80:18:03:5c:e3:2a:c0:5f: 60:a0:94:32:e4:b5:8d:ce:84:99:f2:a2:5c:37:05:d2:e0:25: cb:7d:cf:44:0f:88:24:56:b7:6e:2c:c0:61:21:93:42:3b:a8: 56:d2:57:14:8e:36:1b:6f:b6:30:32:ea:19:3a:61:83:0b:36: ef:1b:d7:74:c8:ed:75:e4:e6:5c:9f:44:e6:d8:2d:c8:be:d9: b3:81:33:8c:69:09:5b:8c:6c:fb:a1:3d:09:e4:8d:11:fb:a3: 2c:e8:5a:79:b8:5e:ea:67:5d:1f:22:95:73:8c:99:0e:05:2a: fb:29 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBBjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw NC5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwNC5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6K5GaRoO EH+T3RjP4GJ170Rv/HnTxmsMJ4QutUFT660kQRwbLI7ahxebEjXP1Odok0cStuMQ 56pzHvyCRx+SMLqJLjaRtlUywBLPdWtbmAYGXJKl/rYm3OoScr4r5bRi4hKClNh5 xhQPY2Ste3PUg53CtVRe1as+wS5miy7vQjUCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUrhLkQ/MaP9qlISDfVz3GdjH2pAAwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAMpJCq2oED9WZyqAGANc4yrAX2CglDLktY3OhJnyolw3BdLg Jct9z0QPiCRWt24swGEhk0I7qFbSVxSONhtvtjAy6hk6YYMLNu8b13TI7XXk5lyf RObYLci+2bOBM4xpCVuMbPuhPQnkjRH7oyzoWnm4XupnXR8ilXOMmQ4FKvsp -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/05.pem0000644000175000017500000001002312231547317023375 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 5 (0x5) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app03.phx2.fedoraproject.org/name=shell-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:bc:36:a9:25:04:96:6a:eb:80:5e:e3:9d:a5:45: a0:56:88:51:4c:61:bf:89:7a:d8:50:8a:76:51:1f: bb:11:b9:df:93:e9:bc:63:a7:0a:eb:9a:de:70:f2: 97:13:74:6d:ac:fe:b7:a1:3d:23:a1:b7:e7:e4:01: 59:f4:6a:de:d1:58:aa:0f:c9:1b:39:17:5a:e4:c3: 28:e4:1a:d7:3e:60:0d:4d:aa:13:b8:52:3a:7d:d8: c9:31:95:45:aa:f4:13:c1:e1:f5:f6:30:91:87:25: 6d:84:69:88:c1:74:69:8b:5a:f2:6f:16:2c:bf:d5: be:4a:18:29:54:c5:a7:fb:83 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: C2:A3:12:85:02:0D:63:6B:D3:0D:51:EC:62:15:BE:C0:C3:BF:1A:16 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption c9:bf:d7:b4:95:1a:12:93:f5:d8:5b:c7:76:fa:b8:48:9d:51: 49:30:22:e7:28:2f:b3:75:de:af:90:02:d7:61:62:be:b0:26: 15:54:a1:1f:41:ee:e2:b0:e5:f5:ba:18:bb:eb:e1:d6:c6:c1: 48:b0:b5:7c:9c:e6:72:91:c6:81:48:91:06:e0:c7:61:e9:15: a1:a7:7b:23:31:7c:4c:12:4c:31:3c:6a:01:ec:78:f7:db:f8: b6:d6:31:b6:d5:92:23:e1:11:fc:12:18:0e:ae:fb:3a:b8:c1: 56:c6:51:5a:54:35:85:b8:84:b7:93:c7:95:fb:44:a3:bf:0f: f2:01 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBBTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw My5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwMy5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvDapJQSW auuAXuOdpUWgVohRTGG/iXrYUIp2UR+7Ebnfk+m8Y6cK65recPKXE3RtrP63oT0j obfn5AFZ9Gre0ViqD8kbORda5MMo5BrXPmANTaoTuFI6fdjJMZVFqvQTweH19jCR hyVthGmIwXRpi1rybxYsv9W+ShgpVMWn+4MCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUwqMShQINY2vTDVHsYhW+wMO/GhYwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAMm/17SVGhKT9dhbx3b6uEidUUkwIucoL7N13q+QAtdhYr6w JhVUoR9B7uKw5fW6GLvr4dbGwUiwtXyc5nKRxoFIkQbgx2HpFaGneyMxfEwSTDE8 agHsePfb+LbWMbbVkiPhEfwSGA6u+zq4wVbGUVpUNYW4hLeTx5X7RKO/D/IB -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fedoratagger-packages02.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317034033 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAM7lpFZKnsxGMkg2 wt1gVjQf0lAGjn1BwmSaFikVchC6g4fgKZn9+Rs2BmQg7pSSAPaKHY4N3MfvsSau WHCwnnrdKu+3Ex7OBp5esLdG+LopVt9X+p7252ZMxkuZKg99mNbdJlA4rw50NApQ I3vc/MXtSHbg/E7IUGF8GE1B1CcNAgMBAAECgYEApqsDmaf/CFu8AcRrcd47Uz4X M/Q0MN8ac+RU2b+25Zb6giioGq8nTy5UM7D7wJ9lOzXD3T15j26dbKWiBRWic7B8 dKjfE34T76Ewg5Uw1GQflkOUBSeToMxLznzcMaGJa/Gqg2sDg6ok4Ck+BT9OCoan 1ZanPCYzSWAX41pvURkCQQDq2YdhiBBR9WR5C49X4Kzlxbpnt0o0OYqsbVNEIkZm dACg4Ssecl56NuQ87trV3yv5CaLpykdo7zz7/DXtquF3AkEA4Yepp2fotH5SOVuy 9Q5nfXvk2RfK+17Jp/yXlLla1Zbq9Haehk7PUAmIHLznaPQGzUbd04ClrUvn5nKF 5Rh8mwJAbM/e/xyI20CEjeUCRGgwE8H6bSWqduoWS2/X/aCX1851oBTT4qaBCcU3 GNhegmuFtzx0xDfZwE/ghKxF3FmpXwJAOdSUr0WYyTefE/AsmmQAK5AqZXSRaxWq NfYyVEOXRC+3vcnw6lWpGUfobB4QZLw2RksGtKZHVYGiTFhPdyhpQwJAHUegGhVf X93tBht5NrATZyKaVVzrU1gcKFlyoSarD+orSW40u+8Jx+4pmlob2fDfsQw0Q1R4 ScDaMaACExjV+g== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/index.txt.attr.old0000644000175000017500000000002512231547317026045 0ustar threebeanthreebean00000000000000unique_subject = yes fedmsg-0.9.3/fedmsg/tests/test_certs/keys/1E.pem0000644000175000017500000001005212231547317023420 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 30 (0x1e) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app02.phx2.fedoraproject.org/name=mediawiki-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:b9:d2:49:0f:11:a0:6b:14:f6:c5:10:cc:9e:83: 3d:8f:03:05:20:d9:d9:5f:99:92:0e:e3:7d:4f:08: 7d:3d:f6:b9:4c:b4:8d:7d:64:15:ad:b3:de:07:a9: 64:0e:a9:9b:4f:ca:47:32:a7:57:95:27:d3:8d:16: f3:58:cc:6b:63:a4:d9:ad:db:93:aa:1c:5e:4a:b4: 39:94:dd:d2:43:be:26:53:8b:ef:cb:82:11:61:82: 8b:61:d1:c3:54:1e:17:37:25:6f:c8:a8:d1:0e:a4: b6:cc:e1:fb:4b:42:88:34:f6:2f:3d:a1:f4:d3:f6: b7:f1:b5:bf:2e:d3:11:7f:ef Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 7C:CC:1E:F5:C3:3F:C9:81:8F:77:66:1C:E8:E7:BD:62:C0:70:CF:BA X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 85:0c:df:b6:93:a2:31:5a:e2:31:0e:1a:7d:6f:f0:49:37:fd: 11:d1:51:15:32:06:c1:04:81:59:b4:5e:72:db:90:f6:75:b8: c6:c9:f4:32:42:86:e1:bf:8a:5c:7e:dd:a3:70:83:10:c4:ed: 81:49:41:bb:77:db:a2:76:60:cf:9e:d7:34:43:93:da:ed:dc: 4f:0f:50:70:78:69:4d:df:19:fe:28:00:3b:23:80:48:a0:fe: 0c:7c:d4:67:52:0d:49:17:82:f9:2b:05:c7:d6:91:2c:d8:0c: 12:0e:e3:b7:9e:ee:4b:e7:5b:9d:24:de:3e:f9:b7:04:a5:8b: 0f:97 -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBHjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDIucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDAyLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQC50kkPEaBrFPbFEMyegz2PAwUg2dlfmZIO431PCH099rlMtI19ZBWts94HqWQO qZtPykcyp1eVJ9ONFvNYzGtjpNmt25OqHF5KtDmU3dJDviZTi+/LghFhgoth0cNU Hhc3JW/IqNEOpLbM4ftLQog09i89ofTT9rfxtb8u0xF/7wIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBR8zB71wz/JgY93Zhzo571iwHDPujCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAhQzftpOiMVriMQ4afW/wSTf9EdFRFTIGwQSB WbRectuQ9nW4xsn0MkKG4b+KXH7do3CDEMTtgUlBu3fbonZgz57XNEOT2u3cTw9Q cHhpTd8Z/igAOyOASKD+DHzUZ1INSReC+SsFx9aRLNgMEg7jt57uS+dbnSTePvm3 BKWLD5c= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app04.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031515 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMic2hlbGwtYXBwMDQucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMic2hlbGwtYXBwMDQucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAOiuRmkaDhB/k90Yz+Bide9Eb/x508ZrDCeELrVB U+utJEEcGyyO2ocXmxI1z9TnaJNHErbjEOeqcx78gkcfkjC6iS42kbZVMsASz3Vr W5gGBlySpf62JtzqEnK+K+W0YuISgpTYecYUD2NkrXtz1IOdwrVUXtWrPsEuZosu 70I1AgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQB3GEk8WaWUlJ3SM/ZvTLcmEDO1 v2cFErHMMKEqOsEP7PNcbipy5T7AeQZA4T5EI3KOvbp0CTjU0/IcPR5sxbeXqcwm 7K9l/sCI5WyrOUKlE9dIhfe78BhimXWYIX9mmrQIEDQfZOKe5d2CxRLZFMqHUghe Xq8oo9GB8utLNCCOaQ== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/scm-pkgs01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317032144 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANCNuo7CLGW2gPK5 SLi5pndhdtS/iEtro6Zxwf7HRgBJ5xqqZRCGL6BCgiJOhSiw/vqUnSi0SxaAVFvd 3sR3DOuO6pGQvSL/5+Ij9D29BN49EQ6bDORRsdn8IxzuHwxZE6AkCirEooClA+SM pnqCVk4ksbDRnhXGmEENTW/5kSYBAgMBAAECgYBqy6j04coKa+KsaOUscyUjjO1l FI+ez4gF+8rzxOe7zhxiM099nrlUv7oUB1F4/OoVN3UjGvA4nY6VXJBu2ufp6n5f GMoOagw9XccRMYUcrW6DfAckcs7qCZX4ayLmynaagfeHO6Buiix6z9tKZUt6ugYd qMQl370HfISUIB2gAQJBAP8gEInLioXqWKNVyGpnGnS7xckbqn6CVQ/7EUQ0TcYt +3Tz2lT6/WD8bfIUB0ZlSBmeH2whKla/HHhQ4GZptmECQQDRRMk55A3bfPY7z1jh bYH6aQyw6F+lRObsxEEc/B8yUHXP9tDuSKnQTXtkRjZy4VcK4w4zfqOFEBJDPjgH dFOhAkAkqK3Xrvibn33XEnd22pPRnD2iVShdf0rLvg7QFxfp1yefuX5w4ZPRANSn iTs2YU1H6RGozucvicyEeVKVRLFhAkEAo3ql7DiQ7r8fKLghSfGfUXzRMj5Fwbki 4SGrcDYxNMAQWQcKTqurJRPyafJDxNjug42+4VFz8pYMfkVTxdcFIQJAOdrNSd/1 obXzN9qUFHAx3LsJ5DPDM8kD00UZ7uQFkuZSmj9kPCmNW/0qMXfmC8LnXvaxDOzl 2gjd/1/m1a9IJA== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app05.phx2.fedoraproject.org.crt0000644000175000017500000001002512231547317031466 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 24 (0x18) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:53 2012 GMT Not After : Jul 13 21:18:53 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=bodhi-app05.phx2.fedoraproject.org/name=bodhi-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c8:42:bf:54:60:1b:06:3c:67:c9:80:0f:91:11: 5d:e9:71:bc:c2:50:c9:72:97:17:7b:3c:74:01:d3: c5:bd:d2:a5:0e:29:74:93:40:99:3e:2c:a9:0c:11: 89:4e:27:96:0e:38:3e:d1:b8:d3:ba:b8:30:8b:4c: 46:db:c3:85:43:5f:a9:2e:ce:37:28:96:72:89:e9: 53:1c:d9:42:71:6e:c5:86:be:9d:6f:56:8c:42:46: 56:cd:d5:38:c9:b7:5a:d5:9b:ee:67:04:b3:39:a0: fe:14:e1:f3:5b:d5:47:74:49:03:c4:f1:42:54:ff: 8d:12:a2:bf:3b:e9:26:51:5f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E1:B5:55:CD:B1:4D:4F:E3:BC:BA:A7:7F:57:9C:D3:4E:5B:01:51:DA X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption a1:49:36:a4:c7:27:6b:11:3d:e3:a0:b6:d1:d9:4b:fd:3e:a6: 09:e6:24:7b:18:fa:7b:ec:7a:e6:ff:bb:5f:bc:1a:62:bf:d1: 80:07:39:32:15:47:2e:ca:2a:a8:58:47:56:24:07:79:24:6b: 54:9e:ed:80:78:f5:c6:17:ea:0f:91:78:c2:2f:ed:99:3e:f9: f3:af:c7:ea:87:6a:87:ad:cf:a0:e4:71:67:3f:17:56:9b:9b: c6:4f:25:6e:21:23:80:e0:7a:7b:69:fa:c8:5b:7a:51:1f:31: 70:13:b4:c3:1b:51:37:9a:e7:b6:9e:f8:2a:71:fd:11:7e:fd: ff:21 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBGDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUzWhcNMjIwNzEzMjExODUzWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJib2RoaS1hcHAw NS5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJib2RoaS1hcHAwNS5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyEK/VGAb BjxnyYAPkRFd6XG8wlDJcpcXezx0AdPFvdKlDil0k0CZPiypDBGJTieWDjg+0bjT urgwi0xG28OFQ1+pLs43KJZyielTHNlCcW7Fhr6db1aMQkZWzdU4ybda1ZvuZwSz OaD+FOHzW9VHdEkDxPFCVP+NEqK/O+kmUV8CAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQU4bVVzbFNT+O8uqd/V5zTTlsBUdowgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAKFJNqTHJ2sRPeOgttHZS/0+pgnmJHsY+nvseub/u1+8GmK/ 0YAHOTIVRy7KKqhYR1YkB3kka1Se7YB49cYX6g+ReMIv7Zk++fOvx+qHaoetz6Dk cWc/F1abm8ZPJW4hI4Dgentp+shbelEfMXATtMMbUTea57ae+Cpx/RF+/f8h -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app05.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031474 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMiYm9kaGktYXBwMDUucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMiYm9kaGktYXBwMDUucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAMhCv1RgGwY8Z8mAD5ERXelxvMJQyXKXF3s8dAHT xb3SpQ4pdJNAmT4sqQwRiU4nlg44PtG407q4MItMRtvDhUNfqS7ONyiWconpUxzZ QnFuxYa+nW9WjEJGVs3VOMm3WtWb7mcEszmg/hTh81vVR3RJA8TxQlT/jRKivzvp JlFfAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQC7sseakG5E1FYsTy+5mlEFYA4R q7V9jB5GzpNtJFXD1uC6UNCzarAGFm+9LI0Hrclsthx+O48eg9PPZrfQuzZPJAV3 ARuID3liw9qHRU+X7c/ummx7FcL5NklIueOK7eQMV6u8dWbyelGwqaO1M+xm80tr KZkYsnGSDTj7N+FZUA== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/22.pem0000644000175000017500000001005212231547317023376 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 34 (0x22) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app06.phx2.fedoraproject.org/name=mediawiki-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ec:69:05:d7:8f:bd:b2:c6:dc:dd:9c:8e:28:af: 24:f3:29:58:eb:99:a9:ca:f0:c2:be:6d:96:ea:31: 9b:49:ed:39:5f:e6:37:1f:2c:a3:50:7d:3d:e0:76: 91:00:e7:5c:a5:30:9e:e5:ac:47:48:63:0d:d9:b0: a1:f2:e4:bc:9c:14:7a:4f:0f:3f:9b:c1:17:10:6c: 84:78:c8:ce:70:13:30:03:cf:3e:62:b1:77:f6:de: e1:bb:7f:1f:86:49:5f:35:99:e9:43:b8:aa:b7:2b: 09:72:09:fc:9b:ad:ff:cd:ea:f3:75:b2:fb:82:f2: 1a:17:af:18:f2:04:8a:da:bb Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 15:10:CE:7A:4D:16:2F:86:92:63:BD:68:F3:48:1E:B8:88:2B:2D:66 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 9e:b8:6c:c7:b2:49:c1:3f:c6:72:e0:0e:9f:02:0f:36:9e:31: 88:db:fd:0e:07:b9:56:00:31:1e:50:90:ca:2f:25:73:96:a2: 8b:d0:f0:b0:7f:28:97:39:15:ee:95:0c:dc:53:7c:0e:e4:28: ce:4e:3a:9c:1b:17:56:6c:e1:a2:bb:12:fa:4c:fd:24:c3:19: 20:a3:ee:ac:3c:45:a2:dd:64:2f:b8:59:73:0e:ec:65:b0:83: 86:f3:de:1c:c6:4b:1f:3b:20:80:c6:5e:63:84:bf:69:15:29: 4c:46:f6:d4:8f:17:d6:a1:e3:68:aa:32:8d:56:34:06:ef:a8: 2f:6c -----BEGIN CERTIFICATE----- MIIEUTCCA7qgAwIBAgIBIjANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB4DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS8wLQYDVQQDEyZtZWRpYXdpa2kt YXBwMDYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEvMC0GA1UEKRMmbWVkaWF3aWtp LWFwcDA2LnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2Fk bWluQGZlZG9yYXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDsaQXXj72yxtzdnI4oryTzKVjrmanK8MK+bZbqMZtJ7Tlf5jcfLKNQfT3gdpEA 51ylMJ7lrEdIYw3ZsKHy5LycFHpPDz+bwRcQbIR4yM5wEzADzz5isXf23uG7fx+G SV81melDuKq3KwlyCfybrf/N6vN1svuC8hoXrxjyBIrauwIDAQABo4IBVzCCAVMw CQYDVR0TBAIwADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENl cnRpZmljYXRlMB0GA1UdDgQWBBQVEM56TRYvhpJjvWjzSB64iCstZjCB1QYDVR0j BIHNMIHKgBQAmKXV58RVDoSjZ/5mShbgBBXdIaGBpqSBozCBoDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzAN BgNVBCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVj dC5vcmeCCQCO6yjYqROdfDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMC B4AwDQYJKoZIhvcNAQEFBQADgYEAnrhsx7JJwT/GcuAOnwIPNp4xiNv9Dge5VgAx HlCQyi8lc5aii9DwsH8olzkV7pUM3FN8DuQozk46nBsXVmzhorsS+kz9JMMZIKPu rDxFot1kL7hZcw7sZbCDhvPeHMZLHzsggMZeY4S/aRUpTEb21I8X1qHjaKoyjVY0 Bu+oL2w= -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/bodhi-app06.phx2.fedoraproject.org.csr0000644000175000017500000000144612231547317031475 0ustar threebeanthreebean00000000000000-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgdgxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOQzEQMA4GA1UE BxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2plY3QxDzANBgNVBAsTBmZl ZG1zZzErMCkGA1UEAxMiYm9kaGktYXBwMDYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9y ZzErMCkGA1UEKRMiYm9kaGktYXBwMDYucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEm MCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBALX8mtoIBCeeyBHz+6Agu0EqkeKmSPcnq9j4oc2L s9Ydzo3Tfp1xT2XOe8GwSYozh1jHGylcLQ7S+516QZCZFac6929keql15ycz+UIw mcVkx+OeZdL4+jO2cTlkuSvhPlFxN+qzpcElQdyNQcBP+AcMkIrUh2PrRfaiXOV4 DFmrAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQCJ1dyXP+wIJyNSzS9YYouCyS6N H/xDN4kGx1O4IbBYi18swaESEMEifF4EE/YM7HaNSU9Llh3ayYz/kEBNc0CEW7L/ FXsLrqdktSmRhMZ6o8zKzV5eQjV3qb5EOwFKG1YrVt/JVkzm38mAFUp6pJmNb67P 8QtinJAmLtmNepBXpg== -----END CERTIFICATE REQUEST----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/index.txt0000644000175000017500000002117512231547317024330 0ustar threebeanthreebean00000000000000V 220713211852Z 01 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org R 220713211852Z 120715211852Z 02 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=dummy-revoked/name=dummy-revoked/emailAddress=admin@fedoraproject.org V 220713211852Z 03 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app01.phx2.fedoraproject.org/name=shell-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 04 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app02.phx2.fedoraproject.org/name=shell-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 05 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app03.phx2.fedoraproject.org/name=shell-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 06 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app04.phx2.fedoraproject.org/name=shell-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 07 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app05.phx2.fedoraproject.org/name=shell-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 08 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app06.phx2.fedoraproject.org/name=shell-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 09 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app07.phx2.fedoraproject.org/name=shell-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0A unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app01.stg.phx2.fedoraproject.org/name=shell-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0B unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-app02.stg.phx2.fedoraproject.org/name=shell-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0C unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-fas01.phx2.fedoraproject.org/name=shell-fas01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0D unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-fas01.stg.phx2.fedoraproject.org/name=shell-fas01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0E unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-fas01.dev.phx2.fedoraproject.org/name=shell-fas01.dev.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211852Z 0F unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-packages01.phx2.fedoraproject.org/name=shell-packages01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 10 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-packages02.phx2.fedoraproject.org/name=shell-packages02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 11 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-packages01.stg.phx2.fedoraproject.org/name=shell-packages01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 12 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-pkgs01.phx2.fedoraproject.org/name=shell-pkgs01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 13 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=shell-pkgs01.stg.phx2.fedoraproject.org/name=shell-pkgs01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 14 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app01.phx2.fedoraproject.org/name=bodhi-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 15 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app02.phx2.fedoraproject.org/name=bodhi-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 16 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app03.phx2.fedoraproject.org/name=bodhi-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 17 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app04.phx2.fedoraproject.org/name=bodhi-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 18 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app05.phx2.fedoraproject.org/name=bodhi-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 19 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app06.phx2.fedoraproject.org/name=bodhi-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1A unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app07.phx2.fedoraproject.org/name=bodhi-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1B unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app01.stg.phx2.fedoraproject.org/name=bodhi-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1C unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=bodhi-app02.stg.phx2.fedoraproject.org/name=bodhi-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1D unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app01.phx2.fedoraproject.org/name=mediawiki-app01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1E unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app02.phx2.fedoraproject.org/name=mediawiki-app02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211853Z 1F unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app03.phx2.fedoraproject.org/name=mediawiki-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 20 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app04.phx2.fedoraproject.org/name=mediawiki-app04.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 21 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app05.phx2.fedoraproject.org/name=mediawiki-app05.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 22 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app06.phx2.fedoraproject.org/name=mediawiki-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 23 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app07.phx2.fedoraproject.org/name=mediawiki-app07.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 24 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app01.stg.phx2.fedoraproject.org/name=mediawiki-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 25 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=mediawiki-app02.stg.phx2.fedoraproject.org/name=mediawiki-app02.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 26 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fas-fas01.phx2.fedoraproject.org/name=fas-fas01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 27 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fas-fas01.stg.phx2.fedoraproject.org/name=fas-fas01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 28 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fas-fas01.dev.phx2.fedoraproject.org/name=fas-fas01.dev.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 29 unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedoratagger-packages01.phx2.fedoraproject.org/name=fedoratagger-packages01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 2A unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedoratagger-packages02.phx2.fedoraproject.org/name=fedoratagger-packages02.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 2B unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedoratagger-packages01.stg.phx2.fedoraproject.org/name=fedoratagger-packages01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 2C unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=scm-pkgs01.phx2.fedoraproject.org/name=scm-pkgs01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org V 220713211854Z 2D unknown /C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=scm-pkgs01.stg.phx2.fedoraproject.org/name=scm-pkgs01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.dev.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031721 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJqJN0lcNf3xvz8w m6DVDjm2G9cZOXkRsSbTTpvizqQQxDb9E9n16IesxJZmzMArTpTBZB1BZOs+SEfY IDL1a/d1FfuaKxkgeeo2y/4EzsPdj7tJrgSB+QiKGqB4Tr2DUn1EKHI8uqJ3KL7x 5ocz/ITx8JWfAmvxsTDB94p7GLq3AgMBAAECgYA8jafsRwWhDCk0SYex7co1MvaV wnySxCv2WrZivuzZvPgl0+UDcyg6gahGhuGUK2QPRfhEvmsdArqv7DAxx5kWMhcD 8e0LUTr/ay1XFEmgUr8it0OvExPUSqTh/wPdKn4MaT9UOFgE5/eAjRUzLVZrZGpH IeOd5EpkqihAZopVgQJBAMmbwEy8ULAWUEeTpsit/fA/2Ic7zWoLVSlEm/JJIk4U rPrxgumUH9o21htVV7PtZjAO5bs8RpKJEbA7u/kV7YMCQQDEOl7xEkyu2ckV2g2H Z91o7mA5NgUaIfGZXhsiRmboaM9qbvH1uFJxmKnKEZTq/Ss//aTsHtS+nZWxbOhb 8Uu9AkEAlrC07mY/RS6YeLeTDSKH0QBXvtTjN6Ua1Uqz6UfivUvU84h7Gk2d9UPR iwKiGBmUrM0lx2pJMZQERZ6QZKCQMwJAdNmVg9Sz2UNTHTIV8FYHYN7iae8jJqaj 6gJCAi0ORsNzEBw09W/nmEGiifPiS/SqdpaiSQErCr9oTpld3LJZuQJAZbRuF31t EQIH5Cdx8XGuPRJQm8oCWWclaplvSM86wipVNg2m+wOu09YqkFNnRrnAnsPbXYhd JUiCnk991H94xw== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/shell-app03.phx2.fedoraproject.org.crt0000644000175000017500000001002312231547317031504 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 5 (0x5) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app03.phx2.fedoraproject.org/name=shell-app03.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:bc:36:a9:25:04:96:6a:eb:80:5e:e3:9d:a5:45: a0:56:88:51:4c:61:bf:89:7a:d8:50:8a:76:51:1f: bb:11:b9:df:93:e9:bc:63:a7:0a:eb:9a:de:70:f2: 97:13:74:6d:ac:fe:b7:a1:3d:23:a1:b7:e7:e4:01: 59:f4:6a:de:d1:58:aa:0f:c9:1b:39:17:5a:e4:c3: 28:e4:1a:d7:3e:60:0d:4d:aa:13:b8:52:3a:7d:d8: c9:31:95:45:aa:f4:13:c1:e1:f5:f6:30:91:87:25: 6d:84:69:88:c1:74:69:8b:5a:f2:6f:16:2c:bf:d5: be:4a:18:29:54:c5:a7:fb:83 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: C2:A3:12:85:02:0D:63:6B:D3:0D:51:EC:62:15:BE:C0:C3:BF:1A:16 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption c9:bf:d7:b4:95:1a:12:93:f5:d8:5b:c7:76:fa:b8:48:9d:51: 49:30:22:e7:28:2f:b3:75:de:af:90:02:d7:61:62:be:b0:26: 15:54:a1:1f:41:ee:e2:b0:e5:f5:ba:18:bb:eb:e1:d6:c6:c1: 48:b0:b5:7c:9c:e6:72:91:c6:81:48:91:06:e0:c7:61:e9:15: a1:a7:7b:23:31:7c:4c:12:4c:31:3c:6a:01:ec:78:f7:db:f8: b6:d6:31:b6:d5:92:23:e1:11:fc:12:18:0e:ae:fb:3a:b8:c1: 56:c6:51:5a:54:35:85:b8:84:b7:93:c7:95:fb:44:a3:bf:0f: f2:01 -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBBTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw My5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwMy5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvDapJQSW auuAXuOdpUWgVohRTGG/iXrYUIp2UR+7Ebnfk+m8Y6cK65recPKXE3RtrP63oT0j obfn5AFZ9Gre0ViqD8kbORda5MMo5BrXPmANTaoTuFI6fdjJMZVFqvQTweH19jCR hyVthGmIwXRpi1rybxYsv9W+ShgpVMWn+4MCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUwqMShQINY2vTDVHsYhW+wMO/GhYwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAMm/17SVGhKT9dhbx3b6uEidUUkwIucoL7N13q+QAtdhYr6w JhVUoR9B7uKw5fW6GLvr4dbGwUiwtXyc5nKRxoFIkQbgx2HpFaGneyMxfEwSTDE8 agHsePfb+LbWMbbVkiPhEfwSGA6u+zq4wVbGUVpUNYW4hLeTx5X7RKO/D/IB -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/scm-pkgs01.stg.phx2.fedoraproject.org.crt0000644000175000017500000001004412231547317032140 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 45 (0x2d) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=scm-pkgs01.stg.phx2.fedoraproject.org/name=scm-pkgs01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:d0:8d:ba:8e:c2:2c:65:b6:80:f2:b9:48:b8:b9: a6:77:61:76:d4:bf:88:4b:6b:a3:a6:71:c1:fe:c7: 46:00:49:e7:1a:aa:65:10:86:2f:a0:42:82:22:4e: 85:28:b0:fe:fa:94:9d:28:b4:4b:16:80:54:5b:dd: de:c4:77:0c:eb:8e:ea:91:90:bd:22:ff:e7:e2:23: f4:3d:bd:04:de:3d:11:0e:9b:0c:e4:51:b1:d9:fc: 23:1c:ee:1f:0c:59:13:a0:24:0a:2a:c4:a2:80:a5: 03:e4:8c:a6:7a:82:56:4e:24:b1:b0:d1:9e:15:c6: 98:41:0d:4d:6f:f9:91:26:01 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: A8:F3:3D:35:FB:85:39:3F:80:8C:DB:E0:F0:71:99:17:AA:E3:BD:1C X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 92:1a:dc:04:eb:bb:cc:22:eb:a0:70:03:d8:71:84:a0:7f:2b: e2:85:2a:2a:ff:51:6e:3c:02:b9:e5:4e:79:b2:40:55:c8:f0: 00:32:01:59:04:ad:ec:d8:0f:a5:56:73:11:86:19:4e:37:ad: 11:3c:43:36:0b:1b:ad:b4:51:6d:49:e8:51:40:6b:a9:2e:b9: b9:c3:98:c5:99:bf:7a:e5:fd:8b:6f:9e:76:d4:82:40:10:e5: 79:08:67:f3:d2:df:3f:e3:9c:8a:c5:f5:7d:43:0c:26:7c:a8: d4:fe:bc:d9:50:84:5c:91:71:d2:af:c7:18:f7:a2:b4:9b:61: 81:2a -----BEGIN CERTIFICATE----- MIIETzCCA7igAwIBAgIBLTANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB3jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMS4wLAYDVQQDEyVzY20tcGtnczAx LnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMS4wLAYDVQQpEyVzY20tcGtnczAx LnN0Zy5waHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1p bkBmZWRvcmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA 0I26jsIsZbaA8rlIuLmmd2F21L+IS2ujpnHB/sdGAEnnGqplEIYvoEKCIk6FKLD+ +pSdKLRLFoBUW93exHcM647qkZC9Iv/n4iP0Pb0E3j0RDpsM5FGx2fwjHO4fDFkT oCQKKsSigKUD5IymeoJWTiSxsNGeFcaYQQ1Nb/mRJgECAwEAAaOCAVcwggFTMAkG A1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0 aWZpY2F0ZTAdBgNVHQ4EFgQUqPM9NfuFOT+AjNvg8HGZF6rjvRwwgdUGA1UdIwSB zTCByoAUAJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVT MQswCQYDVQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3Jh IFByb2plY3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYD VQQpEwZmZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qu b3JnggkAjuso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeA MA0GCSqGSIb3DQEBBQUAA4GBAJIa3ATru8wi66BwA9hxhKB/K+KFKir/UW48Arnl TnmyQFXI8AAyAVkErezYD6VWcxGGGU43rRE8QzYLG620UW1J6FFAa6kuubnDmMWZ v3rl/YtvnnbUgkAQ5XkIZ/PS3z/jnIrF9X1DDCZ8qNT+vNlQhFyRcdKvxxj3orSb YYEq -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/fas-fas01.stg.phx2.fedoraproject.org.key0000644000175000017500000000162412231547317031740 0ustar threebeanthreebean00000000000000-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAM/kRSoZacJJDely 8ek8HKfFNOea0q9B9N059o7eY2DmMv4zvcDH47rLbdW2rFBUjfwsFodowtHBkvG2 VQd3n9IyhszF03aOyLrlZ2nzmCo+flI5DSkTDoVTDzMbHzN/P+rmqwMYuP5eb8ct /wzdsFS7HKq7tS98GxZevASe/SsDAgMBAAECgYBez8ufbKGoIus+WdbsOScUeMMt EZYeqeUD9Ah3lgMa0UHWX0CeKEu7CEYaXspthHKQ3IaV0Phw82iR5kcXNb5kKtes ZfZ+RMemv73o3HciGZEuT3WQ9aHBhGV7j7+f5KciBcs6yHIISSBaDhOQIU/N8rmS 65RUtUQdaNqk/L/jsQJBAPpaN57+odxhZMxZzmgZivJrPDxyK3h2hidveDcrJXU8 LHjuYBAsqN2VmFZNBOVM5Z3/uUHOwiMT7323PYFLwhsCQQDUlNe0fT4woImfJmyC 2kEtvk9xqifcrOK1IHilhXL+IEs6zpwh/OXZK1om988BX6nHlAjOVPtkwUXKWLmW pAk5AkBem0U1okgMfgmXZ8CmejCV14xV01c2GKQttuQZBQcMvIaZ1Isc0aOmyOde hZB6DosfIAokIjwfAWOZgGuPts9NAkAh9h134kJbNmqGGHdheEjNbAf5Grv/j0cw tJ1RpD44xyP9oyBidaqqxThD3Xceuw++qLG3dPAsqovhxcbwgAhRAkEAsYWFSmZe mQ+yq3Eqhx3YMdwpqM3w9uZlcW4LsH2LTnruCUCTF9vu5EKRk/fjUzYREEfJNj8v +Y4vjH8jiHSvkA== -----END PRIVATE KEY----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/08.pem0000644000175000017500000001002312231547317023400 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 8 (0x8) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-app06.phx2.fedoraproject.org/name=shell-app06.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:ac:33:0a:e3:3c:da:cb:6a:12:c9:04:e0:31:61: 25:5f:d8:b2:69:7a:d9:ca:f9:b3:8e:cd:6f:b0:33: fa:dd:cb:ef:a6:3a:d2:60:69:2b:6a:04:e9:83:8e: 63:10:1f:81:f4:58:23:8f:7a:e4:c4:b9:12:d6:f2: 42:04:e3:72:0d:22:04:33:30:76:2d:f4:4c:f3:fc: 62:51:49:eb:87:29:d8:95:89:2f:ae:54:5d:a4:b1: 14:d7:8f:ef:66:df:97:d4:20:1b:26:5f:b8:e6:84: 49:b7:8f:b2:1f:b5:49:f8:ba:f8:ae:24:c5:e2:5a: e4:36:0f:b7:85:fa:bf:f5:e3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 72:6C:B1:91:AD:97:38:0A:9C:D2:4C:23:F1:04:BD:D7:DD:21:34:31 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption c7:4b:91:26:dc:d8:33:3c:f5:8b:bd:05:b4:7c:9a:8a:3b:b3: 74:ee:4e:fa:39:87:39:7e:0e:8f:f6:b9:c6:02:b3:81:2c:a4: 79:1b:9a:7a:31:9b:c9:df:80:16:9d:f6:21:86:01:6a:84:92: f9:48:9f:40:7b:0b:35:c2:6a:e4:5e:91:d1:63:33:7a:f8:02: 2f:56:19:57:40:7c:fd:96:2c:b8:80:a1:89:42:65:e8:c9:35: fc:04:67:60:7c:5d:e9:d1:02:75:6d:db:34:fe:c3:c7:70:88: 98:cc:66:61:7c:77:39:04:4e:f1:c7:b7:4f:2a:c4:30:60:f7: 2b:9a -----BEGIN CERTIFICATE----- MIIESTCCA7KgAwIBAgIBCDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB2DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMSswKQYDVQQDEyJzaGVsbC1hcHAw Ni5waHgyLmZlZG9yYXByb2plY3Qub3JnMSswKQYDVQQpEyJzaGVsbC1hcHAwNi5w aHgyLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArDMK4zza y2oSyQTgMWElX9iyaXrZyvmzjs1vsDP63cvvpjrSYGkragTpg45jEB+B9Fgjj3rk xLkS1vJCBONyDSIEMzB2LfRM8/xiUUnrhynYlYkvrlRdpLEU14/vZt+X1CAbJl+4 5oRJt4+yH7VJ+Lr4riTF4lrkNg+3hfq/9eMCAwEAAaOCAVcwggFTMAkGA1UdEwQC MAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0 ZTAdBgNVHQ4EFgQUcmyxka2XOAqc0kwj8QS9190hNDEwgdUGA1UdIwSBzTCByoAU AJil1efEVQ6Eo2f+ZkoW4AQV3SGhgaakgaMwgaAxCzAJBgNVBAYTAlVTMQswCQYD VQQIEwJOQzEQMA4GA1UEBxMHUmFsZWlnaDEXMBUGA1UEChMORmVkb3JhIFByb2pl Y3QxDzANBgNVBAsTBmZlZG1zZzEPMA0GA1UEAxMGZmVkbXNnMQ8wDQYDVQQpEwZm ZWRtc2cxJjAkBgkqhkiG9w0BCQEWF2FkbWluQGZlZG9yYXByb2plY3Qub3JnggkA juso2KkTnXwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeAMA0GCSqG SIb3DQEBBQUAA4GBAMdLkSbc2DM89Yu9BbR8moo7s3TuTvo5hzl+Do/2ucYCs4Es pHkbmnoxm8nfgBad9iGGAWqEkvlIn0B7CzXCauRekdFjM3r4Ai9WGVdAfP2WLLiA oYlCZejJNfwEZ2B8XenRAnVt2zT+w8dwiJjMZmF8dzkETvHHt08qxDBg9yua -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/0F.pem0000644000175000017500000001005712231547317023425 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 15 (0xf) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:52 2012 GMT Not After : Jul 13 21:18:52 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=shell-packages01.phx2.fedoraproject.org/name=shell-packages01.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:c1:08:27:90:ec:80:49:61:9d:6d:02:2a:bb:22: b1:4f:d6:2b:f3:cf:90:90:91:38:2b:59:a6:90:2f: 6a:41:82:4f:15:12:4e:15:fc:89:f7:a5:57:96:70: b8:e5:81:5f:da:8b:c7:aa:5b:b3:8c:61:be:e9:13: f7:43:f3:69:a2:09:1a:7d:72:25:c5:6f:28:be:b7: 29:1e:47:f9:8e:70:36:36:ca:0c:75:df:3e:7d:c1: ba:01:d1:76:cb:ee:b5:bf:c4:93:13:37:b1:79:ed: 89:e7:f8:f9:f5:53:93:68:ef:6c:ca:a5:6d:af:d7: c3:ca:a9:94:49:63:d6:a7:e1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: 4D:1F:87:3B:3A:69:9E:5B:4F:65:3A:EA:C4:77:90:F9:8A:C3:41:5B X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 7e:b5:e5:d2:05:62:4f:52:22:b4:d0:36:a2:c4:56:b3:7b:c4: 50:9b:92:95:00:1d:10:0d:1b:7b:8e:9e:d0:a9:46:dd:c2:f7: a1:a1:2b:09:f3:90:9b:bc:a9:3c:5e:00:36:42:6c:c3:59:a1: b8:6a:b2:24:00:40:57:69:de:bd:af:61:5f:d7:7d:cd:77:50: 50:c5:f1:43:75:5b:aa:af:13:86:ca:ba:64:f2:bf:0f:d5:b6: c8:6f:83:28:39:94:13:d6:56:85:2d:4d:df:dc:84:12:1d:aa: 30:14:39:e0:12:d9:3d:61:2e:22:1c:79:18:fa:4a:9e:17:0d: db:85 -----BEGIN CERTIFICATE----- MIIEUzCCA7ygAwIBAgIBDzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODUyWhcNMjIwNzEzMjExODUyWjCB4jELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTAwLgYDVQQDEydzaGVsbC1wYWNr YWdlczAxLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMDAuBgNVBCkTJ3NoZWxsLXBh Y2thZ2VzMDEucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3DQEJARYX YWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBAMEIJ5DsgElhnW0CKrsisU/WK/PPkJCROCtZppAvakGCTxUSThX8ifelV5Zw uOWBX9qLx6pbs4xhvukT90PzaaIJGn1yJcVvKL63KR5H+Y5wNjbKDHXfPn3BugHR dsvutb/EkxM3sXntief4+fVTk2jvbMqlba/Xw8qplElj1qfhAgMBAAGjggFXMIIB UzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5lcmF0ZWQg Q2VydGlmaWNhdGUwHQYDVR0OBBYEFE0fhzs6aZ5bT2U66sR3kPmKw0FbMIHVBgNV HSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQswCQYDVQQG EwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNVBAoTDkZl ZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZlZG1zZzEP MA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9q ZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQE AwIHgDANBgkqhkiG9w0BAQUFAAOBgQB+teXSBWJPUiK00DaixFaze8RQm5KVAB0Q DRt7jp7QqUbdwvehoSsJ85CbvKk8XgA2QmzDWaG4arIkAEBXad69r2Ff133Nd1BQ xfFDdVuqrxOGyrpk8r8P1bbIb4MoOZQT1laFLU3f3IQSHaowFDngEtk9YS4iHHkY +kqeFw3bhQ== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/keys/24.pem0000644000175000017500000001007612231547317023406 0ustar threebeanthreebean00000000000000Certificate: Data: Version: 3 (0x2) Serial Number: 36 (0x24) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org Validity Not Before: Jul 15 21:18:54 2012 GMT Not After : Jul 13 21:18:54 2022 GMT Subject: C=US, ST=NC, L=Raleigh, O=Fedora Project, OU=fedmsg, CN=mediawiki-app01.stg.phx2.fedoraproject.org/name=mediawiki-app01.stg.phx2.fedoraproject.org/emailAddress=admin@fedoraproject.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:af:f8:46:1b:09:86:56:1f:02:e4:e6:8f:0a:01: 0e:af:5c:d5:e2:9f:2b:96:b4:32:73:da:d5:3f:c8: 07:24:7b:5e:cc:b2:a6:43:24:eb:c8:b8:42:38:2c: a6:0b:32:c0:bc:ac:3d:f7:3a:e3:7c:56:52:c6:c6: a1:2d:b7:53:9e:d4:75:c7:63:21:56:20:fa:c6:46: 77:c7:e8:96:4a:d1:49:b6:89:14:d1:18:0e:af:19: 4c:5b:da:bd:f8:3b:80:be:e0:5b:81:14:da:cc:e6: c5:99:1d:42:a6:3b:0b:93:30:14:d2:6f:83:d8:99: a1:49:1e:7b:e6:ea:60:c8:29 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: Easy-RSA Generated Certificate X509v3 Subject Key Identifier: E1:66:08:F7:79:4A:8D:3A:85:0E:FD:04:C6:12:3C:44:91:D4:ED:91 X509v3 Authority Key Identifier: keyid:00:98:A5:D5:E7:C4:55:0E:84:A3:67:FE:66:4A:16:E0:04:15:DD:21 DirName:/C=US/ST=NC/L=Raleigh/O=Fedora Project/OU=fedmsg/CN=fedmsg/name=fedmsg/emailAddress=admin@fedoraproject.org serial:8E:EB:28:D8:A9:13:9D:7C X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: Digital Signature Signature Algorithm: sha1WithRSAEncryption 5e:95:9d:35:70:32:7b:25:01:3a:2d:36:3c:a4:86:5b:00:a5: c9:4a:ec:fb:9d:50:1d:22:02:1f:46:95:da:3f:97:3c:01:83: 41:b8:a0:2e:26:ee:7e:75:c9:39:9c:23:bf:ab:4e:a8:c9:5d: 40:be:e5:34:73:3c:e8:62:3c:bf:ea:a9:01:94:60:41:cc:45: e6:fa:eb:54:ca:f4:d0:0f:7c:02:a6:06:7d:16:77:8e:0e:7e: af:70:a1:2c:a4:32:9b:ab:b1:3c:2d:86:16:2b:bb:64:b9:2e: db:fe:32:24:75:2a:74:15:33:5d:0b:07:e3:0f:97:5d:a0:03: 58:4a -----BEGIN CERTIFICATE----- MIIEWTCCA8KgAwIBAgIBJDANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEg UHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNV BCkTBmZlZG1zZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5v cmcwHhcNMTIwNzE1MjExODU0WhcNMjIwNzEzMjExODU0WjCB6DELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAk5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRv cmEgUHJvamVjdDEPMA0GA1UECxMGZmVkbXNnMTMwMQYDVQQDEyptZWRpYXdpa2kt YXBwMDEuc3RnLnBoeDIuZmVkb3JhcHJvamVjdC5vcmcxMzAxBgNVBCkTKm1lZGlh d2lraS1hcHAwMS5zdGcucGh4Mi5mZWRvcmFwcm9qZWN0Lm9yZzEmMCQGCSqGSIb3 DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBAK/4RhsJhlYfAuTmjwoBDq9c1eKfK5a0MnPa1T/IByR7XsyypkMk 68i4QjgspgsywLysPfc643xWUsbGoS23U57UdcdjIVYg+sZGd8folkrRSbaJFNEY Dq8ZTFvavfg7gL7gW4EU2szmxZkdQqY7C5MwFNJvg9iZoUkee+bqYMgpAgMBAAGj ggFXMIIBUzAJBgNVHRMEAjAAMC0GCWCGSAGG+EIBDQQgFh5FYXN5LVJTQSBHZW5l cmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOFmCPd5So06hQ79BMYSPESR1O2R MIHVBgNVHSMEgc0wgcqAFACYpdXnxFUOhKNn/mZKFuAEFd0hoYGmpIGjMIGgMQsw CQYDVQQGEwJVUzELMAkGA1UECBMCTkMxEDAOBgNVBAcTB1JhbGVpZ2gxFzAVBgNV BAoTDkZlZG9yYSBQcm9qZWN0MQ8wDQYDVQQLEwZmZWRtc2cxDzANBgNVBAMTBmZl ZG1zZzEPMA0GA1UEKRMGZmVkbXNnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkBmZWRv cmFwcm9qZWN0Lm9yZ4IJAI7rKNipE518MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsG A1UdDwQEAwIHgDANBgkqhkiG9w0BAQUFAAOBgQBelZ01cDJ7JQE6LTY8pIZbAKXJ Suz7nVAdIgIfRpXaP5c8AYNBuKAuJu5+dck5nCO/q06oyV1AvuU0czzoYjy/6qkB lGBBzEXm+utUyvTQD3wCpgZ9FneODn6vcKEspDKbq7E8LYYWK7tkuS7b/jIkdSp0 FTNdCwfjD5ddoANYSg== -----END CERTIFICATE----- fedmsg-0.9.3/fedmsg/tests/test_certs/README0000644000175000017500000000105412231547317022357 0ustar threebeanthreebean00000000000000To generate new certs, simply run "./rebuild-all-fedmsg-certs" ---- The scripts in this folder are a modification of EASY-RSA Version 2.0-rc1 This is a small RSA key management package, based on the openssl command line tool, that can be found in the easy-rsa subdirectory of the OpenVPN distribution. While this tool is primary concerned with key management for the SSL VPN application space, it can also be used for building web certificates. These are reference notes. For step-by-step instructions, see the HOWTO: http://openvpn.net/howto.html fedmsg-0.9.3/fedmsg/tests/test_certs/rebuild-all-fedmsg-certs0000755000175000017500000000531612231547317026207 0ustar threebeanthreebean00000000000000#!/bin/bash -e source ./vars ./clean-all ./build-ca ./build-key-server server # Have one dummy cert created and then revoked so we have a CRL to serve up. ./build-and-sign-key dummy-revoked ./revoke-full dummy-revoked ./build-and-sign-key shell-app01.phx2.fedoraproject.org ./build-and-sign-key shell-app02.phx2.fedoraproject.org ./build-and-sign-key shell-app03.phx2.fedoraproject.org ./build-and-sign-key shell-app04.phx2.fedoraproject.org ./build-and-sign-key shell-app05.phx2.fedoraproject.org ./build-and-sign-key shell-app06.phx2.fedoraproject.org ./build-and-sign-key shell-app07.phx2.fedoraproject.org ./build-and-sign-key shell-app01.stg.phx2.fedoraproject.org ./build-and-sign-key shell-app02.stg.phx2.fedoraproject.org ./build-and-sign-key shell-fas01.phx2.fedoraproject.org ./build-and-sign-key shell-fas01.stg.phx2.fedoraproject.org ./build-and-sign-key shell-fas01.dev.phx2.fedoraproject.org ./build-and-sign-key shell-packages01.phx2.fedoraproject.org ./build-and-sign-key shell-packages02.phx2.fedoraproject.org ./build-and-sign-key shell-packages01.stg.phx2.fedoraproject.org ./build-and-sign-key shell-pkgs01.phx2.fedoraproject.org ./build-and-sign-key shell-pkgs01.stg.phx2.fedoraproject.org ./build-and-sign-key bodhi-app01.phx2.fedoraproject.org ./build-and-sign-key bodhi-app02.phx2.fedoraproject.org ./build-and-sign-key bodhi-app03.phx2.fedoraproject.org ./build-and-sign-key bodhi-app04.phx2.fedoraproject.org ./build-and-sign-key bodhi-app05.phx2.fedoraproject.org ./build-and-sign-key bodhi-app06.phx2.fedoraproject.org ./build-and-sign-key bodhi-app07.phx2.fedoraproject.org ./build-and-sign-key bodhi-app01.stg.phx2.fedoraproject.org ./build-and-sign-key bodhi-app02.stg.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app01.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app02.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app03.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app04.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app05.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app06.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app07.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app01.stg.phx2.fedoraproject.org ./build-and-sign-key mediawiki-app02.stg.phx2.fedoraproject.org ./build-and-sign-key fas-fas01.phx2.fedoraproject.org ./build-and-sign-key fas-fas01.stg.phx2.fedoraproject.org ./build-and-sign-key fas-fas01.dev.phx2.fedoraproject.org ./build-and-sign-key fedoratagger-packages01.phx2.fedoraproject.org ./build-and-sign-key fedoratagger-packages02.phx2.fedoraproject.org ./build-and-sign-key fedoratagger-packages01.stg.phx2.fedoraproject.org ./build-and-sign-key scm-pkgs01.phx2.fedoraproject.org ./build-and-sign-key scm-pkgs01.stg.phx2.fedoraproject.org fedmsg-0.9.3/fedmsg/tests/test_certs/pkitool0000755000175000017500000003060312231547317023110 0ustar threebeanthreebean00000000000000#!/bin/sh # OpenVPN -- An application to securely tunnel IP networks # over a single TCP/UDP port, with support for SSL/TLS-based # session authentication and key exchange, # packet encryption, packet authentication, and # packet compression. # # Copyright (C) 2002-2010 OpenVPN Technologies, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 # as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING included with this # distribution); if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # pkitool is a front-end for the openssl tool. # Calling scripts can set the certificate organizational # unit with the KEY_OU environmental variable. # Calling scripts can also set the KEY_NAME environmental # variable to set the "name" X509 subject field. PROGNAME=pkitool VERSION=2.0 DEBUG=0 die() { local m="$1" echo "$m" >&2 exit 1 } need_vars() { echo ' Please edit the vars script to reflect your configuration,' echo ' then source it with "source ./vars".' echo ' Next, to start with a fresh PKI configuration and to delete any' echo ' previous certificates and keys, run "./clean-all".' echo " Finally, you can run this tool ($PROGNAME) to build certificates/keys." } usage() { echo "$PROGNAME $VERSION" echo "Usage: $PROGNAME [options...] [common-name]" echo "Options:" echo " --batch : batch mode (default)" echo " --keysize : Set keysize" echo " size : size (default=1024)" echo " --interact : interactive mode" echo " --server : build server cert" echo " --initca : build root CA" echo " --inter : build intermediate CA" echo " --pass : encrypt private key with password" echo " --csr : only generate a CSR, do not sign" echo " --sign : sign an existing CSR" echo " --pkcs12 : generate a combined PKCS#12 file" echo " --pkcs11 : generate certificate on PKCS#11 token" echo " lib : PKCS#11 library" echo " slot : PKCS#11 slot" echo " id : PKCS#11 object id (hex string)" echo " label : PKCS#11 object label" echo "Standalone options:" echo " --pkcs11-slots : list PKCS#11 slots" echo " lib : PKCS#11 library" echo " --pkcs11-objects : list PKCS#11 token objects" echo " lib : PKCS#11 library" echo " slot : PKCS#11 slot" echo " --pkcs11-init : initialize PKCS#11 token DANGEROUS!!!" echo " lib : PKCS#11 library" echo " slot : PKCS#11 slot" echo " label : PKCS#11 token label" echo "Notes:" need_vars echo " In order to use PKCS#11 interface you must have opensc-0.10.0 or higher." echo "Generated files and corresponding OpenVPN directives:" echo '(Files will be placed in the $KEY_DIR directory, defined in ./vars)' echo " ca.crt -> root certificate (--ca)" echo " ca.key -> root key, keep secure (not directly used by OpenVPN)" echo " .crt files -> client/server certificates (--cert)" echo " .key files -> private keys, keep secure (--key)" echo " .csr files -> certificate signing request (not directly used by OpenVPN)" echo " dh1024.pem or dh2048.pem -> Diffie Hellman parameters (--dh)" echo "Examples:" echo " $PROGNAME --initca -> Build root certificate" echo " $PROGNAME --initca --pass -> Build root certificate with password-protected key" echo " $PROGNAME --server server1 -> Build \"server1\" certificate/key" echo " $PROGNAME client1 -> Build \"client1\" certificate/key" echo " $PROGNAME --pass client2 -> Build password-protected \"client2\" certificate/key" echo " $PROGNAME --pkcs12 client3 -> Build \"client3\" certificate/key in PKCS#12 format" echo " $PROGNAME --csr client4 -> Build \"client4\" CSR to be signed by another CA" echo " $PROGNAME --sign client4 -> Sign \"client4\" CSR" echo " $PROGNAME --inter interca -> Build an intermediate key-signing certificate/key" echo " Also see ./inherit-inter script." echo " $PROGNAME --pkcs11 /usr/lib/pkcs11/lib1 0 010203 \"client5 id\" client5" echo " -> Build \"client5\" certificate/key in PKCS#11 token" echo "Typical usage for initial PKI setup. Build myserver, client1, and client2 cert/keys." echo "Protect client2 key with a password. Build DH parms. Generated files in ./keys :" echo " [edit vars with your site-specific info]" echo " source ./vars" echo " ./clean-all" echo " ./build-dh -> takes a long time, consider backgrounding" echo " ./$PROGNAME --initca" echo " ./$PROGNAME --server myserver" echo " ./$PROGNAME client1" echo " ./$PROGNAME --pass client2" echo "Typical usage for adding client cert to existing PKI:" echo " source ./vars" echo " ./$PROGNAME client-new" } # Set tool defaults [ -n "$OPENSSL" ] || export OPENSSL="openssl" [ -n "$PKCS11TOOL" ] || export PKCS11TOOL="pkcs11-tool" [ -n "$GREP" ] || export GREP="grep" # Set defaults DO_REQ="1" REQ_EXT="" DO_CA="1" CA_EXT="" DO_P12="0" DO_P11="0" DO_ROOT="0" NODES_REQ="-nodes" NODES_P12="" BATCH="-batch" CA="ca" # must be set or errors of openssl.cnf PKCS11_MODULE_PATH="dummy" PKCS11_PIN="dummy" # Process options while [ $# -gt 0 ]; do case "$1" in --keysize ) KEY_SIZE=$2 shift;; --server ) REQ_EXT="$REQ_EXT -extensions server" CA_EXT="$CA_EXT -extensions server" ;; --batch ) BATCH="-batch" ;; --interact ) BATCH="" ;; --inter ) CA_EXT="$CA_EXT -extensions v3_ca" ;; --initca ) DO_ROOT="1" ;; --pass ) NODES_REQ="" ;; --csr ) DO_CA="0" ;; --sign ) DO_REQ="0" ;; --pkcs12 ) DO_P12="1" ;; --pkcs11 ) DO_P11="1" PKCS11_MODULE_PATH="$2" PKCS11_SLOT="$3" PKCS11_ID="$4" PKCS11_LABEL="$5" shift 4;; # standalone --pkcs11-init) PKCS11_MODULE_PATH="$2" PKCS11_SLOT="$3" PKCS11_LABEL="$4" if [ -z "$PKCS11_LABEL" ]; then die "Please specify library name, slot and label" fi $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --init-token --slot "$PKCS11_SLOT" \ --label "$PKCS11_LABEL" && $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --init-pin --slot "$PKCS11_SLOT" exit $?;; --pkcs11-slots) PKCS11_MODULE_PATH="$2" if [ -z "$PKCS11_MODULE_PATH" ]; then die "Please specify library name" fi $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --list-slots exit 0;; --pkcs11-objects) PKCS11_MODULE_PATH="$2" PKCS11_SLOT="$3" if [ -z "$PKCS11_SLOT" ]; then die "Please specify library name and slot" fi $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --list-objects --login --slot "$PKCS11_SLOT" exit 0;; --help|--usage) usage exit ;; --version) echo "$PROGNAME $VERSION" exit ;; # errors --* ) die "$PROGNAME: unknown option: $1" ;; * ) break ;; esac shift done if ! [ -z "$BATCH" ]; then if $OPENSSL version | grep 0.9.6 > /dev/null; then die "Batch mode is unsupported in openssl<0.9.7" fi fi if [ $DO_P12 -eq 1 -a $DO_P11 -eq 1 ]; then die "PKCS#11 and PKCS#12 cannot be specified together" fi if [ $DO_P11 -eq 1 ]; then if ! grep "^pkcs11.*=" "$KEY_CONFIG" > /dev/null; then die "Please edit $KEY_CONFIG and setup PKCS#11 engine" fi fi # If we are generating pkcs12, only encrypt the final step if [ $DO_P12 -eq 1 ]; then NODES_P12="$NODES_REQ" NODES_REQ="-nodes" fi if [ $DO_P11 -eq 1 ]; then if [ -z "$PKCS11_LABEL" ]; then die "PKCS#11 arguments incomplete" fi fi # If undefined, set default key expiration intervals if [ -z "$KEY_EXPIRE" ]; then KEY_EXPIRE=3650 fi if [ -z "$CA_EXPIRE" ]; then CA_EXPIRE=3650 fi # Set organizational unit to empty string if undefined if [ -z "$KEY_OU" ]; then KEY_OU="" fi # Set X509 Name string to empty string if undefined if [ -z "$KEY_NAME" ]; then KEY_NAME="" fi # Set KEY_CN, FN if [ $DO_ROOT -eq 1 ]; then if [ -z "$KEY_CN" ]; then if [ "$1" ]; then KEY_CN="$1" elif [ "$KEY_ORG" ]; then KEY_CN="$KEY_ORG CA" fi fi if [ $BATCH ] && [ "$KEY_CN" ]; then echo "Using CA Common Name:" "$KEY_CN" fi FN="$KEY_CN" elif [ $BATCH ] && [ "$KEY_CN" ]; then echo "Using Common Name:" "$KEY_CN" FN="$KEY_CN" if [ "$1" ]; then FN="$1" fi else if [ $# -ne 1 ]; then usage exit 1 else KEY_CN="$1" fi FN="$KEY_CN" fi export CA_EXPIRE KEY_EXPIRE KEY_OU KEY_NAME KEY_CN PKCS11_MODULE_PATH PKCS11_PIN # Show parameters (debugging) if [ $DEBUG -eq 1 ]; then echo DO_REQ $DO_REQ echo REQ_EXT $REQ_EXT echo DO_CA $DO_CA echo CA_EXT $CA_EXT echo NODES_REQ $NODES_REQ echo NODES_P12 $NODES_P12 echo DO_P12 $DO_P12 echo KEY_CN $KEY_CN echo BATCH $BATCH echo DO_ROOT $DO_ROOT echo KEY_EXPIRE $KEY_EXPIRE echo CA_EXPIRE $CA_EXPIRE echo KEY_OU $KEY_OU echo KEY_NAME $KEY_NAME echo DO_P11 $DO_P11 echo PKCS11_MODULE_PATH $PKCS11_MODULE_PATH echo PKCS11_SLOT $PKCS11_SLOT echo PKCS11_ID $PKCS11_ID echo PKCS11_LABEL $PKCS11_LABEL fi # Make sure ./vars was sourced beforehand if [ -d "$KEY_DIR" ] && [ "$KEY_CONFIG" ]; then cd "$KEY_DIR" # Make sure $KEY_CONFIG points to the correct version # of openssl.cnf if $GREP -i 'easy-rsa version 2\.[0-9]' "$KEY_CONFIG" >/dev/null; then : else echo "$PROGNAME: KEY_CONFIG (set by the ./vars script) is pointing to the wrong" echo "version of openssl.cnf: $KEY_CONFIG" echo "The correct version should have a comment that says: easy-rsa version 2.x"; exit 1; fi # Build root CA if [ $DO_ROOT -eq 1 ]; then $OPENSSL req $BATCH -days $CA_EXPIRE $NODES_REQ -new -newkey rsa:$KEY_SIZE -sha1 \ -x509 -keyout "$CA.key" -out "$CA.crt" -config "$KEY_CONFIG" && \ chmod 0600 "$CA.key" else # Make sure CA key/cert is available if [ $DO_CA -eq 1 ] || [ $DO_P12 -eq 1 ]; then if [ ! -r "$CA.crt" ] || [ ! -r "$CA.key" ]; then echo "$PROGNAME: Need a readable $CA.crt and $CA.key in $KEY_DIR" echo "Try $PROGNAME --initca to build a root certificate/key." exit 1 fi fi # Generate key for PKCS#11 token PKCS11_ARGS= if [ $DO_P11 -eq 1 ]; then stty -echo echo -n "User PIN: " read -r PKCS11_PIN stty echo export PKCS11_PIN echo "Generating key pair on PKCS#11 token..." $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --keypairgen \ --login --pin "$PKCS11_PIN" \ --key-type rsa:1024 \ --slot "$PKCS11_SLOT" --id "$PKCS11_ID" --label "$PKCS11_LABEL" || exit 1 PKCS11_ARGS="-engine pkcs11 -keyform engine -key $PKCS11_SLOT:$PKCS11_ID" fi # Build cert/key ( [ $DO_REQ -eq 0 ] || $OPENSSL req $BATCH -days $KEY_EXPIRE $NODES_REQ -new -newkey rsa:$KEY_SIZE \ -keyout "$FN.key" -out "$FN.csr" $REQ_EXT -config "$KEY_CONFIG" $PKCS11_ARGS ) && \ ( [ $DO_CA -eq 0 ] || $OPENSSL ca $BATCH -days $KEY_EXPIRE -out "$FN.crt" \ -in "$FN.csr" $CA_EXT -md sha1 -config "$KEY_CONFIG" ) && \ ( [ $DO_P12 -eq 0 ] || $OPENSSL pkcs12 -export -inkey "$FN.key" \ -in "$FN.crt" -certfile "$CA.crt" -out "$FN.p12" $NODES_P12 ) && \ ( [ $DO_CA -eq 0 -o $DO_P11 -eq 1 ] || chmod 0600 "$FN.key" ) && \ ( [ $DO_P12 -eq 0 ] || chmod 0600 "$FN.p12" ) # Load certificate into PKCS#11 token if [ $DO_P11 -eq 1 ]; then $OPENSSL x509 -in "$FN.crt" -inform PEM -out "$FN.crt.der" -outform DER && \ $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --write-object "$FN.crt.der" --type cert \ --login --pin "$PKCS11_PIN" \ --slot "$PKCS11_SLOT" --id "$PKCS11_ID" --label "$PKCS11_LABEL" [ -e "$FN.crt.der" ]; rm "$FN.crt.der" fi fi # Need definitions else need_vars fi fedmsg-0.9.3/fedmsg/tests/test_certs/build-key0000755000175000017500000000023012231547317023305 0ustar threebeanthreebean00000000000000#!/bin/sh # Make a certificate/private key pair using a locally generated # root certificate. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" $* fedmsg-0.9.3/fedmsg/tests/test_certs/revoke-full0000755000175000017500000000162612231547317023665 0ustar threebeanthreebean00000000000000#!/bin/sh # revoke a certificate, regenerate CRL, # and verify revocation CRL="crl.pem" RT="revoke-test.pem" if [ $# -ne 1 ]; then echo "usage: revoke-full "; exit 1 fi if [ "$KEY_DIR" ]; then cd "$KEY_DIR" rm -f "$RT" # set defaults export KEY_CN="" export KEY_OU="" export KEY_NAME="" # revoke key and generate a new CRL $OPENSSL ca -revoke "$1.crt" -config "$KEY_CONFIG" # generate a new CRL -- try to be compatible with # intermediate PKIs $OPENSSL ca -gencrl -out "$CRL" -config "$KEY_CONFIG" if [ -e export-ca.crt ]; then cat export-ca.crt "$CRL" >"$RT" else cat ca.crt "$CRL" >"$RT" fi # verify the revocation $OPENSSL verify -CAfile "$RT" -crl_check "$1.crt" else echo 'Please source the vars script first (i.e. "source ./vars")' echo 'Make sure you have edited it to reflect your configuration.' fi fedmsg-0.9.3/fedmsg/tests/test_certs/vars0000644000175000017500000000340112231547317022373 0ustar threebeanthreebean00000000000000# easy-rsa parameter settings # NOTE: If you installed from an RPM, # don't edit this file in place in # /usr/share/openvpn/easy-rsa -- # instead, you should copy the whole # easy-rsa directory to another location # (such as /etc/openvpn) so that your # edits will not be wiped out by a future # OpenVPN package upgrade. # This variable should point to # the top level of the easy-rsa # tree. export EASY_RSA="`pwd`" # # This variable should point to # the requested executables # export OPENSSL="openssl" export PKCS11TOOL="pkcs11-tool" export GREP="grep" # This variable should point to # the openssl.cnf file included # with easy-rsa. export KEY_CONFIG=$EASY_RSA/openssl-1.0.0.cnf # Edit this variable to point to # your soon-to-be-created key # directory. # # WARNING: clean-all will do # a rm -rf on this directory # so make sure you define # it correctly! export KEY_DIR="$EASY_RSA/keys" # Issue rm -rf warning echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR # PKCS11 fixes export PKCS11_MODULE_PATH="dummy" export PKCS11_PIN="dummy" # Increase this to 2048 if you # are paranoid. This will slow # down TLS negotiation performance # as well as the one-time DH parms # generation process. export KEY_SIZE=1024 # In how many days should the root CA key expire? export CA_EXPIRE=3650 # In how many days should certificates expire? export KEY_EXPIRE=3650 # These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="US" export KEY_PROVINCE="NC" export KEY_CITY="Raleigh" export KEY_ORG="Fedora Project" export KEY_EMAIL="admin@fedoraproject.org" export KEY_CN=fedmsg export KEY_NAME=fedmsg export KEY_OU=fedmsg export PKCS11_MODULE_PATH=changeme export PKCS11_PIN=1234 fedmsg-0.9.3/fedmsg/tests/test_certs/clean-all0000755000175000017500000000065412231547317023262 0ustar threebeanthreebean00000000000000#!/bin/sh # Initialize the $KEY_DIR directory. # Note that this script does a # rm -rf on $KEY_DIR so be careful! if [ "$KEY_DIR" ]; then rm -rf "$KEY_DIR" mkdir "$KEY_DIR" && \ chmod go-rwx "$KEY_DIR" && \ touch "$KEY_DIR/index.txt" && \ echo 01 >"$KEY_DIR/serial" else echo 'Please source the vars script first (i.e. "source ./vars")' echo 'Make sure you have edited it to reflect your configuration.' fi fedmsg-0.9.3/fedmsg/tests/test_certs/openssl-0.9.6.cnf0000644000175000017500000001713012231547317024324 0ustar threebeanthreebean00000000000000# For use with easy-rsa version 2.0 # # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. # # This definition stops the following lines choking if HOME isn't # defined. HOME = . RANDFILE = $ENV::HOME/.rnd # Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca' and 'req'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::KEY_DIR # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/ca.key # The private key RANDFILE = $dir/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext default_days = 3650 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # which md to use. preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_anything # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ req ] default_bits = $ENV::KEY_SIZE default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString. # utf8only: only UTF8Strings. # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings # so use this option with caution! string_mask = nombstr # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = $ENV::KEY_COUNTRY countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = $ENV::KEY_PROVINCE localityName = Locality Name (eg, city) localityName_default = $ENV::KEY_CITY 0.organizationName = Organization Name (eg, company) 0.organizationName_default = $ENV::KEY_ORG # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (eg, your name or your server\'s hostname) commonName_max = 64 emailAddress = Email Address emailAddress_default = $ENV::KEY_EMAIL emailAddress_max = 40 # JY -- added for batch mode organizationalUnitName_default = $ENV::KEY_OU commonName_default = $ENV::KEY_CN # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # Here are some examples of the usage of nsCertType. If it is omitted # the certificate can be used for anything *except* object signing. # This is OK for an SSL server. # nsCertType = server # For an object signing certificate this would be used. # nsCertType = objsign # For normal client use this is typical # nsCertType = client, email # and for everything including object signing: # nsCertType = client, email, objsign # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # This will be displayed in Netscape's comment listbox. nsComment = "Easy-RSA Generated Certificate" # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=clientAuth keyUsage = digitalSignature # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # Copy subject details # issuerAltName=issuer:copy #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName [ server ] # JY ADDED -- Make a cert with nsCertType set to "server" basicConstraints=CA:FALSE nsCertType = server nsComment = "Easy-RSA Generated Server Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=serverAuth keyUsage = digitalSignature, keyEncipherment [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # This is what PKIX recommends but some broken software chokes on critical # extensions. #basicConstraints = critical,CA:true # So we do this instead. basicConstraints = CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Some might want this also # nsCertType = sslCA, emailCA # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/0000755000175000017500000000000012371202100022256 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-key-pkcs120000755000175000017500000000037112231547317025214 0ustar threebeanthreebean00000000000000#!/bin/sh # Make a certificate/private key pair using a locally generated # root certificate and convert it to a PKCS #12 file including the # the CA certificate as well. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact --pkcs12 $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-key-server0000755000175000017500000000041412231547317025415 0ustar threebeanthreebean00000000000000#!/bin/sh # Make a certificate/private key pair using a locally generated # root certificate. # # Explicitly set nsCertType to server using the "server" # extension in the openssl.cnf file. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact --server $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/README0000644000175000017500000002212312231547317023157 0ustar threebeanthreebean00000000000000EASY-RSA Version 2.0-rc1 This is a small RSA key management package, based on the openssl command line tool, that can be found in the easy-rsa subdirectory of the OpenVPN distribution. While this tool is primary concerned with key management for the SSL VPN application space, it can also be used for building web certificates. These are reference notes. For step-by-step instructions, see the HOWTO: http://openvpn.net/howto.html This package is based on the ./pkitool script. Run ./pkitool without arguments for a detailed help message (which is also pasted below). Release Notes for easy-rsa-2.0 * Most functionality has been consolidated into the pkitool script. For compatibility, all previous scripts from 1.0 such as build-key and build-key-server are provided as stubs which call pkitool to do the real work. * pkitool has a --batch flag (enabled by default) which generates keys/certs without needing any interactive input. pkitool can still generate certs/keys using interactive prompting by using the --interact flag. * The inherit-inter script has been provided for creating a new PKI rooted on an intermediate certificate built within a higher-level PKI. See comments in the inherit-inter script for more info. * The openssl.cnf file has been modified. pkitool will not work with the openssl.cnf file included with previous easy-rsa releases. * The vars file has been modified -- the following extra variables have been added: EASY_RSA, CA_EXPIRE, KEY_EXPIRE. * The make-crl and revoke-crt scripts have been removed and are replaced by the revoke-full script. * The "Organizational Unit" X509 field can be set using the KEY_OU environmental variable before calling pkitool. * This release only affects the Linux/Unix version of easy-rsa. The Windows version (written to use the Windows shell) is unchanged. * Use the revoke-full script to revoke a certificate, and generate (or update) the crl.pem file in the keys directory (as set by the vars script). Then use "crl-verify crl.pem" in your OpenVPN server config file, so that OpenVPN can reject any connections coming from clients which present a revoked certificate. Usage for the script is: revoke-full Note this this procedure is primarily designed to revoke client certificates. You could theoretically use this method to revoke server certificates as well, but then you would need to propagate the crl.pem file to all clients as well, and have them include "crl-verify crl.pem" in their configuration files. * PKCS#11 support was added. * For those interested in using this tool to generate web certificates, A variant of the easy-rsa package that allows the creation of multi-domain certificates with subjectAltName can be obtained from here: http://www.bisente.com/proyectos/easy-rsa-subjectaltname/ INSTALL easy-rsa 1. Edit vars. 2. Set KEY_CONFIG to point to the correct openssl-.cnf file included in this distribution. 3. Set KEY_DIR to point to a directory which will contain all keys, certificates, etc. This directory need not exist, and if it does, it will be deleted with rm -rf, so BE CAREFUL how you set KEY_DIR. 4. (Optional) Edit other fields in vars per your site data. You may want to increase KEY_SIZE to 2048 if you are paranoid and don't mind slower key processing, but certainly 1024 is fine for testing purposes. KEY_SIZE must be compatible across both peers participating in a secure SSL/TLS connection. 5. (Optional) If you intend to use PKCS#11, install openssl >= 0.9.7, install the following components from www.opensc.org: - opensc >= 0.10.0 - engine_pkcs11 >= 0.1.3 Update the openssl.cnf to load the engine: - Uncomment pkcs11 under engine_section. - Validate path at dynamic_path under pkcs11_section. 6. . vars 7. ./clean-all 8. As you create certificates, keys, and certificate signing requests, understand that only .key files should be kept confidential. .crt and .csr files can be sent over insecure channels such as plaintext email. IMPORTANT To avoid a possible Man-in-the-Middle attack where an authorized client tries to connect to another client by impersonating the server, make sure to enforce some kind of server certificate verification by clients. There are currently four different ways of accomplishing this, listed in the order of preference: (1) Build your server certificates with specific key usage and extended key usage. The RFC3280 determine that the following attributes should be provided for TLS connections: Mode Key usage Extended key usage --------------------------------------------------------------------------- Client digitalSignature TLS Web Client Authentication keyAgreement digitalSignature, keyAgreement Server digitalSignature, keyEncipherment TLS Web Server Authentication digitalSignature, keyAgreement Now add the following line to your client configuration: remote-cert-tls server This will block clients from connecting to any server which lacks the required extension designation in its certificate, even if the certificate has been signed by the CA which is cited in the OpenVPN configuration file (--ca directive). (3) Use the --tls-remote directive on the client to accept/reject the server connection based on the common name of the server certificate. (3) Use a --tls-verify script or plugin to accept/reject the server connection based on a custom test of the server certificate's embedded X509 subject details. (4) Sign server certificates with one CA and client certificates with a different CA. The client config "ca" directive should reference the server-signing CA while the server config "ca" directive should reference the client-signing CA. NOTES Show certificate fields: openssl x509 -in cert.crt -text PKITOOL documentation pkitool 2.0 Usage: pkitool [options...] [common-name] Options: --batch : batch mode (default) --keysize : Set keysize size : size (default=1024) --interact : interactive mode --server : build server cert --initca : build root CA --inter : build intermediate CA --pass : encrypt private key with password --csr : only generate a CSR, do not sign --sign : sign an existing CSR --pkcs12 : generate a combined PKCS#12 file --pkcs11 : generate certificate on PKCS#11 token lib : PKCS#11 library slot : PKCS#11 slot id : PKCS#11 object id (hex string) label : PKCS#11 object label Standalone options: --pkcs11-slots : list PKCS#11 slots lib : PKCS#11 library --pkcs11-objects : list PKCS#11 token objects lib : PKCS#11 library slot : PKCS#11 slot --pkcs11-init : initialize PKCS#11 token DANGEROUS!!! lib : PKCS#11 library slot : PKCS#11 slot label : PKCS#11 token label Notes: Please edit the vars script to reflect your configuration, then source it with "source ./vars". Next, to start with a fresh PKI configuration and to delete any previous certificates and keys, run "./clean-all". Finally, you can run this tool (pkitool) to build certificates/keys. In order to use PKCS#11 interface you must have opensc-0.10.0 or higher. Generated files and corresponding OpenVPN directives: (Files will be placed in the $KEY_DIR directory, defined in ./vars) ca.crt -> root certificate (--ca) ca.key -> root key, keep secure (not directly used by OpenVPN) .crt files -> client/server certificates (--cert) .key files -> private keys, keep secure (--key) .csr files -> certificate signing request (not directly used by OpenVPN) dh1024.pem or dh2048.pem -> Diffie Hellman parameters (--dh) Examples: pkitool --initca -> Build root certificate pkitool --initca --pass -> Build root certificate with password-protected key pkitool --server server1 -> Build "server1" certificate/key pkitool client1 -> Build "client1" certificate/key pkitool --pass client2 -> Build password-protected "client2" certificate/key pkitool --pkcs12 client3 -> Build "client3" certificate/key in PKCS#12 format pkitool --csr client4 -> Build "client4" CSR to be signed by another CA pkitool --sign client4 -> Sign "client4" CSR pkitool --inter interca -> Build an intermediate key-signing certificate/key Also see ./inherit-inter script. pkitool --pkcs11 /usr/lib/pkcs11/lib1 0 010203 "client5 id" client5 -> Build "client5" certificate/key in PKCS#11 token Typical usage for initial PKI setup. Build myserver, client1, and client2 cert/keys. Protect client2 key with a password. Build DH parms. Generated files in ./keys : [edit vars with your site-specific info] source ./vars ./clean-all ./build-dh -> takes a long time, consider backgrounding ./pkitool --initca ./pkitool --server myserver ./pkitool client1 ./pkitool --pass client2 Typical usage for adding client cert to existing PKI: source ./vars ./pkitool client-new fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-inter0000755000175000017500000000027412231547317024446 0ustar threebeanthreebean00000000000000#!/bin/sh # Make an intermediate CA certificate/private key pair using a locally generated # root certificate. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact --inter $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/pkitool0000755000175000017500000003060312231547317023710 0ustar threebeanthreebean00000000000000#!/bin/sh # OpenVPN -- An application to securely tunnel IP networks # over a single TCP/UDP port, with support for SSL/TLS-based # session authentication and key exchange, # packet encryption, packet authentication, and # packet compression. # # Copyright (C) 2002-2010 OpenVPN Technologies, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 # as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING included with this # distribution); if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # pkitool is a front-end for the openssl tool. # Calling scripts can set the certificate organizational # unit with the KEY_OU environmental variable. # Calling scripts can also set the KEY_NAME environmental # variable to set the "name" X509 subject field. PROGNAME=pkitool VERSION=2.0 DEBUG=0 die() { local m="$1" echo "$m" >&2 exit 1 } need_vars() { echo ' Please edit the vars script to reflect your configuration,' echo ' then source it with "source ./vars".' echo ' Next, to start with a fresh PKI configuration and to delete any' echo ' previous certificates and keys, run "./clean-all".' echo " Finally, you can run this tool ($PROGNAME) to build certificates/keys." } usage() { echo "$PROGNAME $VERSION" echo "Usage: $PROGNAME [options...] [common-name]" echo "Options:" echo " --batch : batch mode (default)" echo " --keysize : Set keysize" echo " size : size (default=1024)" echo " --interact : interactive mode" echo " --server : build server cert" echo " --initca : build root CA" echo " --inter : build intermediate CA" echo " --pass : encrypt private key with password" echo " --csr : only generate a CSR, do not sign" echo " --sign : sign an existing CSR" echo " --pkcs12 : generate a combined PKCS#12 file" echo " --pkcs11 : generate certificate on PKCS#11 token" echo " lib : PKCS#11 library" echo " slot : PKCS#11 slot" echo " id : PKCS#11 object id (hex string)" echo " label : PKCS#11 object label" echo "Standalone options:" echo " --pkcs11-slots : list PKCS#11 slots" echo " lib : PKCS#11 library" echo " --pkcs11-objects : list PKCS#11 token objects" echo " lib : PKCS#11 library" echo " slot : PKCS#11 slot" echo " --pkcs11-init : initialize PKCS#11 token DANGEROUS!!!" echo " lib : PKCS#11 library" echo " slot : PKCS#11 slot" echo " label : PKCS#11 token label" echo "Notes:" need_vars echo " In order to use PKCS#11 interface you must have opensc-0.10.0 or higher." echo "Generated files and corresponding OpenVPN directives:" echo '(Files will be placed in the $KEY_DIR directory, defined in ./vars)' echo " ca.crt -> root certificate (--ca)" echo " ca.key -> root key, keep secure (not directly used by OpenVPN)" echo " .crt files -> client/server certificates (--cert)" echo " .key files -> private keys, keep secure (--key)" echo " .csr files -> certificate signing request (not directly used by OpenVPN)" echo " dh1024.pem or dh2048.pem -> Diffie Hellman parameters (--dh)" echo "Examples:" echo " $PROGNAME --initca -> Build root certificate" echo " $PROGNAME --initca --pass -> Build root certificate with password-protected key" echo " $PROGNAME --server server1 -> Build \"server1\" certificate/key" echo " $PROGNAME client1 -> Build \"client1\" certificate/key" echo " $PROGNAME --pass client2 -> Build password-protected \"client2\" certificate/key" echo " $PROGNAME --pkcs12 client3 -> Build \"client3\" certificate/key in PKCS#12 format" echo " $PROGNAME --csr client4 -> Build \"client4\" CSR to be signed by another CA" echo " $PROGNAME --sign client4 -> Sign \"client4\" CSR" echo " $PROGNAME --inter interca -> Build an intermediate key-signing certificate/key" echo " Also see ./inherit-inter script." echo " $PROGNAME --pkcs11 /usr/lib/pkcs11/lib1 0 010203 \"client5 id\" client5" echo " -> Build \"client5\" certificate/key in PKCS#11 token" echo "Typical usage for initial PKI setup. Build myserver, client1, and client2 cert/keys." echo "Protect client2 key with a password. Build DH parms. Generated files in ./keys :" echo " [edit vars with your site-specific info]" echo " source ./vars" echo " ./clean-all" echo " ./build-dh -> takes a long time, consider backgrounding" echo " ./$PROGNAME --initca" echo " ./$PROGNAME --server myserver" echo " ./$PROGNAME client1" echo " ./$PROGNAME --pass client2" echo "Typical usage for adding client cert to existing PKI:" echo " source ./vars" echo " ./$PROGNAME client-new" } # Set tool defaults [ -n "$OPENSSL" ] || export OPENSSL="openssl" [ -n "$PKCS11TOOL" ] || export PKCS11TOOL="pkcs11-tool" [ -n "$GREP" ] || export GREP="grep" # Set defaults DO_REQ="1" REQ_EXT="" DO_CA="1" CA_EXT="" DO_P12="0" DO_P11="0" DO_ROOT="0" NODES_REQ="-nodes" NODES_P12="" BATCH="-batch" CA="ca" # must be set or errors of openssl.cnf PKCS11_MODULE_PATH="dummy" PKCS11_PIN="dummy" # Process options while [ $# -gt 0 ]; do case "$1" in --keysize ) KEY_SIZE=$2 shift;; --server ) REQ_EXT="$REQ_EXT -extensions server" CA_EXT="$CA_EXT -extensions server" ;; --batch ) BATCH="-batch" ;; --interact ) BATCH="" ;; --inter ) CA_EXT="$CA_EXT -extensions v3_ca" ;; --initca ) DO_ROOT="1" ;; --pass ) NODES_REQ="" ;; --csr ) DO_CA="0" ;; --sign ) DO_REQ="0" ;; --pkcs12 ) DO_P12="1" ;; --pkcs11 ) DO_P11="1" PKCS11_MODULE_PATH="$2" PKCS11_SLOT="$3" PKCS11_ID="$4" PKCS11_LABEL="$5" shift 4;; # standalone --pkcs11-init) PKCS11_MODULE_PATH="$2" PKCS11_SLOT="$3" PKCS11_LABEL="$4" if [ -z "$PKCS11_LABEL" ]; then die "Please specify library name, slot and label" fi $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --init-token --slot "$PKCS11_SLOT" \ --label "$PKCS11_LABEL" && $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --init-pin --slot "$PKCS11_SLOT" exit $?;; --pkcs11-slots) PKCS11_MODULE_PATH="$2" if [ -z "$PKCS11_MODULE_PATH" ]; then die "Please specify library name" fi $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --list-slots exit 0;; --pkcs11-objects) PKCS11_MODULE_PATH="$2" PKCS11_SLOT="$3" if [ -z "$PKCS11_SLOT" ]; then die "Please specify library name and slot" fi $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --list-objects --login --slot "$PKCS11_SLOT" exit 0;; --help|--usage) usage exit ;; --version) echo "$PROGNAME $VERSION" exit ;; # errors --* ) die "$PROGNAME: unknown option: $1" ;; * ) break ;; esac shift done if ! [ -z "$BATCH" ]; then if $OPENSSL version | grep 0.9.6 > /dev/null; then die "Batch mode is unsupported in openssl<0.9.7" fi fi if [ $DO_P12 -eq 1 -a $DO_P11 -eq 1 ]; then die "PKCS#11 and PKCS#12 cannot be specified together" fi if [ $DO_P11 -eq 1 ]; then if ! grep "^pkcs11.*=" "$KEY_CONFIG" > /dev/null; then die "Please edit $KEY_CONFIG and setup PKCS#11 engine" fi fi # If we are generating pkcs12, only encrypt the final step if [ $DO_P12 -eq 1 ]; then NODES_P12="$NODES_REQ" NODES_REQ="-nodes" fi if [ $DO_P11 -eq 1 ]; then if [ -z "$PKCS11_LABEL" ]; then die "PKCS#11 arguments incomplete" fi fi # If undefined, set default key expiration intervals if [ -z "$KEY_EXPIRE" ]; then KEY_EXPIRE=3650 fi if [ -z "$CA_EXPIRE" ]; then CA_EXPIRE=3650 fi # Set organizational unit to empty string if undefined if [ -z "$KEY_OU" ]; then KEY_OU="" fi # Set X509 Name string to empty string if undefined if [ -z "$KEY_NAME" ]; then KEY_NAME="" fi # Set KEY_CN, FN if [ $DO_ROOT -eq 1 ]; then if [ -z "$KEY_CN" ]; then if [ "$1" ]; then KEY_CN="$1" elif [ "$KEY_ORG" ]; then KEY_CN="$KEY_ORG CA" fi fi if [ $BATCH ] && [ "$KEY_CN" ]; then echo "Using CA Common Name:" "$KEY_CN" fi FN="$KEY_CN" elif [ $BATCH ] && [ "$KEY_CN" ]; then echo "Using Common Name:" "$KEY_CN" FN="$KEY_CN" if [ "$1" ]; then FN="$1" fi else if [ $# -ne 1 ]; then usage exit 1 else KEY_CN="$1" fi FN="$KEY_CN" fi export CA_EXPIRE KEY_EXPIRE KEY_OU KEY_NAME KEY_CN PKCS11_MODULE_PATH PKCS11_PIN # Show parameters (debugging) if [ $DEBUG -eq 1 ]; then echo DO_REQ $DO_REQ echo REQ_EXT $REQ_EXT echo DO_CA $DO_CA echo CA_EXT $CA_EXT echo NODES_REQ $NODES_REQ echo NODES_P12 $NODES_P12 echo DO_P12 $DO_P12 echo KEY_CN $KEY_CN echo BATCH $BATCH echo DO_ROOT $DO_ROOT echo KEY_EXPIRE $KEY_EXPIRE echo CA_EXPIRE $CA_EXPIRE echo KEY_OU $KEY_OU echo KEY_NAME $KEY_NAME echo DO_P11 $DO_P11 echo PKCS11_MODULE_PATH $PKCS11_MODULE_PATH echo PKCS11_SLOT $PKCS11_SLOT echo PKCS11_ID $PKCS11_ID echo PKCS11_LABEL $PKCS11_LABEL fi # Make sure ./vars was sourced beforehand if [ -d "$KEY_DIR" ] && [ "$KEY_CONFIG" ]; then cd "$KEY_DIR" # Make sure $KEY_CONFIG points to the correct version # of openssl.cnf if $GREP -i 'easy-rsa version 2\.[0-9]' "$KEY_CONFIG" >/dev/null; then : else echo "$PROGNAME: KEY_CONFIG (set by the ./vars script) is pointing to the wrong" echo "version of openssl.cnf: $KEY_CONFIG" echo "The correct version should have a comment that says: easy-rsa version 2.x"; exit 1; fi # Build root CA if [ $DO_ROOT -eq 1 ]; then $OPENSSL req $BATCH -days $CA_EXPIRE $NODES_REQ -new -newkey rsa:$KEY_SIZE -sha1 \ -x509 -keyout "$CA.key" -out "$CA.crt" -config "$KEY_CONFIG" && \ chmod 0600 "$CA.key" else # Make sure CA key/cert is available if [ $DO_CA -eq 1 ] || [ $DO_P12 -eq 1 ]; then if [ ! -r "$CA.crt" ] || [ ! -r "$CA.key" ]; then echo "$PROGNAME: Need a readable $CA.crt and $CA.key in $KEY_DIR" echo "Try $PROGNAME --initca to build a root certificate/key." exit 1 fi fi # Generate key for PKCS#11 token PKCS11_ARGS= if [ $DO_P11 -eq 1 ]; then stty -echo echo -n "User PIN: " read -r PKCS11_PIN stty echo export PKCS11_PIN echo "Generating key pair on PKCS#11 token..." $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --keypairgen \ --login --pin "$PKCS11_PIN" \ --key-type rsa:1024 \ --slot "$PKCS11_SLOT" --id "$PKCS11_ID" --label "$PKCS11_LABEL" || exit 1 PKCS11_ARGS="-engine pkcs11 -keyform engine -key $PKCS11_SLOT:$PKCS11_ID" fi # Build cert/key ( [ $DO_REQ -eq 0 ] || $OPENSSL req $BATCH -days $KEY_EXPIRE $NODES_REQ -new -newkey rsa:$KEY_SIZE \ -keyout "$FN.key" -out "$FN.csr" $REQ_EXT -config "$KEY_CONFIG" $PKCS11_ARGS ) && \ ( [ $DO_CA -eq 0 ] || $OPENSSL ca $BATCH -days $KEY_EXPIRE -out "$FN.crt" \ -in "$FN.csr" $CA_EXT -md sha1 -config "$KEY_CONFIG" ) && \ ( [ $DO_P12 -eq 0 ] || $OPENSSL pkcs12 -export -inkey "$FN.key" \ -in "$FN.crt" -certfile "$CA.crt" -out "$FN.p12" $NODES_P12 ) && \ ( [ $DO_CA -eq 0 -o $DO_P11 -eq 1 ] || chmod 0600 "$FN.key" ) && \ ( [ $DO_P12 -eq 0 ] || chmod 0600 "$FN.p12" ) # Load certificate into PKCS#11 token if [ $DO_P11 -eq 1 ]; then $OPENSSL x509 -in "$FN.crt" -inform PEM -out "$FN.crt.der" -outform DER && \ $PKCS11TOOL --module "$PKCS11_MODULE_PATH" --write-object "$FN.crt.der" --type cert \ --login --pin "$PKCS11_PIN" \ --slot "$PKCS11_SLOT" --id "$PKCS11_ID" --label "$PKCS11_LABEL" [ -e "$FN.crt.der" ]; rm "$FN.crt.der" fi fi # Need definitions else need_vars fi fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-key0000755000175000017500000000024312231547317024111 0ustar threebeanthreebean00000000000000#!/bin/sh # Make a certificate/private key pair using a locally generated # root certificate. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/file0000644000175000017500000000002412231547317023135 0ustar threebeanthreebean00000000000000./openssl-1.0.0.cnf fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/revoke-full0000755000175000017500000000162612231547317024465 0ustar threebeanthreebean00000000000000#!/bin/sh # revoke a certificate, regenerate CRL, # and verify revocation CRL="crl.pem" RT="revoke-test.pem" if [ $# -ne 1 ]; then echo "usage: revoke-full "; exit 1 fi if [ "$KEY_DIR" ]; then cd "$KEY_DIR" rm -f "$RT" # set defaults export KEY_CN="" export KEY_OU="" export KEY_NAME="" # revoke key and generate a new CRL $OPENSSL ca -revoke "$1.crt" -config "$KEY_CONFIG" # generate a new CRL -- try to be compatible with # intermediate PKIs $OPENSSL ca -gencrl -out "$CRL" -config "$KEY_CONFIG" if [ -e export-ca.crt ]; then cat export-ca.crt "$CRL" >"$RT" else cat ca.crt "$CRL" >"$RT" fi # verify the revocation $OPENSSL verify -CAfile "$RT" -crl_check "$1.crt" else echo 'Please source the vars script first (i.e. "source ./vars")' echo 'Make sure you have edited it to reflect your configuration.' fi fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-key-pass0000755000175000017500000000023512231547317025056 0ustar threebeanthreebean00000000000000#!/bin/sh # Similar to build-key, but protect the private key # with a password. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact --pass $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/vars0000644000175000017500000000346112231547317023201 0ustar threebeanthreebean00000000000000# easy-rsa parameter settings # NOTE: If you installed from an RPM, # don't edit this file in place in # /usr/share/openvpn/easy-rsa -- # instead, you should copy the whole # easy-rsa directory to another location # (such as /etc/openvpn) so that your # edits will not be wiped out by a future # OpenVPN package upgrade. # This variable should point to # the top level of the easy-rsa # tree. export EASY_RSA="`pwd`" # # This variable should point to # the requested executables # export OPENSSL="openssl" export PKCS11TOOL="pkcs11-tool" export GREP="grep" # This variable should point to # the openssl.cnf file included # with easy-rsa. export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA` # Edit this variable to point to # your soon-to-be-created key # directory. # # WARNING: clean-all will do # a rm -rf on this directory # so make sure you define # it correctly! export KEY_DIR="$EASY_RSA/keys" # Issue rm -rf warning echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR # PKCS11 fixes export PKCS11_MODULE_PATH="dummy" export PKCS11_PIN="dummy" # Increase this to 2048 if you # are paranoid. This will slow # down TLS negotiation performance # as well as the one-time DH parms # generation process. export KEY_SIZE=1024 # In how many days should the root CA key expire? export CA_EXPIRE=3650 # In how many days should certificates expire? export KEY_EXPIRE=3650 # These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="me@myhost.mydomain" export KEY_EMAIL=mail@host.domain export KEY_CN=changeme export KEY_NAME=changeme export KEY_OU=changeme export PKCS11_MODULE_PATH=changeme export PKCS11_PIN=1234 fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/clean-all0000755000175000017500000000065412231547317024062 0ustar threebeanthreebean00000000000000#!/bin/sh # Initialize the $KEY_DIR directory. # Note that this script does a # rm -rf on $KEY_DIR so be careful! if [ "$KEY_DIR" ]; then rm -rf "$KEY_DIR" mkdir "$KEY_DIR" && \ chmod go-rwx "$KEY_DIR" && \ touch "$KEY_DIR/index.txt" && \ echo 01 >"$KEY_DIR/serial" else echo 'Please source the vars script first (i.e. "source ./vars")' echo 'Make sure you have edited it to reflect your configuration.' fi fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/openssl-0.9.6.cnf0000644000175000017500000001713012231547317025124 0ustar threebeanthreebean00000000000000# For use with easy-rsa version 2.0 # # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. # # This definition stops the following lines choking if HOME isn't # defined. HOME = . RANDFILE = $ENV::HOME/.rnd # Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca' and 'req'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::KEY_DIR # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/ca.key # The private key RANDFILE = $dir/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext default_days = 3650 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # which md to use. preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_anything # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ req ] default_bits = $ENV::KEY_SIZE default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString. # utf8only: only UTF8Strings. # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings # so use this option with caution! string_mask = nombstr # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = $ENV::KEY_COUNTRY countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = $ENV::KEY_PROVINCE localityName = Locality Name (eg, city) localityName_default = $ENV::KEY_CITY 0.organizationName = Organization Name (eg, company) 0.organizationName_default = $ENV::KEY_ORG # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (eg, your name or your server\'s hostname) commonName_max = 64 emailAddress = Email Address emailAddress_default = $ENV::KEY_EMAIL emailAddress_max = 40 # JY -- added for batch mode organizationalUnitName_default = $ENV::KEY_OU commonName_default = $ENV::KEY_CN # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # Here are some examples of the usage of nsCertType. If it is omitted # the certificate can be used for anything *except* object signing. # This is OK for an SSL server. # nsCertType = server # For an object signing certificate this would be used. # nsCertType = objsign # For normal client use this is typical # nsCertType = client, email # and for everything including object signing: # nsCertType = client, email, objsign # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # This will be displayed in Netscape's comment listbox. nsComment = "Easy-RSA Generated Certificate" # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=clientAuth keyUsage = digitalSignature # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # Copy subject details # issuerAltName=issuer:copy #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName [ server ] # JY ADDED -- Make a cert with nsCertType set to "server" basicConstraints=CA:FALSE nsCertType = server nsComment = "Easy-RSA Generated Server Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=serverAuth keyUsage = digitalSignature, keyEncipherment [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # This is what PKIX recommends but some broken software chokes on critical # extensions. #basicConstraints = critical,CA:true # So we do this instead. basicConstraints = CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Some might want this also # nsCertType = sslCA, emailCA # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-req0000755000175000017500000000032512231547317024111 0ustar threebeanthreebean00000000000000#!/bin/sh # Build a certificate signing request and private key. Use this # when your root certificate and key is not available locally. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact --csr $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/whichopensslcnf0000755000175000017500000000112312231547317025417 0ustar threebeanthreebean00000000000000#!/bin/sh cnf="$1/openssl.cnf" if [ "$OPENSSL" ]; then if $OPENSSL version | grep 0.9.6 > /dev/null; then cnf="$1/openssl-0.9.6.cnf" elif $OPENSSL version | grep -E "1\.0\.([[:digit:]][[:alnum:]])" > /dev/null; then cnf="$1/openssl-1.0.0.cnf" else cnf="$1/openssl.cnf" fi fi echo $cnf if [ ! -r $cnf ]; then echo "**************************************************************" >&2 echo " No $cnf file could be found" >&2 echo " Further invocations will fail" >&2 echo "**************************************************************" >&2 fi exit 0 fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/openssl-1.0.0.cnf0000644000175000017500000002004012231547317025100 0ustar threebeanthreebean00000000000000# For use with easy-rsa version 2.0 and OpenSSL 1.0.0* # This definition stops the following lines choking if HOME isn't # defined. HOME = . RANDFILE = $ENV::HOME/.rnd openssl_conf = openssl_init [ openssl_init ] # Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids engines = engine_section # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca' and 'req'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::KEY_DIR # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/ca.key # The private key RANDFILE = $dir/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext default_days = 3650 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # use public key default MD preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_anything # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied name = optional emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied name = optional emailAddress = optional #################################################################### [ req ] default_bits = $ENV::KEY_SIZE default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation after 2004). # utf8only: only UTF8Strings (PKIX recommendation after 2004). # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. string_mask = nombstr # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = $ENV::KEY_COUNTRY countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = $ENV::KEY_PROVINCE localityName = Locality Name (eg, city) localityName_default = $ENV::KEY_CITY 0.organizationName = Organization Name (eg, company) 0.organizationName_default = $ENV::KEY_ORG # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (eg, your name or your server\'s hostname) commonName_max = 64 name = Name name_max = 64 emailAddress = Email Address emailAddress_default = $ENV::KEY_EMAIL emailAddress_max = 40 # JY -- added for batch mode organizationalUnitName_default = $ENV::KEY_OU commonName_default = $ENV::KEY_CN name_default = $ENV::KEY_NAME # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # Here are some examples of the usage of nsCertType. If it is omitted # the certificate can be used for anything *except* object signing. # This is OK for an SSL server. # nsCertType = server # For an object signing certificate this would be used. # nsCertType = objsign # For normal client use this is typical # nsCertType = client, email # and for everything including object signing: # nsCertType = client, email, objsign # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # This will be displayed in Netscape's comment listbox. nsComment = "Easy-RSA Generated Certificate" # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=clientAuth keyUsage = digitalSignature # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # Copy subject details # issuerAltName=issuer:copy #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName [ server ] # JY ADDED -- Make a cert with nsCertType set to "server" basicConstraints=CA:FALSE nsCertType = server nsComment = "Easy-RSA Generated Server Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=serverAuth keyUsage = digitalSignature, keyEncipherment [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # This is what PKIX recommends but some broken software chokes on critical # extensions. #basicConstraints = critical,CA:true # So we do this instead. basicConstraints = CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Some might want this also # nsCertType = sslCA, emailCA # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always [ engine_section ] # # If you are using PKCS#11 # Install engine_pkcs11 of opensc (www.opensc.org) # And uncomment the following # verify that dynamic_path points to the correct location # #pkcs11 = pkcs11_section [ pkcs11_section ] engine_id = pkcs11 dynamic_path = /usr/lib/engines/engine_pkcs11.so MODULE_PATH = $ENV::PKCS11_MODULE_PATH PIN = $ENV::PKCS11_PIN init = 0 fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-req-pass0000755000175000017500000000023612231547317025056 0ustar threebeanthreebean00000000000000#!/bin/sh # Like build-req, but protect your private key # with a password. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact --csr --pass $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-ca0000755000175000017500000000016712231547317023711 0ustar threebeanthreebean00000000000000#!/bin/sh # # Build a root certificate # export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact --initca $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/build-dh0000755000175000017500000000054012231547317023714 0ustar threebeanthreebean00000000000000#!/bin/sh # Build Diffie-Hellman parameters for the server side # of an SSL/TLS connection. if [ -d $KEY_DIR ] && [ $KEY_SIZE ]; then $OPENSSL dhparam -out ${KEY_DIR}/dh${KEY_SIZE}.pem ${KEY_SIZE} else echo 'Please source the vars script first (i.e. "source ./vars")' echo 'Make sure you have edited it to reflect your configuration.' fi fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/list-crl0000755000175000017500000000044712231547317023763 0ustar threebeanthreebean00000000000000#!/bin/sh # list revoked certificates CRL="${1:-crl.pem}" if [ "$KEY_DIR" ]; then cd "$KEY_DIR" && \ $OPENSSL crl -text -noout -in "$CRL" else echo 'Please source the vars script first (i.e. "source ./vars")' echo 'Make sure you have edited it to reflect your configuration.' fi fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/sign-req0000755000175000017500000000026212231547317023752 0ustar threebeanthreebean00000000000000#!/bin/sh # Sign a certificate signing request (a .csr file) # with a local root certificate and key. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --interact --sign $* fedmsg-0.9.3/fedmsg/tests/test_certs/tmp/inherit-inter0000755000175000017500000000266112231547317025013 0ustar threebeanthreebean00000000000000#!/bin/sh # Build a new PKI which is rooted on an intermediate certificate generated # by ./build-inter or ./pkitool --inter from a parent PKI. The new PKI should # have independent vars settings, and must use a different KEY_DIR directory # from the parent. This tool can be used to generate arbitrary depth # certificate chains. # # To build an intermediate CA, follow the same steps for a regular PKI but # replace ./build-key or ./pkitool --initca with this script. # The EXPORT_CA file will contain the CA certificate chain and should be # referenced by the OpenVPN "ca" directive in config files. The ca.crt file # will only contain the local intermediate CA -- it's needed by the easy-rsa # scripts but not by OpenVPN directly. EXPORT_CA="export-ca.crt" if [ $# -ne 2 ]; then echo "usage: $0 " echo "parent-key-dir: the KEY_DIR directory of the parent PKI" echo "common-name: the common name of the intermediate certificate in the parent PKI" exit 1; fi if [ "$KEY_DIR" ]; then cp "$1/$2.crt" "$KEY_DIR/ca.crt" cp "$1/$2.key" "$KEY_DIR/ca.key" if [ -e "$1/$EXPORT_CA" ]; then PARENT_CA="$1/$EXPORT_CA" else PARENT_CA="$1/ca.crt" fi cp "$PARENT_CA" "$KEY_DIR/$EXPORT_CA" cat "$KEY_DIR/ca.crt" >> "$KEY_DIR/$EXPORT_CA" else echo 'Please source the vars script first (i.e. "source ./vars")' echo 'Make sure you have edited it to reflect your configuration.' fi fedmsg-0.9.3/fedmsg/tests/test_certs/build-req0000755000175000017500000000031212231547317023305 0ustar threebeanthreebean00000000000000#!/bin/sh # Build a certificate signing request and private key. Use this # when your root certificate and key is not available locally. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --csr $* fedmsg-0.9.3/fedmsg/tests/test_certs/gpg/0000755000175000017500000000000012371202100022233 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/tests/test_certs/gpg/pubring.gpg0000644000175000017500000000444012231547317024423 0ustar threebeanthreebean00000000000000 R+!⊉ fyC:X?3.a'a1ƣ$F3]#qk-?a dh<>'JUI0=I HJV P,D?Fn~c%luR8Ư#u<ɛR ~9Ij HN +Ӣkh$aQ3Ɂ;*ɍO_a 70w ekMhKN>䎇6ڴR$f Rλ1 *+ hTest key8"R+!   ?%oe>~V9xDAf:j>pYXP⊷+bwgkP193=Su2h+pe>DιPzVܿcQդ1oGk2RߞcϞFs&( R{/EeقăI"cU ;Aڑ.;'g˪ x-gas!bs9 3 R d9?v6&:ގQ}:6J:#& , R+!*yXO3Q hȖކ\Ȩӎ[u 'E_3niq_iԊkBC4bЃ V!IW#vj퍯t@D[^1"?&" `Mm 8  ^:.ի0". ߁(i4oS=LtDdN a7Lć{ag2<=R0 .Yórzk R+! ?%D)| !*w9B iM *D.C}/( ;;fm1y}=;"\eƱfDpr87^4{we[ft_\2x?Z&eoQUgV KZiR'ה@`>@W Ag/#7dzɯt3Z\Na',@So{h^ci>,m_;5E;pg>2j9j6~QS/ H _Qn p R,ѵa\J%^SYFz+!1?rǖiv³'l0eמ70>6pBt=`(NTg(4ŜBZQsVseD&0K'Oɏ1*6~h|B)1|6ϫjl*4<&{C}Y):nX۔fuЋqhȎt6]F+xP_ Test key 28"R,   bPdν7 K}]ؾ%ZvR2{C6pގ`ĠԵ7GY84 bBHȻq2A܄F5+IvʃgD+DzGQV>wKh&|-ɜhV`r'wuכĦq=xCRE W["Ja0O"Kd8w ` h<0 EU!jLh\z5Ї/ R,LE /'+=eQ5+n_^i̮? ;&΋;%fDХ,3[Sl#tyyg: C&"-o h[2jJa AU O5w2HVPp!t#ZA ã71 <+K6خ54p-(QD2FpL  MuԉuW WYzx'*rf։5_[QB("PK5N`CWU]u; R, bPdν y*__B3KY"% V1q79V^I^M^J2_ɜ5>[5lzNDWo-5'˕-Ct B$c!薚jCNAԇڳ1!PnT9M{w_G5#C~"+w:a9U)7r9 j$*k/G TwW|IY;&$Jm&}c+YDˊx/„fedmsg-0.9.3/fedmsg/tests/test_certs/gpg/secring.gpg0000644000175000017500000000464512231547317024416 0ustar threebeanthreebean00000000000000R+!⊉ fyC:X?3.a'a1ƣ$F3]#qk-?a dh<>'JUI0=I HJV P,D?Fn~c%luR8Ư#u<ɛR ~9Ij HN +Ӣkh$aQ3Ɂ;*ɍO_a 70w ekMhKN>䎇6ڴR$f Rλ1 *+ h~ٓC*φ .lLHKC'L:"|H=`c>6YqV&2`0X7w2dң"Kߘ.xhv.8T..qJ򉤁QoKziaډI`a8cGb9PyT:GkEi,J43 CƖi)pp*8y Xj/ V͚ZI $ VZ 'K~V9xDAf:j>pYXP⊷+bwgkP193=Su2h+pe>DιPzVܿcQդ1oGk2RߞcϞFs&( R{/EeقăI"cU ;Aڑ.;'g˪ x-gas!bs9 3 R d9?v6&:ގQ}:6J:#& ,R+!*yXO3Q hȖކ\Ȩӎ[u 'E_3niq_iԊkBC4bЃ V!IW#vj퍯t@D[^1"?&" `Mm 8  ^:.ի0". ߁(i4oS=LtDdN a7Lć{ag2<=R0 .Yórzkj(OIfr1Hŷ_e@|8KZP:7S׍nڨcL6=hM[WE,/n 8?mbs^^E_zYZfu͔1eCNOkJ¯eH iYR3_6N`4dR~ǜKԸνR^д)3_C&u%6T22M:B[ &{dkY^d&.]_uZ#UEzgwN+[v -65|^Ss+y7܉ R+! ?%D)| !*w9B iM *D.C}/( ;;fm1y}=;"\eƱfDpr87^4{we[ft_\2x?Z&eoQUgV KZiR'ה@`>@W Ag/#7dzɯt3Z\Na',@So{h^ci>,m_;5E;pg>2j9j6~QS/ H _Qn pfedmsg-0.9.3/fedmsg/tests/test_certs/gpg/corrupt.sig0000644000175000017500000000044012231547317024454 0ustar threebeanthreebean00000000000000G-8 bPdν v UQt(G;Q"^})w(w^mh٭^ЎBWPck!A{B{$+ nxnΆ).%:Il3=stYD&ǣڕ{,8@26o-ȳ4`C0:9`~c״|,pK8^b-fIxVљ; lF][{Y%? fedmsg-0.9.3/fedmsg/tests/test_certs/gpg/test_data.sig0000644000175000017500000000043712231547317024734 0ustar threebeanthreebean00000000000000R-S bPdν v UQt(G;Q"^})w(w^mh٭^ЎBWPck!A{B{$+ nxnΆ).%:Il3=stYD&ǣڕ{,8@26o-ȳ4`C0:9`~c״|,pK8^b-fIxVљ; lF][{Y%?fedmsg-0.9.3/fedmsg/tests/test_certs/gpg/trustdb.gpg0000644000175000017500000000240012231547317024436 0ustar threebeanthreebean00000000000000gpgR,  ڒ3?% fc̮W'JUI0=I HJV P,D?Fn~c%luR8Ư#u<ɛR ~9Ij HN +Ӣkh$aQ3Ɂ;*ɍO_a 70w ekMhKN>䎇6ڴR$f Rλ1 *+ hTest key8"R+!   ?%oe>~V9xDAf:j>pYXP⊷+bwgkP193=Su2h+pe>DιPzVܿcQդ1oGk2RߞcϞFs&( R{/EeقăI"cU ;Aڑ.;'g˪ x-gas!bs9 3 R d9?v6&:ގQ}:6J:#& , R+!*yXO3Q hȖކ\Ȩӎ[u 'E_3niq_iԊkBC4bЃ V!IW#vj퍯t@D[^1"?&" `Mm 8  ^:.ի0". ߁(i4oS=LtDdN a7Lć{ag2<=R0 .Yórzk R+! ?%D)| !*w9B iM *D.C}/( ;;fm1y}=;"\eƱfDpr87^4{we[ft_\2x?Z&eoQUgV KZiR'ה@`>@W Ag/#7dzɯt3Z\Na',@So{h^ci>,m_;5E;pg>2j9j6~QS/ H _Qn pfedmsg-0.9.3/fedmsg/tests/test_certs/gpg/random_seed0000600000175000017500000000113012371200560024431 0ustar threebeanthreebean00000000000000\`LrFÜct=69 ƃ}J"3/ ]63ng l3d:׾j~ F  *U}aOϗhV6PZ"/S3Rط)AvGZh0  Dq̔0$bE(JA'$_r\/Ak^0a a[$-KEfkSLxQ/xHav+/<##f{*bp)#Bc]"O1X+$Bu6 bxD>Ϟ ؆k¾.He ۪qZ\=UW0y)B ױe0D"C}ѻ .Bt^tneUm(+ !V=d+YЦMiM'i[(`^)YɔMy!}].I**neKu]zKPkV .s2ID$?ojpQʫP3{Rx]D191Cϫ>C*$f̲z4uTcG2$%\Nfedmsg-0.9.3/fedmsg/tests/test_certs/openssl-1.0.0.cnf0000644000175000017500000002003612231547317024305 0ustar threebeanthreebean00000000000000# For use with easy-rsa version 2.0 and OpenSSL 1.0.0* # This definition stops the following lines choking if HOME isn't # defined. HOME = . RANDFILE = $ENV::HOME/.rnd openssl_conf = openssl_init [ openssl_init ] # Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids engines = engine_section # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca' and 'req'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::KEY_DIR # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/ca.key # The private key RANDFILE = $dir/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext default_days = 3650 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # use public key default MD preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_anything # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied name = optional emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied name = optional emailAddress = optional #################################################################### [ req ] default_bits = $ENV::KEY_SIZE default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation after 2004). # utf8only: only UTF8Strings (PKIX recommendation after 2004). # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. string_mask = nombstr # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = $ENV::KEY_COUNTRY countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = $ENV::KEY_PROVINCE localityName = Locality Name (eg, city) localityName_default = $ENV::KEY_CITY 0.organizationName = Organization Name (eg, company) 0.organizationName_default = $ENV::KEY_ORG # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (eg, your name or your server\'s hostname) commonName_max = 64 name = Name name_max = 64 emailAddress = Email Address emailAddress_default = $ENV::KEY_EMAIL emailAddress_max = 40 # JY -- added for batch mode organizationalUnitName_default = $ENV::KEY_OU commonName_default = $ENV::KEY_CN name_default = $ENV::KEY_NAME # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # Here are some examples of the usage of nsCertType. If it is omitted # the certificate can be used for anything *except* object signing. # This is OK for an SSL server. # nsCertType = server # For an object signing certificate this would be used. # nsCertType = objsign # For normal client use this is typical # nsCertType = client, email # and for everything including object signing: # nsCertType = client, email, objsign # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # This will be displayed in Netscape's comment listbox. nsComment = "Easy-RSA Generated Certificate" # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=clientAuth keyUsage = digitalSignature # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # Copy subject details # issuerAltName=issuer:copy #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName [ server ] # JY ADDED -- Make a cert with nsCertType set to "server" basicConstraints=CA:FALSE nsCertType = server nsComment = "Easy-RSA Generated Server Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=serverAuth keyUsage = digitalSignature, keyEncipherment [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # This is what PKIX recommends but some broken software chokes on critical # extensions. #basicConstraints = critical,CA:true # So we do this instead. basicConstraints = CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Some might want this also # nsCertType = sslCA, emailCA # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always [ engine_section ] # # If you are using PKCS#11 # Install engine_pkcs11 of opensc (www.opensc.org) # And uncomment the following # verify that dynamic_path points to the correct location # #pkcs11 = pkcs11_section [ pkcs11_section ] engine_id = pkcs11 dynamic_path = /usr/lib/engines/engine_pkcs11.so MODULE_PATH = $ENV::PKCS11_MODULE_PATH PIN = $ENV::PKCS11_PIN init = 0 fedmsg-0.9.3/fedmsg/tests/test_certs/openssl-1.0.0.cnf-old-copy0000644000175000017500000002004012231547317026024 0ustar threebeanthreebean00000000000000# For use with easy-rsa version 2.0 and OpenSSL 1.0.0* # This definition stops the following lines choking if HOME isn't # defined. HOME = . RANDFILE = $ENV::HOME/.rnd openssl_conf = openssl_init [ openssl_init ] # Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids engines = engine_section # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca' and 'req'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::KEY_DIR # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/ca.key # The private key RANDFILE = $dir/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext default_days = 3650 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # use public key default MD preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_anything # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied name = optional emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied name = optional emailAddress = optional #################################################################### [ req ] default_bits = $ENV::KEY_SIZE default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation after 2004). # utf8only: only UTF8Strings (PKIX recommendation after 2004). # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. string_mask = nombstr # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = $ENV::KEY_COUNTRY countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = $ENV::KEY_PROVINCE localityName = Locality Name (eg, city) localityName_default = $ENV::KEY_CITY 0.organizationName = Organization Name (eg, company) 0.organizationName_default = $ENV::KEY_ORG # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (eg, your name or your server\'s hostname) commonName_max = 64 name = Name name_max = 64 emailAddress = Email Address emailAddress_default = $ENV::KEY_EMAIL emailAddress_max = 40 # JY -- added for batch mode organizationalUnitName_default = $ENV::KEY_OU commonName_default = $ENV::KEY_CN name_default = $ENV::KEY_NAME # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # Here are some examples of the usage of nsCertType. If it is omitted # the certificate can be used for anything *except* object signing. # This is OK for an SSL server. # nsCertType = server # For an object signing certificate this would be used. # nsCertType = objsign # For normal client use this is typical # nsCertType = client, email # and for everything including object signing: # nsCertType = client, email, objsign # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # This will be displayed in Netscape's comment listbox. nsComment = "Easy-RSA Generated Certificate" # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=clientAuth keyUsage = digitalSignature # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # Copy subject details # issuerAltName=issuer:copy #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName [ server ] # JY ADDED -- Make a cert with nsCertType set to "server" basicConstraints=CA:FALSE nsCertType = server nsComment = "Easy-RSA Generated Server Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=serverAuth keyUsage = digitalSignature, keyEncipherment [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # This is what PKIX recommends but some broken software chokes on critical # extensions. #basicConstraints = critical,CA:true # So we do this instead. basicConstraints = CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Some might want this also # nsCertType = sslCA, emailCA # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always [ engine_section ] # # If you are using PKCS#11 # Install engine_pkcs11 of opensc (www.opensc.org) # And uncomment the following # verify that dynamic_path points to the correct location # #pkcs11 = pkcs11_section [ pkcs11_section ] engine_id = pkcs11 dynamic_path = /usr/lib/engines/engine_pkcs11.so MODULE_PATH = $ENV::PKCS11_MODULE_PATH PIN = $ENV::PKCS11_PIN init = 0 fedmsg-0.9.3/fedmsg/tests/test_certs/openssl-0.9.8.cnf0000644000175000017500000002020512231547317024323 0ustar threebeanthreebean00000000000000# For use with easy-rsa version 2.0 # # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. # # This definition stops the following lines choking if HOME isn't # defined. HOME = . RANDFILE = $ENV::HOME/.rnd openssl_conf = openssl_init [ openssl_init ] # Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids engines = engine_section # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca' and 'req'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::KEY_DIR # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/ca.key # The private key RANDFILE = $dir/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext default_days = 3650 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # which md to use. preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_anything # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied name = optional emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied name = optional emailAddress = optional #################################################################### [ req ] default_bits = $ENV::KEY_SIZE default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString. # utf8only: only UTF8Strings. # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings # so use this option with caution! string_mask = nombstr # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = $ENV::KEY_COUNTRY countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = $ENV::KEY_PROVINCE localityName = Locality Name (eg, city) localityName_default = $ENV::KEY_CITY 0.organizationName = Organization Name (eg, company) 0.organizationName_default = $ENV::KEY_ORG # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (eg, your name or your server\'s hostname) commonName_max = 64 name = Name name_max = 64 emailAddress = Email Address emailAddress_default = $ENV::KEY_EMAIL emailAddress_max = 40 # JY -- added for batch mode organizationalUnitName_default = $ENV::KEY_OU commonName_default = $ENV::KEY_CN name_default = $ENV::KEY_NAME # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # Here are some examples of the usage of nsCertType. If it is omitted # the certificate can be used for anything *except* object signing. # This is OK for an SSL server. # nsCertType = server # For an object signing certificate this would be used. # nsCertType = objsign # For normal client use this is typical # nsCertType = client, email # and for everything including object signing: # nsCertType = client, email, objsign # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # This will be displayed in Netscape's comment listbox. nsComment = "Easy-RSA Generated Certificate" # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=clientAuth keyUsage = digitalSignature # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # Copy subject details # issuerAltName=issuer:copy #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName [ server ] # JY ADDED -- Make a cert with nsCertType set to "server" basicConstraints=CA:FALSE nsCertType = server nsComment = "Easy-RSA Generated Server Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always extendedKeyUsage=serverAuth keyUsage = digitalSignature, keyEncipherment [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # This is what PKIX recommends but some broken software chokes on critical # extensions. #basicConstraints = critical,CA:true # So we do this instead. basicConstraints = CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Some might want this also # nsCertType = sslCA, emailCA # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always [ engine_section ] # # If you are using PKCS#11 # Install engine_pkcs11 of opensc (www.opensc.org) # And uncomment the following # verify that dynamic_path points to the correct location # #pkcs11 = pkcs11_section [ pkcs11_section ] engine_id = pkcs11 dynamic_path = /usr/lib/engines/engine_pkcs11.so MODULE_PATH = $ENV::PKCS11_MODULE_PATH PIN = $ENV::PKCS11_PIN init = 0 fedmsg-0.9.3/fedmsg/tests/test_certs/build-ca0000755000175000017500000000015412231547317023105 0ustar threebeanthreebean00000000000000#!/bin/sh # # Build a root certificate # export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --initca $* fedmsg-0.9.3/fedmsg/tests/test_certs/list-crl0000755000175000017500000000044712231547317023163 0ustar threebeanthreebean00000000000000#!/bin/sh # list revoked certificates CRL="${1:-crl.pem}" if [ "$KEY_DIR" ]; then cd "$KEY_DIR" && \ $OPENSSL crl -text -noout -in "$CRL" else echo 'Please source the vars script first (i.e. "source ./vars")' echo 'Make sure you have edited it to reflect your configuration.' fi fedmsg-0.9.3/fedmsg/tests/test_certs/sign-req0000755000175000017500000000024712231547317023155 0ustar threebeanthreebean00000000000000#!/bin/sh # Sign a certificate signing request (a .csr file) # with a local root certificate and key. export EASY_RSA="${EASY_RSA:-.}" "$EASY_RSA/pkitool" --sign $* fedmsg-0.9.3/fedmsg/tests/test_threads.py0000644000175000017500000001032712330204655022361 0ustar threebeanthreebean00000000000000# This file *was* a part of Moksha. # Copyright (C) 2008-2010 Red Hat, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. try: # For python-2.6, so we can do skipTest import unittest2 as unittest except ImportError: import unittest import threading import copy import os import socket from time import sleep, time from uuid import uuid4 from moksha.hub.tests.test_hub import simulate_reactor from moksha.hub.hub import MokshaHub from moksha.hub import CentralMokshaHub from fedmsg.core import FedMsgContext from nose.tools import eq_, assert_true, assert_false, raises import fedmsg.config import fedmsg.consumers import fedmsg.encoding # Some constants used throughout the hub tests sleep_duration = 0.25 secret = "secret_message" def load_config(name='fedmsg-test-config.py'): here = os.path.sep.join(__file__.split(os.path.sep)[:-1]) test_config = os.path.sep.join([here, name]) config = fedmsg.config.load_config( [], "awesome", filenames=[ test_config, ], invalidate_cache=True ) # TODO -- this appears everywhere and should be encapsulated in a func # Massage the fedmsg config into the moksha config. config['zmq_subscribe_endpoints'] = ','.join( ','.join(bunch) for bunch in config['endpoints'].values() ) hub_name = "twisted.%s" % socket.gethostname().split('.', 1)[0] config['zmq_publish_endpoints'] = ','.join( config['endpoints'][hub_name] ) config['sign_messages'] = False return config class TestHub(unittest.TestCase): def setUp(self): config = load_config() self.config = config self.hub = CentralMokshaHub(config=config) # fully qualified self.fq_topic = "com.test_prefix.dev.threadtest.foo" # short version self.topic = "foo" def tearDown(self): self.hub.close() def test_multi_threaded(self): """ Send messages from 5 concurrent threads. """ messages_received = [] def callback(json): messages_received.append(fedmsg.encoding.loads(json.body)) self.hub.subscribe(topic=self.fq_topic, callback=callback) sleep(sleep_duration) test_name = "__main__.%s" % socket.gethostname().split('.', 1)[0] self.config['name'] = test_name class Publisher(threading.Thread): def run(shmelf): config = copy.deepcopy(self.config) import fedmsg fedmsg.init(**config) fedmsg.publish(topic=self.topic, msg=secret, modname="threadtest") threads = [Publisher() for i in range(5)] for thread in threads: thread.start() for thread in threads: thread.join() simulate_reactor(sleep_duration) sleep(sleep_duration) eq_(len(messages_received), 5) eq_(messages_received[0]['msg'], secret) def test_reinitialize(self): """ In a thread, try to destroy and re-init the API. """ test_name = "__main__.%s" % socket.gethostname().split('.', 1)[0] self.config['name'] = test_name self.test_reinit_success = False class Publisher(threading.Thread): def run(shmelf): config = copy.deepcopy(self.config) import fedmsg fedmsg.init(**config) fedmsg.destroy() fedmsg.init(**config) fedmsg.destroy() fedmsg.init(**config) fedmsg.destroy() self.test_reinit_success = True thread = Publisher() thread.start() thread.join() assert(self.test_reinit_success) if __name__ == '__main__': unittest.main() fedmsg-0.9.3/fedmsg/encoding/0000755000175000017500000000000012371202100017723 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg/encoding/__init__.py0000644000175000017500000000632312330204655022054 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 - 2014 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ fedmsg messages are encoded as JSON. Use the functions :func:`fedmsg.encoding.loads`, :func:`fedmsg.encoding.dumps`, and :func:`fedmsg.encoding.pretty_dumps` to encode/decode. When serializing objects (usually python dicts) with :func:`fedmsg.encoding.dumps` and :func:`fedmsg.encoding.pretty_dumps`, the following exceptions to normal JSON serialization are observed. * :class:`datetime.datetime` objects are correctly converted to seconds since the epoch. * For objects that are not JSON serializable, if they have a ``.__json__()`` method, that will be used instead. * SQLAlchemy models that do not specify a ``.__json__()`` method will be run through :func:`fedmsg.encoding.sqla.to_json` which recursively produces a dict of all attributes and relations of the object(!) Be careful using this, as you might expose information to the bus that you do not want to. See :doc:`crypto` for considerations. """ import time import datetime sqlalchemy = None try: import sqlalchemy import sqlalchemy.ext.declarative except ImportError: pass try: # py2.7 from collections import OrderedDict except ImportError: # py2.4, 2.5, 2.6 from ordereddict import OrderedDict import json import json.encoder class FedMsgEncoder(json.encoder.JSONEncoder): """ Encoder with convenience support. """ def default(self, obj): if hasattr(obj, '__json__'): return obj.__json__() if isinstance(obj, (datetime.datetime, datetime.date)): return time.mktime(obj.timetuple()) if isinstance(obj, time.struct_time): return time.mktime(obj) if isinstance(obj, set): return list(obj) if sqlalchemy: # As a last ditch, try using our sqlalchemy json encoder. sqla_type = sqlalchemy.ext.declarative.DeclarativeMeta if isinstance(type(obj), sqla_type): import fedmsg.encoding.sqla return fedmsg.encoding.sqla.to_json(obj) return super(FedMsgEncoder, self).default(obj) # Ensure that the keys are ordered so that messages can be signed # consistently. See https://github.com/fedora-infra/fedmsg/issues/42 encoder = FedMsgEncoder(sort_keys=True, separators=(',', ':')) dumps = encoder.encode pretty_encoder = FedMsgEncoder(indent=2) pretty_dumps = pretty_encoder.encode loads = json.loads __all__ = [ 'pretty_dumps', 'dumps', 'loads', ] fedmsg-0.9.3/fedmsg/encoding/sqla.py0000644000175000017500000000442512231547317021263 0ustar threebeanthreebean00000000000000# This file is part of fedmsg. # Copyright (C) 2012 Red Hat, Inc. # # fedmsg is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # fedmsg is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with fedmsg; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Ralph Bean # """ :mod:`fedmsg.encoding.sqla` houses utility functions for JSONifying sqlalchemy models that do not define their own ``.__json__()`` methods. Use at your own risk. :func:`fedmsg.encoding.sqla.to_json` will expose all attributes and relations of your sqlalchemy object and may expose information you not want it to. See :doc:`crypto` for considerations. """ try: from sqlalchemy.orm import class_mapper from sqlalchemy.orm.properties import RelationshipProperty except ImportError: pass def to_json(obj, seen=None): """ Returns a dict representation of the object. Recursively evaluates to_json(...) on its relationships. """ if not seen: seen = [] properties = list(class_mapper(type(obj)).iterate_properties) relationships = [ p.key for p in properties if type(p) is RelationshipProperty ] attrs = [ p.key for p in properties if p.key not in relationships ] d = dict([(attr, getattr(obj, attr)) for attr in attrs]) for attr in relationships: d[attr] = expand(obj, getattr(obj, attr), seen) return d def expand(obj, relation, seen): """ Return the to_json or id of a sqlalchemy relationship. """ if hasattr(relation, 'all'): relation = relation.all() if hasattr(relation, '__iter__'): return [expand(obj, item, seen) for item in relation] if type(relation) not in seen: return to_json(relation, seen + [type(obj)]) else: return relation.id fedmsg-0.9.3/doc/0000755000175000017500000000000012371202100015435 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/doc/overview.rst0000644000175000017500000002657112362250750020066 0ustar threebeanthreebean00000000000000======== Overview ======== Description of the problem ~~~~~~~~~~~~~~~~~~~~~~~~~~ Fedora Infrastructure is composed of a number of services (koji, fedpkg, pkgdb, etc..) some of which are maintained outside the Fedora Project and some of which were built in-house by the infrastructure team. These are strung together in a pipeline. Think "how an upstream release becomes a package update", "How a new source distribution becomes a package." At present, many of the steps in this process require the maintainer to wait and watch for a previous step to complete. For instance once a branch of a package is successfully built in koji, the maintainer must `submit their update to bodhi `_ (See the `new package process `_ for more details). Other progressions in the pipeline are automated. For instance, `AutoQA `_ defines a `set of watchers `_. Most watchers are run as a cron task. Each one looks for `certain events `_ and fires off tests when appropriate. At LinuxFest Northwest (2009), jkeating gave `a talk `_ on the problem of complexity in the Fedora infrastructure and how this might be addressed with a message bus architecture. Each service in the infrastructure depends on many of the others. Some pieces directly poke others: git (fedpkg) currently pokes AutoQA from a post-update hook. Other pieces poll others' status: koji scrapes pkgdb for package-owner relationships and email aliases. This dense coupling of services makes changing, adding, or replacing services more complicated: commits to one project require a spidering of code changes to all the others. How messaging might address the problem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ jkeating's `talk on messaging in the Fedora Instructure `_ proposed the adoption of a unified message bus to reduce the complexity of multiple interdependent services. Instead of a service interfacing with its dependencies' implementations, it could subscribe to a `topic`, provide a callback, and respond to events. For instance, instead of having koji scrape pkgdb on an interval for changed email addresses, pkgdb could emit messages to the ``org.fedoraproject.service.pkgdb`` topic whenever an account's email address changes. koji could subscribe to the same topic and provide a callback that updates its local email aliases when invoked. In another case, the git (fedpkg) post-update hook could publish messages to the ``org.fedoraproject.service.fedpkg.post-update`` topic. AutoQA could subscribe to the same. Now if we wanted to enable another service to act when updates are pushed to fedpkg, that service need only subscribe to the topic and implement its own callback instead of appending its own call to fedpkg's post-update hook (instead of coupling its own implementation with fedpkg's). A message bus architecture, once complete, would dramatically reduce the work required to update and maintain services in the Fedora infrastructure. Other benefits ~~~~~~~~~~~~~~ By adopting a messaging strategy for Fedora Infrastructure we could gain: - A stream of data which we can watch and from which we can garner statistics about infrastructure activity. - The de-coupling of services from one another. - libnotify notifications to developers' desktops. - jquery.gritter.js notifications to web interfaces. - this could be generalized to a ``fedmsg.wsgi`` middleware layer that injects a fedora messaging dashboard header into every page served by apps `X`, `Y`, and `Z`. - An irc channel, ``#fedora-fedmsg`` that echoes every message on the bus. - An identi.ca account, @fedora-firehose, that echoes every message on the bus. AMQP, and 0mq ------------- AMQP or "Broker? Damn near killed 'er!" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When discussions on the `Fedora Messaging SIG `_ began, AMQP was the choice by default. Since then members of the SIG have become attracted to an alternative messaging interface called `0mq `_. Recommended reading: - `What's wrong with AMQP `_ The following is recreated from J5's Publish/Subscribe Messaging Proposal as an example of how Fedora Infrastructure could be reorganized with AMQP and a set of federated AMQP brokers (qpid). .. image:: _static/reorganize-amqp-j5.png The gist is that each service in the Fedora Infrastructure would have the address of a central message broker on hand. On startup, each service would connect to that broker, ask the broker to establish its outgoing queues, and begin publishing messages. Similarly, each service would ask the broker to establish incoming queues for them. The broker would handle the routing of messages based on ``routing_keys`` (otherwise known as `topics`) from each service to the others. The downshot, in short, is that AMQP requires standing up a single central broker and thus a single-point-of-failure. In the author's work on `narcissus `_ I found that for even the most simple of AMQP configurations, my qpid brokers' queues would bloat over time until \*pop\*, the broker would fall over. 0mq or "Going for Broke(rless)" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0mq is developed by a team that had a hand in the original development of AMQP. It claims to be a number of things: an "intelligent transport layer", a "socket library that acts as a concurrency framework", and the `sine qua non` "Extra Spicy Sockets!" Recommended reading: - `The Z-guide `_ The following depicts an overview of a subset of Fedora Infrastructure organized with a decentralized 0mq bus parallel to the spirit of J5's recreated diagram in the AMQP section above. .. image:: _static/reorganize-0mq-overview.png No broker. The gist is that each service will open a port and begin publishing messages ("bind to" in zmq-language). Each other service will connect to that port to begin consuming messages. Without a central broker doing `all the things `_, 0mq can afford a high throughput. For instance, in initial tests of a 0mq-enabled `moksha hub `_, the Fedora Engineering Team achieved a 100-fold speedup over AMQP. Service discovery ~~~~~~~~~~~~~~~~~ Shortly after you begin thinking over how to enable Fedora Infrastructure to pass messages over a `fabric` instead of to a `broker`, you arrive at the problem we'll call "service discovery". In reality, (almost) every service both `produces` and `consumes` messages. For the sake of argument, we'll talk here just about a separate `producing service` and some `consuming services`. Scenario: the producing service starts up a producing socket (with a hidden queue) and begins producing messages. Consuming services `X`, `Y`, and `Z` are interested in this and they would like to connect. With AMQP, this is simplified. You have one central broker and each consuming service need only know it's one address. They connect and the match-making is handled for them. With 0mq, each consuming service needs to somehow `discover` its producer(s) address(es). There are a number of ways to address this: - *Write our own broker*; this would not be that difficult. We could (more simply) scale back the project and write our own directory lookup service that would match consumers with their providers. This could be done in surprisingly few lines of python. This issue is that we re-introduce the sticking point of AMQP, a single point of failure. - *Use DNS*; There is a helpful `blog post `_ on how to do this with `djbdns`. DNS is always there anyways: if DNS goes down, we have bigger things to worry about than distributing updates to our messaging topology. - *Share a raw text file*; This at first appears crude and cumbersome: - Maintain a list of all `fedmsg`-enabled producers in a text file - Make sure that file is accessible from every consuming service. - Have each consuming service read in the file and connect to every (relevant) producer in the list In my opinion, using DNS is generally speaking the most elegant solution. However, for Fedora Infrastructure in particular, pushing updates to DNS and pushing a raw text file to every server involves much-the-same workflow: `puppet`. Because much of the overhead of updating the text file falls in-line with the rest of Infrastructure work, it makes more sense to go with the third option. Better not to touch DNS when we don't have to. That configuration is kept in ``/etc/fedmsg.d/``, is read by the code in :mod:`fedmsg.config`. The config value of interest is :term:`endpoints`. Namespace considerations ------------------------ In the above examples, the topic names are derived from the service names. For instance, pkgdb publishes messages to ``org.fedoraproject.service.pkgdb*``, AutoQA presumably publishes messages to ``org.fedoraproject.service.autoqa*``, and so on. This convention, while clear-cut, has its limitations. Say we wanted to replace pkgdb whole-sale with our shiney new `threebean-db` (tm). Here, all other services are subscribed to topics that mention pkgdb explicitly. Rolling out threebean-db will require patching every other service; we find ourselves in a new flavor of the same complexity/co-dependency trap described in the first section. The above `service-oriented` topic namespace is one option. Consider an `object-oriented` topic namespace where the objects are things like users, packages, builds, updates, tests, tickets, and composes. Having bodhi subscribe to ``org.fedoraproject.object.tickets`` and ``org.fedoraproject.object.builds`` leaves us less tied down to the current implementation of the rest of the infrastructure. We could replace `bugzilla` with `pivotal` and bodhi would never know the difference - a ticket is a ticket. That would be nice; but there are too many objects in Fedora Infrastructure that would step on each other. For instance, Koji **tags** packages and Tagger **tags** packages; these two are very different things. Koji and Tagger cannot **both** emit events over ``org.fedoraproject.package.tag.*`` without widespread misery. Consequently, our namespace follows a `service-oriented` pattern. The scheme ~~~~~~~~~~ Event topics will follow the rule:: org.fedoraproject.ENV.SERVICE.OBJECT[.SUBOBJECT].EVENT Where: - ``ENV`` is one of `dev`, `stg`, or `production`. - ``SERVICE`` is something like `koji`, `bodhi`, or `fedoratagger` - ``OBJECT`` is something like `package`, `user`, or `tag` - ``SUBOBJECT`` is something like `owner` or `build` (in the case where ``OBJECT`` is `package`, for instance) - ``EVENT`` is a verb like `update`, `create`, or `complete`. All 'fields' in a topic **should**: - Be `singular` (Use `package`, not `packages`) - Use existing fields as much as possible (since `complete` is already used by other topics, use that instead of using `finished`). fedmsg-0.9.3/doc/meta.rst0000644000175000017500000000044712231547317017143 0ustar threebeanthreebean00000000000000"Natural Language" Representation of Messages ============================================= .. automodule:: fedmsg.meta :members: :undoc-members: :show-inheritance: .. autodata:: processors .. automodule:: fedmsg.meta.base :members: :undoc-members: :show-inheritance: fedmsg-0.9.3/doc/publishing.rst0000644000175000017500000000014212231547317020351 0ustar threebeanthreebean00000000000000Python API: Emitting Messages ============================== .. autofunction:: fedmsg.publish fedmsg-0.9.3/doc/diagrams/0000755000175000017500000000000012371202100017224 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/doc/diagrams/README.rst0000644000175000017500000000011012231547317020724 0ustar threebeanthreebean00000000000000# Diagrams are rendered using "ditaa" ditaa *.txt mv *.png ../_static/. fedmsg-0.9.3/doc/diagrams/proposal.txt0000644000175000017500000000414712231547317021653 0ustar threebeanthreebean00000000000000Recreated from J5's PubSub Notification Proposal ================================================ /-------+ /-------+ /-------+ /-------+ | FAS | | Bodhi | | Koji | | PkgDB | +-------/ +-------/ +-------/ +-------/ | | | | V V V V /--------------------------------\ | Fedora Infrastructure | | AMQP Broker (qpid) | \--------------------------------/ | | | | V V /-------------\ /-------------\ | Fedora | | FAS User | | Community | | AMQP Broker | | AMQP Broker | | (qpid) | | (qpid) | \-------------/ \-------------/ | | | V V /--------------\ /--------------\ | Web Frontend | | gnome-shell | \--------------/ \--------------/ 0mq Proposal; Decentralized Bus =============================== Overview /-------------\ /-------+ /-------+ | Fedora | | FAS |<------->| Bodhi | . . . --+ | Community | +-------/ +-------/ | +-----------+ | ^ ^ ^ ^ +--> | Moksha Hub| | | | | | +-----------+ | | | +-----------+ | \-------------/ | | | | /-------------\ | +-+-------------+ | . . . -----> | Bus Monitor | | | | | \-------------/ V V V V /-------------\ /-------+ /-------+ . . . -----> | FAS User | | Koji |<------->| PkgDB | . . . <--+ | 0mq Repeater| +-------/ +-------/ | \-------------/ | /-------------\ +-> | Bugzilla | | 0mq<->AMQP | | Bridge | \-------------/ fedmsg-0.9.3/doc/diagrams/topology.txt0000644000175000017500000000622012275755417021674 0ustar threebeanthreebean00000000000000 +--------+ /----------------\ +-|firewall|<-+-+ copr backend | | +--------+ | \----------------/ V | /----------------\ /---------\ +-+ secondary arch | | haproxy | | compose | \---------/ \----------------/ | V /------------+--------------\ (the bus) (numerous consuming daemons) | fedmsg-hub | fedmsg-relay |------>| | +--------------+ | /--------------+------------------\ \---------------------------/ +------->| fedmsg-hub | fedmsg-irc |-> Freenode ^ ^ ^ | \--------------+------------------/ | | | | /--------------+------------------\ | /-------------+ /--+------+ +------->| fedmsg-hub | fedmsg-gateway |-> Clients /-------+ |ansible, | | | wiki | | \--------------+------------------/ | SCM | |shell scripts| | +------+ | /--------------+------------------\ | hooks | |fedmsg-logger| | mod_php | +------->| fedmsg-hub | websocket-server |-> Clients +-------/ +-------------/ +---------/ | \--------------+------------------/ /----------+----------------\ | /--------------------------\ | supybot/ | supybot-fedmsg +------>+ |fedmsg-hub +-----------+ +--------------+ | meetbot +----------------+ +------->| | fedbadges |->| {s} postgres | \---------------------------/ | | +-----------+ +--------------+ /------+-------------\ | | +---------------------+ +--------------------+ | koji | koji plugin +------>+ | |herlo's fama updater |->| {d} xmlrpc -> trac | | hub +-------------+ | | +---------------------+ +--------------------+ \--------------------/ | | +------------+ +--------------+ /-----------+-------\ | | | datanommer |->| {s} postgres | | apache | bodhi +------>| | +------------+ +--------------+ | mod_wsgi +-+-----+ | | +--------------------+ +-------+ | | fas +------>| | | notifications (fmn)|-+->| email |-> | +--+-----+ | \-----+--------------------/ | +-------+ | | tagger +------>| +->| irc |-> | +--------+ | | +-------+ | | pkgdb +------>| +->|android|-> | +--------+--------+ | +-------+ | | askbot | plugin +------>| /-------------\ | +--------+--------+ +------->| fedmsg-tail | | | tahrir +------>| \-------------/ | ++--------+ | | | fedocal +------>| | +-----++--------+ | | | trac | plugin +------>| | +------+--------+ \-------------------/ fedmsg-0.9.3/doc/meetings.rst0000644000175000017500000000145612362250750020026 0ustar threebeanthreebean00000000000000IRC Meetings ============ IRC Meetings for the Messaging SIG occur every Tuesday at 16.00 UTC. Archives -------- - https://meetbot.fedoraproject.org/fedora-meeting/2012-03-20/messaging-sig.2012-03-20-16.15.html - https://meetbot.fedoraproject.org/fedora-meeting/2012-03-27/messaging_sig.2012-03-27-16.05.html - https://meetbot.fedoraproject.org/fedora-meeting/2012-04-03/fedora-meeting.2012-04-03-16.04.html - https://meetbot.fedoraproject.org/fedora-meeting/2012-04-10/fedora-meeting.2012-04-10-16.09.html - https://meetbot.fedoraproject.org/fedora-meeting/2012-04-17/fedora-meeting.2012-04-17-16.09.html - https://meetbot.fedoraproject.org/fedora-meeting/2012-04-24/fedora-meeting.2012-04-24-16.07.html - https://meetbot.fedoraproject.org/fedora-meeting/2012-05-08/fedora-meeting.2012-05-08-16.06.html fedmsg-0.9.3/doc/status.rst0000644000175000017500000001212312362250750017527 0ustar threebeanthreebean00000000000000FedMsg Status Table =================== This is a table to keep track of where we are with all the different systems. There is no information here about *receiving* messages, only sending. +---------------+-----------+------------+----------+-----------+ | Service | Dev | Stg | PKI | Prod | +===============+===========+============+==========+===========+ | fedmsg-relay | DONE | DONE | N/A | DONE | +---------------+-----------+------------+----------+-----------+ | fedmsg-irc | DONE | DONE | N/A | DONE | +---------------+-----------+------------+----------+-----------+ | fedmsg-gateway| DONE | DONE | N/A | DONE | +---------------+-----------+------------+----------+-----------+ | websockets | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | ansible | DONE | N/A | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | askbot | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | autoqa | | | | | +---------------+-----------+------------+----------+-----------+ | badges | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | bodhi | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | bugzilla | | | | | +---------------+-----------+------------+----------+-----------+ | busmon | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | compose | DONE | N/A | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | comp 2nd arch | DONE | N/A | DONE | DONE*[4_] | +---------------+-----------+------------+----------+-----------+ | coprs | DONE | N/A | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | elections | DONE [1_] | | | | +---------------+-----------+------------+----------+-----------+ | fas | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | fedocal | DONE | | | | +---------------+-----------+------------+----------+-----------+ | fedorahosted | DONE | N/A | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | koji | DONE? |BLOCKED [3_]| DONE | DONE | +---------------+-----------+------------+----------+-----------+ | mailman | DONE | | | | +---------------+-----------+------------+----------+-----------+ | meetbot | DONE | N/A | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | nagios | DONE | | | | +---------------+-----------+------------+----------+-----------+ | pastebin | | | | | +---------------+-----------+------------+----------+-----------+ | pkgdb | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | planet | DONE? | N/A | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | scm | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | sigul | | | | | +---------------+-----------+------------+----------+-----------+ | pkgdb2branch | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | tagger | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ | wiki | DONE | DONE | DONE | DONE | +---------------+-----------+------------+----------+-----------+ .. _1: https://github.com/abadger/fedora-elections-flask/pull/1 .. _2: https://github.com/rossdylan/fuss .. _3: https://fedorahosted.org/fedora-infrastructure/ticket/3438 .. _4: https://fedorahosted.org/fedora-infrastructure/ticket/3700 Other projects -------------- There are a number of external tools being built against fedmsg: - Luke Macken's `fedmsg-notify `_ is a dbus daemon that connects the fedmsg bus to users' desktops. - Bill Peck's `fedmsg-download `_ listens to the bus and begins download rawhide and branched composes once they are complete for efficient mirroring. - Ralph Bean's `datanommer `_ is a storage consumer for fedmsg. It stores every message it receives in a SQL database. fedmsg-0.9.3/doc/FAQ.rst0000644000175000017500000000274112362250750016620 0ustar threebeanthreebean00000000000000Frequently Asked Questions ========================== - Is there a list of all messages? - Yes! See :doc:`topics`. - When will we be getting koji messages? - We have them now (we got them in late January, 2013)! Look for ``org.fedoraproject.prod.buildsys...`` - When will we be getting bugzilla messages? - Not for a while, unfortunately. We're waiting on Red Hat to sort out issues on their end with qpidd. - Can I deploy fedmsg at my site, even if it has nothing to do with Fedora? - Yes. It was designed so that all the Fedora-isms could be separated out into plugins. Get in touch with ``#fedora-apps`` or create a ticket if you'd like to try this out. - ``fedmsg-tail`` isn't showing the same output as the bot in the ``#fedora-fedmsg`` IRC channel. What's up? - Is the formatting just different? Try the following to get those "nice" messages:: $ sudo yum install python-fedmsg-meta-fedora-infrastructure $ fedmsg-tail --terse - What you were seeing before was the raw JSON content of the messages. That is interesting to see if you want to develop tools that consume fedmsg messages. You can make those JSON blobs a little more readable with:: $ fedmsg-tail --really-pretty - If you *really are* seeing different messages between fedmsg-bot and fedmsg-tail, please report it in the ``#fedora-apps`` IRC channel or as a `ticket on github `_. fedmsg-0.9.3/doc/crypto.rst0000644000175000017500000000023212231547317017525 0ustar threebeanthreebean00000000000000Cryptography and Message Signing ================================ .. automodule:: fedmsg.crypto :members: :undoc-members: :show-inheritance: fedmsg-0.9.3/doc/development.rst0000644000175000017500000000627412362250750020540 0ustar threebeanthreebean00000000000000=========== Development =========== Using a virtualenv ------------------ Although you don't strictly *have* to, you should use `virtualenvwrapper `_ for isolating your development environment. It is to your benefit because you'll be able to install the latest fedmsg from a git checkout without messing with your system fedmsg install (if you have one). The instructions here will assume you are using that. You can install it with:: $ sudo yum install python-virtualenvwrapper .. note:: If you decide not to use python-virtualenvwrapper, you can always use latest update of fedmsg in fedora. If you are doing this, simply ignore all ``mkvirtualenv`` and ``workon`` commands in these instructions. You can install fedmsg with ``sudo yum install fedmsg``. Development Dependencies ------------------------ Get:: $ sudo yum install python-virtualenv openssl-devel zeromq-devel gcc Cloning the Upstream Git Repo ----------------------------- The source code is on github. For read-only access, simply:: $ git clone git://github.com/fedora-infra/fedmsg.git Of course, you may want to do the usual `fork and then clone `_ pattern if you intend to submit patches/pull-requests (please do!). .. note:: If submitting patches, you should check :doc:`contributing` for style guidelines. Setting up your virtualenv -------------------------- Create a new, empty virtualenv and install all the dependencies from `pypi `_:: $ cd fedmsg $ mkvirtualenv fedmsg (fedmsg)$ python setup.py develop .. note:: If the mkvirtualenv command is unavailable try ``source /usr/bin/virtualenvwrapper.sh`` on Fedora (if you do not run Fedora you might have to adjust the command a little). You should also run the tests, just to make sure everything is sane:: (fedmsg)$ python setup.py test Try out the shell commands -------------------------- Having set up your environment in the `Hacking` section above, open up three terminals. In each of them, activate your virtualenv with:: $ workon fedmsg and in one, type:: (fedmsg)$ fedmsg-relay In the second, type:: (fedmsg)$ fedmsg-tail --really-pretty In the third, type:: (fedmsg)$ echo "Hello, world" | fedmsg-logger And you should see the message appear in the ``fedmsg-tail`` term. Configuration ------------- There is a folder in the root of the upstream git checkout named ``fedmsg.d/``. :mod:`fedmsg.config` will try to read this whenever the fedmsg API is invoked. If you're starting a new project like a consumer or a webapp that is sending fedmsg messages, you'll need to copy the ``fedmsg.d/`` directory to the root directory of that project. In :doc:`deployment`, that folder is kept in ``/etc/fedmsg.d/``. .. note:: Watch out: if you have a ``/etc/fedmsg.d/`` folder and a local ``./fedmsg.d/``, fedmsg will read both. Global first, and then local. Local values will overwrite system-wide ones. .. note:: The tutorial on `consuming FAS messages from stg `_ might be of further help. It was created before these instructions were written. fedmsg-0.9.3/doc/conf.py0000644000175000017500000001443512362250750016761 0ustar threebeanthreebean00000000000000# -*- coding: utf-8 -*- # # ToscaWidgets 2 documentation build configuration file, created by # sphinx-quickstart on Tue Mar 10 11:38:11 2009. # # This file is execfile()d with the current directory set to its containing # dir. # # The contents of this file are pickled, so don't put values in the namespace # that aren't pickleable (module imports are okay, they're removed # automatically). # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys import os # If your extensions are in another directory, add it here. If the directory # is relative to the documentation root, use os.path.abspath to make it # absolute, like shown here. #sys.path.append(os.path.abspath('.')) # General configuration # --------------------- # import Cloud import cloud_sptheme as csp # ... some contents omitted ... # set the html theme html_theme = "cloud" # ... some contents omitted ... # set the theme path to point to cloud's theme data html_theme_path = [csp.get_theme_dir()] # [optional] set some of the options listed above... html_theme_options = { "sidebarwidth": "200px", "max_width": "900px", "compact_width": "800px", "minimal_width": "700px", # Style it like Fedora.. "bodyfont": "Cantarell", "highlightcolor": "#4FAF4F", "sidebarbgcolor": "#FEFEFE", "sidebartrimcolor": "#FEFEFE", "sectionbgcolor": "#FEFEFE", "sectiontrimcolor": "#FEFEFE", "sectiontextcolor": "#444444", "relbarbgcolor": "#FEFEFE", "relbartextcolor": "#444444", "relbarlinkcolor": "#444444", "bgcolor": "#FEFEFE", "textcolor": "#444444", "linkcolor": "#060", # First Green "headtextcolor": "#444444", "headlinkcolor": "#444444", #"codebgcolor" #"codetextcolor" "codetrimcolor": "#060", # First Green "footerbgcolor": "#FEFEFE", } # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'Fedora Messaging' copyright = u'2012 - 2014 Red Hat, Inc. and others.' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. # TODO -- read this from the README.rst file version = '0.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = ['.build'] # The reST default role (used for this markup: `text`) to use for all # documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # Options for HTML output # ----------------------- # The style sheet to use for HTML and HTML Help pages. A file of that name # must exist either in Sphinx' static/ path, or in one of the custom paths # given in html_static_path. html_style = 'site.css' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. html_sidebars = { '**': [ 'fedmsg-logo.html', 'localtoc.html', 'relations.html', 'githubedit.html', ], } # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, the reST sources are included in the HTML build as _sources/. #html_copy_source = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'fedmsg' fedmsg-0.9.3/doc/replay.rst0000644000175000017500000000240312231547317017503 0ustar threebeanthreebean00000000000000Replay ====== .. automodule:: fedmsg.replay :members: :undoc-members: :show-inheritance: Replay queries -------------- Currently, a query is the union of multiple criteria. It means that the more criteria you add, the bigger the result set should become. The following criteria are supported: .. glossary:: seq_ids ``list`` - A list of integers, matching the seq_id attributes of the messages. It should return at most as many messages as the length of the list, assuming no duplicate. Supported by ``SqlStore``. seq_id ``int`` - A single integer matching the seq_id attribute of the messages. Should return a single message. It is intended as a shorthand for singleton ``seq_ids`` queries. Supported by ``SqlStore``. seq_id_range ``tuple`` - A couple of integers defining a range of seq_id to check. Supported by ``SqlStore`` msg_ids ``list`` - a list of UUIDs matching the msg_id attribute of the messages. Supported by ``SqlStore``. msg_id ``uuid`` - A single UUID for the msg_id attribute. Supported by ``SqlStore``. time ``tuple`` - Couple of timestamps. It will return all messages emitted inbetween. Supported by ``SqlStore`` fedmsg-0.9.3/doc/_templates/0000755000175000017500000000000012371202100017572 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/doc/_templates/page.html0000644000175000017500000000050212362250750021407 0ustar threebeanthreebean00000000000000{% extends "!page.html" %} {% block footer -%} {{ super() }} Fork me on GitHub {%- endblock %} fedmsg-0.9.3/doc/_templates/fedmsg-logo.html0000644000175000017500000000040112231547317022677 0ustar threebeanthreebean00000000000000

fedmsg

fedmsg-0.9.3/doc/_templates/githubedit.html0000644000175000017500000000063512231547317022635 0ustar threebeanthreebean00000000000000

Edit this document

Go to {{ title }} on GitHub.

Use the web interface to fork the repo, edit the file, and send a pull request.

Your changes will be queued for review under project's Pull requests tab on Github.

fedmsg-0.9.3/doc/index.rst0000644000175000017500000000521512362250750017317 0ustar threebeanthreebean00000000000000Fedora Infrastructure Message Bus ================================= We want to hook all the services in Fedora Infrastructure up to send messages to one another over a message bus instead of communicating with each other in the heterogenous, "Rube-Goldberg" ways they do now. ``fedmsg`` (Fedora-Messaging) is a python package and API used around Fedora Infrastructure to send and receive messages to and from applications. See :doc:`overview` for a thorough introduction. `Click here to see a feed of the Fedora bus `_. There's also a ``#fedora-fedmsg`` channel on the freenode network with a firehose bot echoing messages to channel to help give you a feel for what's going on. Receiving Messages with Python ------------------------------ .. code-block:: python import fedmsg # Yield messages as they're available from a generator for name, endpoint, topic, msg in fedmsg.tail_messages(): print topic, msg Receiving Messages from the Shell --------------------------------- .. code-block:: bash $ fedmsg-tail --really-pretty Publishing Messages with Python ------------------------------- See :doc:`development` on setting up your environment and workflow. .. code-block:: python import fedmsg fedmsg.publish(topic='testing', modname='test', msg={ 'test': "Hello World", }) Publishing Messages from the Shell ---------------------------------- .. code-block:: bash $ echo "Hello World." | fedmsg-logger --modname=git --topic=repo.update $ echo '{"a": 1}' | fedmsg-logger --json-input $ fedmsg-logger --message="This is a message." $ fedmsg-logger --message='{"a": 1}' --json-input Testimonials ------------ - `Jordan Sissel `_ -- "Cool idea, gives new meaning to open infrastructure." - `David Gay `_ -- "It's like I'm working with software made by people who thought about the future." Community --------- The source for this document can be found `on github `_. The issue tracker can be `found there `_, too. Almost all discussion happens in ``#fedora-apps`` on the freenode network. There is also a `mailing list `_. Table of Contents ----------------- .. toctree:: :maxdepth: 0 overview topology status FAQ development deployment commands publishing consuming encoding crypto replay meta config topics ---- .. note:: :doc:`proposal` is a now out-moded document, but is kept here for historical purposes. fedmsg-0.9.3/doc/config.rst0000644000175000017500000004125612362250750017462 0ustar threebeanthreebean00000000000000Configuration ============= .. automodule:: fedmsg.config :members: :undoc-members: :show-inheritance: .. autofunction:: fedmsg.init Glossary of Configuration Values -------------------------------- .. glossary:: topic_prefix ``str`` - A string prefixed to the topics of all outgoing messages. Typically "org.fedoraproject". Used when :func:`fedmsg.publish` constructs the fully-qualified topic for an outgoing message. environment ``str`` - A string that must be one of ``['prod', 'stg', 'dev']``. It signifies the environment in which this fedmsg process is running and can be used to weakly separate different logical buses running in the same infrastructure. It is used by :func:`fedmsg.publish` when it is constructing a fully-qualified topic. high_water_mark ``int`` - An option to zeromq that specifies a hard limit on the maximum number of outstanding messages to be queued in memory before reaching an exceptional state. For our pub/sub zeromq sockets, the exceptional state means *dropping messages*. See the upstream documentation for `ZMQ_HWM `_ and `ZMQ_PUB `_. A :term:`high_water_mark` of ``0`` means "no limit" and is the recommended value for fedmsg. It is referenced when initializing sockets in :func:`fedmsg.init`. io_threads ``int`` - An option that specifies the size of a zeromq thread pool to handle I/O operations. See the upstream documentation for `zmq_init `_. This value is referenced when initializing the zeromq context in :func:`fedmsg.init`. post_init_sleep ``float`` - A number of seconds to sleep after initializing and before sending any messages. Setting this to a value greater than zero is required so that zeromq doesn't drop messages that we ask it to send before the pub socket is finished initializing. Experimentation needs to be done to determine and sufficiently small and safe value for this number. ``1`` is definitely safe, but annoyingly large. endpoints ``dict`` - A mapping of "service keys" to "zeromq endpoints"; the heart of fedmsg. :term:`endpoints` is "a list of possible addresses from which fedmsg can send messages." Thus, "subscribing to the bus" means subscribing to every address listed in :term:`endpoints`. :term:`endpoints` is also an index where a fedmsg process can look up what port it should bind to to begin emitting messages. When :func:`fedmsg.init` is invoked, a "name" is determined. It is either passed explicitly, or guessed from the call stack. The name is combined with the hostname of the process and used as a lookup key in the :term:`endpoints` dict. When sending, fedmsg will attempt to bind to each of the addresses listed under its service key until it can succeed in acquiring the port. There needs to be as many endpoints listed as there will be ``processes * threads`` trying to publish messages for a given service key. For example, the following config provides for four WSGI processes on bodhi on the machine app01 to send fedmsg messages. >>> config = dict( ... endpoints={ ... "bodhi.app01": [ ... "tcp://app01.phx2.fedoraproject.org:3000", ... "tcp://app01.phx2.fedoraproject.org:3001", ... "tcp://app01.phx2.fedoraproject.org:3002", ... "tcp://app01.phx2.fedoraproject.org:3003", ... ], ... }, ... ) If apache is configured to start up five WSGI processes, the fifth one will produce tracebacks complaining with ``IOError("Couldn't find an available endpoint.")``. If apache is configured to start up four WSGI processes, but with two threads each, four of those threads will raise exceptions with the same complaints. A process subscribing to the fedmsg bus will connect a zeromq SUB socket to every endpoint listed in the :term:`endpoints` dict. Using the above config, it would connect to the four ports on app01.phx2.fedoraproject.org. .. note:: This is possibly the most complicated and hardest to understand part of fedmsg. It is the black sheep of the design. All of the simplicity enjoyed by the python API is achieved at cost of offloading the complexity here. Some work could be done to clarify the language used for "name" and "service key". It is not always consistent in :mod:`fedmsg.core`. srv_endpoints ``list`` - A list of domain names for which to query SRV records to get the associated endpoints. When using fedmsg.config.load_config(), the DNS lookup is done and the resulting endpoints are added to config['endpoint'][$DOMAINNAME] For example, the following would query the endpoints for foo.example.com. >>> config = dict( ... srv_endpoints=[foo.example.com] ...) status_directory ``str`` - A path to a directory where consumers can save the status of their last processed message. In conjunction with :term:`datagrepper_url`, allows for automatic retrieval of backlog on daemon startup. datagrepper_url ``url`` - A URL to an instance of the datagrepper web service, such as https://apps.fedoraproject.org/datagrepper/raw. Can be used in conjuction with :term:`status_directory` to allow for automatic retrieval of backlog on daemon startup. replay_endpoints ``dict`` - A mapping of service keys, the same as for :term:`endpoints` to replay endpoints, each key having only one. The replay endpoints are special ZMQ endpoints using a specific protocol to allow the client to request a playback of messages in case some have been dropped, for instance due to network failures. If the service has a replay endpoint specified, fedmsg will automatically try to detect such failures and properly query the endpoint to get the playback if needed. relay_inbound ``str`` - A list of special zeromq endpoints where the inbound, passive zmq SUB sockets for for instances of ``fedmsg-relay`` are listening. Commands like ``fedmsg-logger`` actively connect here and publish their messages. See :doc:`topology` and :doc:`commands` for more information. sign_messages ``bool`` - If set to true, then :mod:`fedmsg.core` will try to sign every message sent using the machinery from :mod:`fedmsg.crypto`. It is often useful to set this to `False` when developing. You may not have X509 certs or the tools to generate them just laying around. If disabled, you will likely want to also disable :term:`validate_signatures`. validate_signatures ``bool`` - If set to true, then the base class :class:`fedmsg.consumers.FedmsgConsumer` will try to use :func:`fedmsg.crypto.validate` to validate messages before handing them off to the particular consumer for which the message is bound. This is also used by :mod:`fedmsg.meta` to denote trustworthiness in the natural language representations produced by that module. crypto_backend ``str`` - The name of the :mod:`fedmsg.crypto` backend that should be used to sign outgoing messages. It may be either 'x509' or 'gpg'. crypto_validate_backends ``list`` - A list of names of :mod:`fedmsg.crypto` backends that may be used to validate incoming messages. ssldir ``str`` - This should be directory on the filesystem where the certificates used by :mod:`fedmsg.crypto` can be found. Typically ``/etc/pki/fedmsg/``. crl_location ``str`` - This should be a URL where the certificate revocation list can be found. This is checked by :func:`fedmsg.crypto.validate` and cached on disk. crl_cache ``str`` - This should be the path to a filename on the filesystem where the CRL downloaded from :term:`crl_location` can be saved. The python process should have write access there. crl_cache_expiry ``int`` - Number of seconds to keep the CRL cached before checking :term:`crl_location` for a new one. ca_cert_location ``str`` - This should be a URL where the certificate authority cert can be found. This is checked by :func:`fedmsg.crypto.validate` and cached on disk. ca_cert_cache ``str`` - This should be the path to a filename on the filesystem where the CA cert downloaded from :term:`ca_cert_location` can be saved. The python process should have write access there. ca_cert_cache_expiry ``int`` - Number of seconds to keep the CA cert cached before checking :term:`ca_cert_location` for a new one. certnames ``dict`` - This should be a mapping of certnames to cert prefixes. The keys should be of the form ``.``. For example: ``bodhi.app01``. The values should be the prefixes of cert/key pairs to be found in :term:`ssldir`. For example, if ``bodhi-app01.stg.phx2.fedoraproject.org.crt`` and ``bodhi-app01.stg.phx2.fedoraproject.org.key`` are to be found in :term:`ssldir`, then the value ``bodhi-app01.stg.phx2.fedoraproject.org`` should appear in the :term:`certnames` dict. Putting it all together, this value could be specified as follows:: certnames={ "bodhi.app01": "bodhi-app01.stg.phx2.fedoraproject.org", # ... other certname mappings may follow here. } .. note:: This is one of the most cumbersome parts of fedmsg. The reason we have to enumerate all these redundant mappings between "service.hostname" and "service-fqdn" has to do with the limitations of reverse dns lookup. Case in point, try running the following on app01.stg inside Fedora Infrastructure's environment. >>> import socket >>> print socket.getfqdn() You might expect it to print "app01.stg.phx2.fedoraproject.org", but it doesn't. It prints "memcached04.phx2.fedoraproject.org". Since we can't rely on programatically extracting the fully qualified domain names of the host machine during runtime, we need to explicitly list all of the certs in the config. routing_nitpicky ``bool`` - When set to True, messages whose topics do not appear in :term:`routing_policy` automatically fail the validation process described in :mod:`fedmsg.crypto`. It defaults to ``False``. routing_policy ``dict`` - A dict mapping fully-qualified topic names to lists of cert names. If a message's topic appears in the :term:`routing_policy` and the name on its certificate does not appear in the associated list, then that message fails the validation process in :mod:`fedmsg.crypto`. For example, a routing policy might look like this:: routing_policy={ "org.fedoraproject.prod.bodhi.buildroot_override.untag": [ "bodhi-app01.phx2.fedoraproject.org", "bodhi-app02.phx2.fedoraproject.org", "bodhi-app03.phx2.fedoraproject.org", "bodhi-app04.phx2.fedoraproject.org", ], } The above loosely translates to "messages about bodhi buildroot overrides being untagged may only come from the first four app servers." If a message with that topic bears a cert signed by any other name, then that message fails the validation process. Expect that your :term:`routing_policy` (if you define one) will become quite long. It defaults to the empty dict, ``{}``. fedmsg.consumers.gateway.port ``int`` - A port number for the special outbound zeromq PUB socket posted by :func:`fedmsg.commands.gateway.gateway`. The ``fedmsg-gateway`` command is described in more detail in :doc:`commands`. irc ``list`` - A list of ircbot configuration dicts. This is the primary way of configuring the ``fedmsg-irc`` bot implemented in :func:`fedmsg.commands.ircbot.ircbot`. Each dict contains a number of possible options. Take the following example: >>> config = dict( ... irc=[ ... dict( ... network='irc.freenode.net', ... port=6667, ... nickname='fedmsg-dev', ... channel='fedora-fedmsg', ... timeout=120, ... ... make_pretty=True, ... make_terse=True, ... ... filters=dict( ... topic=['koji'], ... body=['ralph'], ... ), ... ), ... ], ... ) Here, one bot is configured. It is to connect to the freenode network on port 6667. The bot's name will be ``fedmsg-dev`` and it will join the ``#fedora-fedmsg`` channel. ``make_pretty`` specifies that colors should be used, if possible. ``make_terse`` specifies that the "natural language" representations produced by :mod:`fedmsg.meta` should be echoed into the channel instead of raw or dumb representations. The ``filters`` dict is not very smart. In the above case, any message that has 'koji' anywhere in the topic or 'ralph' anywhere in the JSON body will be discarded and not echoed into ``#fedora-fedmsg``. This is an area that could use some improvement. irc_color_lookup ``dict`` - A mapping of ``modname`` values to `MIRC irc color names `_. For example: >>> irc_color_lookup = { ... "fas": "light blue", ... "bodhi": "green", ... "git": "red", ... "tagger": "brown", ... "wiki": "purple", ... "logger": "orange", ... "pkgdb": "teal", ... "buildsys": "yellow", ... "planet": "light green", ... } irc_method ``str`` — the name of the method used to publish the messages on IRC. Valid values are 'msg' and 'notice', the latter being the default. zmq_enabled ``bool`` - A value that must be true. It is present solely for compatibility/interoperability with `moksha `_. zmq_strict ``bool`` - When false, allow splats ('*') in topic names when subscribing. When true, disallow splats and accept only strict matches of topic names. This is an argument to `moksha `_ and arose there to help abstract away differences between the "topics" of zeromq and the "routing_keys" of AMQP. zmq_tcp_keepalive ``int`` - Interpreted as a boolean. If non-zero, then keepalive options will be set. See upstream `zmq options `_ and general `overview `_. zmq_tcp_keepalive_cnt ``int`` - Number of keepalive packets to send before considering the connection dead. See upstream `zmq options `_ and general `overview `_. zmq_tcp_keepalive_idle ``int`` - Number of seconds to wait after last data packet before sending the first keepalive packet. See upstream `zmq options `_ and general `overview `_. zmq_tcp_keepalive_intvl ``int`` - Number of seconds to wait inbetween sending subsequent keepalive packets. See upstream `zmq options `_ and general `overview `_. fedmsg-0.9.3/doc/commands.rst0000644000175000017500000000200212362250750020000 0ustar threebeanthreebean00000000000000Commands ======== Console Scripts --------------- ``fedmsg`` provides a number of console scripts for use with random shell scripts. fedmsg-logger ~~~~~~~~~~~~~ .. autofunction:: fedmsg.commands.logger.logger fedmsg-tail ~~~~~~~~~~~ .. autofunction:: fedmsg.commands.tail.tail fedmsg-dg-replay ~~~~~~~~~~~~~~~~ .. autofunction:: fedmsg.commands.replay.replay fedmsg-collectd ~~~~~~~~~~~~~~~ .. autofunction:: fedmsg.commands.collectd.collectd Service Daemons --------------- fedmsg-hub ~~~~~~~~~~ .. autofunction:: fedmsg.commands.hub.hub fedmsg-relay ~~~~~~~~~~~~ .. autofunction:: fedmsg.commands.relay.relay fedmsg-irc ~~~~~~~~~~ .. autofunction:: fedmsg.commands.ircbot.ircbot fedmsg-gateway ~~~~~~~~~~~~~~ .. autofunction:: fedmsg.commands.gateway.gateway Writing your own fedmsg commands -------------------------------- The :mod:`fedmsg.commands` module provides a ``@command`` decorator to help simplify this. .. automodule:: fedmsg.commands :members: :undoc-members: :show-inheritance: fedmsg-0.9.3/doc/requirements.txt0000644000175000017500000000012212330204655020730 0ustar threebeanthreebean00000000000000cloud_sptheme pyzmq-static fedmsg_meta_fedora_infrastructure>=0.1.2 nose requests fedmsg-0.9.3/doc/deployment.rst0000644000175000017500000001603612371162175020376 0ustar threebeanthreebean00000000000000Deploying fedmsg for yourself ============================= Elsewhere, the emphasis in fedmsg docs is on how to subscribe to an existing fedmsg deployment; how do I listen for koji builds from Fedora Infrastructure? This document, on the other hand, is directed at those who want to deploy fedmsg for their own systems. This document also only goes as far as setting things up for a single machine. You typically deploy fedmsg across an *infrastructure* but if you just want to try it out for "proof-of-concept", these are the docs for you. Lastly, the emphasis here is on the practical -- there will be lots of examples. There is plenty of long-winded explanation over at :doc:`overview`. .. note:: Caveat: fedmsg is deployed at a couple different sites: - Fedora Infrastructure - `data.gouv.fr `_ - to some extent, Debian Infrastructure We wrote this document much later afterwards, so, if you come across errors, or things that don't work right. Please `report it `_. The basics ---------- First install fedmsg:: $ sudo yum install fedmsg Now you have some ``fedmsg-*`` cli tools like ``fedmsg-tail`` and ``fedmsg-logger``. On Fedora systems, fedmsg is configured by default to subscribe to Fedora Infrastructure's bus. Since you are deploying for your own site, you don't want that. So edit ``/etc/fedmsg.d/endpoints.py`` and *comment out the whole "fedora-infrastructure" section*, like this: .. code-block:: python #"fedora-infrastructure": [ # "tcp://hub.fedoraproject.org:9940", # #"tcp://stg.fedoraproject.org:9940", #], Starting fedmsg-relay --------------------- Not all fedmsg interactions require the relay, but publishing messages from a terminal does. Install fedmsg-relay and start it:: $ sudo yum install fedmsg-relay $ sudo systemctl restart fedmsg-relay $ sudo systemctl enable fedmsg-relay It has a pid file in ``/var/run/fedmsg/fedmsg-relay.pid`` and you can view the logs in ``journalctl --follow``. On other systems you can find the logs in ``/var/log/fedmsg/fedmsg-relay.log``. Out of the box, it should be listening for incoming messages on ``tcp://127.0.0.1:2003`` and re-publishing them indiscriminately at ``tcp://127.0.0.1:4001``. It is fine to keep these defaults. Test it out ----------- Try a test! Open two terminals: - In the first, type ``fedmsg-tail --really-pretty`` - In the second, type ``echo "Hello world" | fedmsg-logger`` You should see the JSON representation of your message show up in the first terminal. It should look something like this. .. code-block:: javascript { "username": "root", "i": 1, "timestamp": 1393878837, "msg_id": "2014-f1c49f0b-5caf-49e6-b79a-cc54bcfac602", "topic": "org.fedoraproject.dev.logger.log", "msg": { "log": "Hello world" } } These are two handy tools for debugging the configuration of your bus. Store all messages ------------------ We use a tool called `datanommer `_ to store all the messages that come across the bus in a postgres database. Using whatever relational database you like should be possible just by modifying the config. Setting up postgres ~~~~~~~~~~~~~~~~~~~ Here, set up a postgres database:: $ sudo yum install postgresql-server python-psycopg2 $ postgresql-setup initdb Edit the ``/var/lib/pgsql/data/pg_hba.conf`` as the user postgres. You might find a line like this:: host all all 127.0.0.1/32 ident sameuser host all all ::1/128 ident sameuser Instead of that line, change it to this:: host all all 127.0.0.1/32 trust host all all ::1/128 trust .. note:: Using ``trust`` is super unsafe long term. That means that anyone with any password will be able to connect locally. That's fine for our little one-box test here, but you'll want to use md5 or kerberos or something long term. Start up postgres:: $ systemctl start postgresql $ systemctl enable postgresql Create a database user and the db itself for datanommer and friends:: $ sudo -u postgres createuser -SDRPE datanommer $ sudo -u postgres createdb -E utf8 datanommer -O datanommer Setting up datanommer ~~~~~~~~~~~~~~~~~~~~~ Install it:: $ sudo yum install fedmsg-hub python-datanommer-consumer datanommer-commands Edit the configuration to 1) be enabled, 2) point at your newly created postgres db. Edit ``/etc/fedmsg.d/datanommer.py`` and change the whole thing to look like this:: config = { 'datanommer.enabled': True, 'datanommer.sqlalchemy.url': 'postgresql://datanommer:password@localhost/datanommer', } Run the following command from the ``datanommer-commands`` package to set up the tables. It will read in that connection url from ``/etc/fedmsg.d/datanommer.py``:: $ datanommer-create-db Start the ``fedmsg-hub`` daemon, which will pick up the datanommer plugin, which will in turn read in that connection string, start listening for messages, and store them all in the db. :: $ sudo systemctl start fedmsg-hub $ sudo systemctl enable fedmsg-hub You can check ``journalctl --follow`` for logs. Try testing again with ``fedmsg-logger``. After publishing a message, you should see it in the datanommer stats if you run ``datanommer-stats``:: $ datanommer-stats [2014-03-03 20:34:43][ fedmsg INFO] logger has 2 entries Querying datanommer with datagrepper ------------------------------------ You can, of course, query datanommer with SQL yourself (and there's a python API for directly querying in the ``datanommer.models`` module). For the rest here is the HTTP API we have called "datagrepper". Let's set it up:: $ sudo yum install datagrepper mod_wsgi Add a config file for it in ``/etc/httpd/conf.d/datagrepper.conf`` with these contents:: LoadModule wsgi_module modules/mod_wsgi.so # Static resources for the datagrepper app. Alias /datagrepper/css /usr/lib/python2.7/site-packages/datagrepper/static/css WSGIDaemonProcess datagrepper user=fedmsg group=fedmsg maximum-requests=50000 display-name=datagrepper processes=8 threads=4 inactivity-timeout=300 WSGISocketPrefix run/wsgi WSGIRestrictStdout Off WSGIRestrictSignal Off WSGIPythonOptimize 1 WSGIScriptAlias /datagrepper /usr/share/datagrepper/apache/datagrepper.wsgi WSGIProcessGroup datagrepper # XXX - The syntax for this is different for different versions of apache Require all granted Finally, start up httpd with:: $ sudo systemctl restart httpd $ sudo systemctl enable httpd And it should just work. Open a web browser and try to visit ``http://localhost/datagrepper/``. The whole point of datagrepper is its API, which you might experiment with using the httpie tool:: $ sudo yum install httpie $ http get http://localhost/datagrepper/raw/ order==desc Outro ----- This document is a work in progress. Future topics may include selinux and :doc:`crypto`. Let us know what you'd like to know if it is missing. fedmsg-0.9.3/doc/topics.rst0000644000175000017500000000023212362250750017503 0ustar threebeanthreebean00000000000000List of Message Topics ====================== A list of topics for Fedora Infrastructure messages can be found at https://fedora-fedmsg.readthedocs.org/ fedmsg-0.9.3/doc/py3status.rst0000644000175000017500000000350612231547317020173 0ustar threebeanthreebean00000000000000Python3 Status ============== This is a table of fedmsg's dependencies and which of them are ready for python3. We'll need every entry to be "good to go" before we start trying to port fedmsg to python3. .. note:: This table is a work in progress. +---------------+---------------+-----------+ | package | Upstream | Fedora | +===============+===============+===========+ | decorator | Good | Good | +---------------+---------------+-----------+ | kitchen | | | +---------------+---------------+-----------+ | lockfile | | | +---------------+---------------+-----------+ | moksha.common | | | +---------------+---------------+-----------+ | moksha.hub | | | +---------------+---------------+-----------+ | paste | | | +---------------+---------------+-----------+ | python-daemon | | | +---------------+---------------+-----------+ | pytz | | | +---------------+---------------+-----------+ | pyzmq | Good | Good | +---------------+---------------+-----------+ | requests | | | +---------------+---------------+-----------+ | setuptools | | | +---------------+---------------+-----------+ | stomper | | | +---------------+---------------+-----------+ | Twisted | | | +---------------+---------------+-----------+ | txWS | | | +---------------+---------------+-----------+ | txZMQ | | | +---------------+---------------+-----------+ | zope.interface| | | +---------------+---------------+-----------+ fedmsg-0.9.3/doc/consuming.rst0000644000175000017500000002016512362250750020213 0ustar threebeanthreebean00000000000000Python API: Consuming Messages =============================== The other side of the :doc:`publishing` document is consuming messages. .. note:: Messages that you consume come with a topic and a body (dict). The content of a message can be useful! For instance, messages from FAS that come when a user edits their profile can tell you who made the change and what fields were changed. fedmsg was designed with security and message validation in mind, but its still so new that you shouldn't trust it. When building consumers, you should *always* verify information with existing webapps before acting on messages. - **nirik>** trust, but verify. or... don't trust, and verify. ;) .. note:: This document is on *how* to consume messages. But if you want to know *what* messages there are, you might check out :doc:`topics`. "Naive" Consuming ----------------- The most straightforward way, programmatically, to consume messages is to use :func:`fedmsg.tail_messages`. It is a generator that yields 4-tuples of the form ``(name, endpoint, topic, message)``:: >>> import fedmsg >>> # Read in the config from /etc/fedmsg.d/ >>> config = fedmsg.config.load_config([], None) >>> # Disable a warning about not sending. We know. We only want to tail. >>> config['mute'] = True >>> # Disable timing out so that we can tail forever. This is deprecated >>> # and will disappear in future versions. >>> config['timeout'] = 0 >>> for name, endpoint, topic, msg in fedmsg.tail_messages(**config): ... print topic, msg # or use fedmsg.encoding.pretty_dumps(msg) The API is easy to use and should hopefully make your scripts easy to understand and maintain. For production services, you will want to use the hub-consumer approach described further below. Note that the :func:`fedmsg.tail_messages` used to be quite inefficient; it spun in a sleep, listen, yield loop that was quite costly in IO and CPU terms. Typically, a script that used :func:`fedmsg.tail_messages` would consume 100% of a CPU. That has since be resolved by introducing the use of a ``zmq.Poller``. .. note:: The ``fedmsg-tail`` command described in :doc:`commands` uses :func:`fedmsg.tail_messages` to "tail" the bus. "Naive" API ~~~~~~~~~~~ .. autofunction:: fedmsg.tail_messages The Hub-Consumer Approach ------------------------- In contrast to the "naive" approach above, a more efficient way of consuming events can be accomplished by way of the fedmsg-hub. The drawback is that programming it is sort of indirect and declarative; it can be confusing at first. To consume messages and do with them what you'd like, you need to: * Write a class which extends :class:`fedmsg.consumers.FedmsgConsumer` * Override certain properties and methods of that class. Namely, * ``topic`` -- A string used soley for constraining what messages make their way to the consumer; the consumer can *send* messages on any topic. You may use 'splats' ('*') in the topic and subscribe to ``'org.fedoraproject.stg.koji.*'`` to get all of the messages from koji in the staging environment. * ``config_key`` -- A string used to declare a configuration entry that must be set to ``True`` for your consumer to be activated by the fedmsg-hub. * ``consume`` -- A method that accepts a dict (the message) and contains code that "does what you would like to do". * ``replay_name`` -- (optional) The name of the replay endpoint where the system should query playback in case of missing messages. It must match a service key in :term:`replay_endpoints`. * Register your class on the ``moksha.consumer`` python entry-point. A simple example ~~~~~~~~~~~~~~~~ `Luke Macken `_ wrote a simple example of a `koji consumer `_. It's a good place to start if you're writing your own consumer. An Example From "busmon" ~~~~~~~~~~~~~~~~~~~~~~~~ In the `busmon `_ app, all messages from the hub are processed to be formatted and displayed on a client's browser. We mark them up with a pretty-print format and use pygments to colorize them. In the example below, the ``MessageColorizer`` consumer simply subscribes to '*'; it will receive every message that hits it's local fedmsg-hub. The ``config_key = 'busmon.consumers.enabled'`` line means that a ``'busmon.consumers.enabled': True`` entry must appear in the fedmsg config for the consumer to be enabled. Here's the full example from `busmon `_, it consumes messages from every topic, formats them in pretty colored HTML and then re-sends them out on a new topic:: import pygments.lexers import pygments.formatters import fedmsg import fedmsg.encoding import fedmsg.consumers class MessageColorizer(fedmsg.consumers.FedmsgConsumer): topic = "*" jsonify = False config_key = 'busmon.consumers.enabled' def consume(self, message): destination_topic = "colorized-messages" # Just so we don't create an infinite feedback loop. if self.destination_topic in message.topic: return # Format the incoming message code = pygments.highlight( fedmsg.encoding.pretty_dumps(fedmsg.encoding.loads(message.body)), pygments.lexers.JavascriptLexer(), pygments.formatters.HtmlFormatter(full=False) ).strip() # Ship it! fedmsg.publish( topic=self.destination_topic, msg=code, ) Now, just defining a consumer isn't enough to have it picked up by the ``fedmsg-hub`` when it runs. You must also declare the consumer as an entry-point in your app's ``setup.py``, like this:: setup( ... entry_points={ 'moksha.consumer': ( 'colorizer = busmon.consumers:MessageColorizer', ), }, ) At initialization, ``fedmsg-hub`` looks for all the objects registered on the ``moksha.consumer`` entry point and loads them FedmsgConsumer API ~~~~~~~~~~~~~~~~~~ .. autoclass:: fedmsg.consumers.FedmsgConsumer DIY - Listening with Raw zeromq ------------------------------- So you want to receive messages without using any fedmsg libs? (say you're on some ancient system where moksha and twisted won't fly) If you can get python-zmq built, you're in good shape. Use the following example script as a starting point for whatever you want to build:: #!/usr/bin/env python import json import pprint import zmq def listen_and_print(): # You can listen to stg at "tcp://stg.fedoraproject.org:9940" endpoint = "tcp://hub.fedoraproject.org:9940" # Set this to something like org.fedoraproject.prod.compose topic = 'org.fedoraproject.prod.' ctx = zmq.Context() s = ctx.socket(zmq.SUB) s.connect(endpoint) s.setsockopt(zmq.SUBSCRIBE, topic) poller = zmq.Poller() poller.register(s, zmq.POLLIN) while True: evts = poller.poll() # This blocks until a message arrives topic, msg = s.recv_multipart() print topic, pprint.pformat(json.loads(msg)) if __name__ == "__main__": listen_and_print() Just bear in mind that you don't reap any of the benefits of :mod:`fedmsg.crypto` or :mod:`fedmsg.meta`. .. note:: In the example above, the topic is just ``'org.fedoraproject.prod.'`` and *not* ``'org.fedoraproject.prod.*'``. The ``*`` that you see elsewhere is a Moksha convention and it is actually just stripped from the topic. Why? The ``*`` has meaning in AMQP, but not zeromq. The Moksha project (which underlies fedmsg) aims to be an abstraction layer over zeromq, AMQP, and STOMP and contains some code that allows use of the ``*`` for zeromq, in order to make it look more like AMQP or STOMP (superficially). fedmsg (being built on Moksha) inherits this behavior even though it only uses the zeromq backend. See `these comments `_ for some discussion. fedmsg-0.9.3/doc/contributing.rst0000644000175000017500000000163612231547317020725 0ustar threebeanthreebean00000000000000Contributing ============ If you're submitting patches to fedmsg, please observe the following: - Check that your python code is `PEP8-compliant `_. There is a `pep8 tool `_ that can automatically check your source. Bind it to a key in vim? - Check that your code doesn't break the test suite. Instructions for running the test suite can be found in :doc:`development`. - If you are adding new code, please write tests for them in ``fedmsg/tests``. - If your change warrants a modification to the docs in ``doc/`` or any docstrings in ``fedmsg/`` please make that modification. I didn't sign up for this! -------------------------- :: ...all I wanted to do was submit a patch! Don't worry. If you have a contribution but the above guidelines are too much to handle, just stop by ``#fedora-apps`` on freenode and let us know. fedmsg-0.9.3/doc/proposal.rst0000644000175000017500000006472112362250750020056 0ustar threebeanthreebean00000000000000Proposal - Fedora Messaging with 0mq (``fedmsg``) ================================================= .. contents:: This proposal reviews existing services in the Fedora infrastructure, reviews the problem of complexity in the interaction of those services, reviews previous work by the `Fedora Messaging SIG (special interest group) `_ on AMQP, and introduces an architecture-level description of a solution using 0mq. ---- For discussion, check https://admin.fedoraproject.org/mailman/listinfo/messaging-sig Get (or modify) the source for this document: https://github.com/fedora-infra/fedmsg Authors: - Ralph Bean (threebean) .. note:: This document is out of date and should just be considered a "historical" document. What you're probably looking for is the :doc:`overview` document: the start of the narrative documentation. It is the most-up-to-date version of this page. tl;dr ===== We want to hook all the services in Fedora Infrastructure up to send messages to one another over a message bus instead of communicating with each other in heterogenous ways they do now. We're writing a python library called ``fedmsg`` to help apps handle this more easily. It's built on `0mq `_ and `moksha `_. Planned Stages of development/deployment ---------------------------------------- 1) Start writing ``fedmsg`` 2) Send messages from existing services (koji, bodhi, pkgdb, fas, etc...). 3) Consume messages for statistics, i.e. an independent statistics webapp. 4) Consume messages for user experience, i.e. any or all of rss, email, gnome-shell notifications, javascript notifications in FI webapps. 5) Consume messages for service interoperability, i.e. koji invalidates it's cache when it sees pkgdb messages go by on the bus. This comes last because we want to make sure that message-sending works and is reliable before we start making existing services depend on it for their functioning. Introduction ============ Description of the problem -------------------------- Fedora Infrastructure is composed of a number of services (koji, fedpkg, pkgdb, etc..) some of which are maintained outside the Fedora Project and some of which were built in-house by the infrastructure team. These are strung together in a pipeline. Think "how an upstream release becomes a package update", "How a new source distribution becomes a package." At present, many of the steps in this process require the maintainer to wait and watch for a previous step to complete. For instance once a branch of a package is successfully built in koji, the maintainer must `submit their update to bodhi `_ (See the `new package process `_ for more details). Other progressions in the pipeline are automated. For instance, `AutoQA `_ defines a `set of watchers `_. Most watchers are run as a cron task. Each one looks for `certain events `_ and fires off tests when appropriate. At LinuxFest Northwest (2009), jkeating gave `a talk `_ on the problem of complexity in the Fedora infrastructure and how this might be addressed with a message bus architecture. Each service in the infrastructure depends on many of the others. Some pieces directly poke others: git (fedpkg) currently pokes AutoQA from a post-update hook. Other pieces poll others' status: koji scrapes pkgdb for package-owner relationships and email aliases. This dense coupling of services makes changing, adding, or replacing services more complicated: commits to one project require a spidering of code changes to all the others. How messaging might address the problem --------------------------------------- jkeating's `talk on messaging in the Fedora Instructure `_ proposed the adoption of a unified message bus to reduce the complexity of multiple interdependent services. Instead of a service interfacing with its dependencies' implementations, it could subscribe to a `topic`, provide a callback, and respond to events. For instance, instead of having koji scrape pkgdb on an interval for changed email addresses, pkgdb could emit messages to the ``org.fedoraproject.service.pkgdb`` topic whenever an account's email address changes. koji could subscribe to the same topic and provide a callback that updates its local email aliases when invoked. In another case, the git (fedpkg) post-update hook could publish messages to the ``org.fedoraproject.service.fedpkg.post-update`` topic. AutoQA could subscribe to the same. Now if we wanted to enable another service to act when updates are pushed to fedpkg, that service need only subscribe to the topic and implement its own callback instead of appending its own call to fedpkg's post-update hook (instead of coupling its own implementation with fedpkg's). A message bus architecture, once complete, would dramatically reduce the work required to update and maintain services in the Fedora infrastructure. Other benefits -------------- By adopting a messaging strategy for Fedora Infrastructure we could gain: - A stream of data which we can watch and from which we can garner statistics about infrastructure activity. - The de-coupling of services from one another. - libnotify notifications to developers' desktops. - jquery.gritter.js notifications to web interfaces. - this could be generalized to a ``fedmsg.wsgi`` middleware layer that injects a fedora messaging dashboard header into every page served by apps `X`, `Y`, and `Z`. - An irc channel, #fedora-firehose that echoes every message on the bus. - An identi.ca account, @fedora-firehose, that echoes every message on the bus. AMQP, and 0mq ============= AMQP or "Broker? Damn near killed 'er!" ---------------------------------------- When discussions on the `Fedora Messaging SIG `_ began, AMQP was the choice by default. Since then members of the SIG have become attracted to an alternative messaging interface called `0mq `_. Recommended reading: - `What's wrong with AMQP `_ The following is recreated from J5's Publish/Subscribe Messaging Proposal as an example of how Fedora Infrastructure could be reorganized with AMQP and a set of federated AMQP brokers (qpid). .. image:: https://github.com/fedora-infra/fedmsg/raw/develop/doc/_static/reorganize-amqp-j5.png The gist is that each service in the Fedora Infrastructure would have the address of a central message broker on hand. On startup, each service would connect to that broker, ask the broker to establish its outgoing queues, and begin publishing messages. Similarly, each service would ask the broker to establish incoming queues for them. The broker would handle the routing of messages based on ``routing_keys`` (otherwise known as `topics`) from each service to the others. The downshot, in short, is that AMQP requires standing up a single central broker and thus a single-point-of-failure. In the author's work on `narcissus `_ I found that for even the most simple of AMQP configurations, my qpid brokers' queues would bloat over time until \*pop\*, the broker would fall over. 0mq or "Going for Broke(rless)" ------------------------------- 0mq is developed by a team that had a hand in the original development of AMQP. It claims to be a number of things: an "intelligent transport layer", a "socket library that acts as a concurrency framework", and the `sine qua non` "Extra Spicy Sockets!" Recommended reading: - `The Z-guide `_ The following depicts an overview of a subset of Fedora Infrastructure organized with a decentralized 0mq bus parallel to the spirit of J5's recreated diagram in the AMQP section above. .. image:: https://github.com/fedora-infra/fedmsg/raw/develop/doc/_static/reorganize-0mq-overview.png No broker. The gist is that each service will open a port and begin publishing messages ("bind to" in zmq-language). Each other service will connect to that port to begin consuming messages. Without a central broker doing `all the things `_, 0mq can afford a high throughput. For instance, in initial tests of a 0mq-enabled `moksha hub `_, the Fedora Engineering Team achieved a 100-fold speedup over AMQP. Service discovery ~~~~~~~~~~~~~~~~~ Shortly after you begin thinking over how to enable Fedora Infrastructure to pass messages over a `fabric` instead of to a `broker`, you arrive at the problem we'll call "service discovery". In reality, (almost) every service both `produces` and `consumes` messages. For the sake of argument, we'll talk here just about a separate `producing service` and some `consuming services`. Scenario: the producing service starts up, producing socket (with a hidden queue), and begins producing messages. Consuming services `X`, `Y`, and `Z` are interested in this and they would like to connect. With AMQP, this is simplified. You have one central broker and each consuming service need only know it's one address. They connect and the match-making is handled for them. With 0mq, each consuming service needs to somehow `discover` its producer(s) address(es). There are a number of ways to address this: - *Write our own broker*; this would not be that difficult. We could (more simply) scale back the project and write our own directory lookup service that would match consumers with their providers. This could be done in surprisingly few lines of python. This issue is that we re-introduce the sticking point of AMQP, a single point of failure. - *Use DNS*; There is a helpful `blog post `_ on how to do this with `djbdns`. DNS is always there anyways: if DNS goes down, we have bigger things to worry about than distributing updates to our messaging topology. - *Share a raw text file*; This at first appears crude and cumbersome: - Maintain a list of all `fedmsg`-enabled producers in a text file - Make sure that file is accessible from every consuming service. - Have each consuming service read in the file and connect to every (relevant) producer in the list In my opinion, using DNS is generally speaking the most elegant solution. However, for Fedora Infrastructure in particular, pushing updates to DNS and pushing a raw text file to every server involves much-the-same workflow: `puppet`. Because much of the overhead of updating the text file falls in-line with the rest of Infrastructure work, it makes more sense to go with the third option. Better not to touch DNS when we don't have to. That file is ``/etc/fedmsg-config.py``. It should define a python dict called ``config`` which may look something like the following in a development environment:: # TODO -- update this. It is out of date. config = dict( # This is a dict of possible addresses from which fedmsg can send # messages. fedmsg.init(...) requires that a 'name' argument be passed # to it which corresponds with one of the keys in this dict. endpoints=dict( # For other, more 'normal' services, fedmsg will try to guess the # name of it's calling module to determine which endpoint definition # to use. This can be overridden by explicitly providing the name in # the initial call to fedmsg.init(...). bodhi="tcp://*:3001", fas="tcp://*:3002", fedoratagger="tcp://*:3003", # This is the output side of the relay to which all other # services can listen. relay_outbound="tcp://*:4001", ), # This is the address of an active->passive relay. It is used for the # fedmsg-logger command which requires another service with a stable # listening address for it to send messages to. relay_inbound="tcp://127.0.0.1:2003", # Set this to dev if you're hacking on fedmsg or an app. # Set to stg or prod if running in the Fedora Infrastructure environment="dev", # Default is 0 high_water_mark=1, io_threads=1, ) ``fedmsg`` will look for a config file in ``/etc/``, ``$HOME``, and ``.`` (the current working directory). If it finds multiple files, it will read all of them but overwrite values from the system (``/etc/``) file with the more local file (``$HOME``). Different buses --------------- TODO - - critical and statistical buses (critical is subset of statistical). Authn, authz ------------ TODO - - (func has certs laying around already). - Read http://www.zeromq.org/topics:pubsub-security. ``comphappy`` reports that it has some interesting points. network load ------------ TODO - - calculate network load - http://lists.zeromq.org/pipermail/zeromq-dev/2010-August/005254.html fringe services --------------- TODO - - example of building a relay that condenses messages from `n` proxies and re-emits them. - example of bridging amqp and 0mq - bugzilla-push - https://github.com/LegNeato/bugzilla-push Namespace considerations ------------------------ In the above examples, the topic names are derived from the service names. For instance, pkgdb publishes messages to ``org.fedoraproject.service.pkgdb*``, AutoQA presumably publishes messages to ``org.fedoraproject.service.autoqa*``, and so on. This convention, while clear-cut, has its limitations. Say we wanted to replace pkgdb whole-sale with our shiney new `threebean-db` (tm). Here, all other services are subscribed to topics that mention pkgdb explicitly. Rolling out threebean-db will require patching every other service; we find ourselves in a new flavor of the same complexity/co-dependency trap described in the first section. The above `service-oriented` topic namespace is one option. Consider an `object-oriented` topic namespace where the objects are things like users, packages, builds, updates, tests, tickets, and composes. Having bodhi subscribe to ``org.fedoraproject.object.tickets`` and ``org.fedoraproject.object.builds`` leaves us less tied down to the current implementation of the rest of the infrastructure. We could replace `bugzilla` with `pivotal` and bodhi would never know the difference - a ticket is a ticket. That would be nice; but there are too many objects in Fedora Infrastructure that would step on each other. For instance, Koji **tags** packages and Tagger **tags** packages; these two are very different things. Koji and Tagger cannot **both** emit events over ``org.fedoraproject.package.tag.*`` without widespread misery. Consequently, our namespace follows a `service-oriented` pattern. The scheme ---------- Event topics will follow the rule:: org.fedoraproject.ENV.SERVICE.OBJECT[.SUBOBJECT].EVENT Where: - ``ENV`` is one of `dev`, `stg`, or `production`. - ``SERVICE`` is something like `koji`, `bodhi`, or `fedoratagger` - ``OBJECT`` is something like `package`, `user`, or `tag` - ``SUBOBJECT`` is something like `owner` or `build` (in the case where ``OBJECT`` is `package`, for instance) - ``EVENT`` is a verb like `update`, `create`, or `complete`. All 'fields' in a topic **must**: - Be `singular` (Use `package`, not `packages`) - Use existing fields as much as possible (since `complete` is already used by other topics, use that instead of using `finished`). Code Examples - 0mq and ``fedmsg`` ================================== This package (the `package containing the docs you are reading right now `_) is ``fedmsg``. It aims to be a wrapper around calls to the `moksha hub `_ API that: - Handles Fedora-Infra authn/authz - Handles Fedora-Infra service discovery - Helps you avoid topic and message content typos. - Gets in your way as little as possible Examples of emitting events --------------------------- Here's a real dummy test:: >>> import fedmsg >>> fedmsg.publish(topic='testing', modname='test', msg={ ... 'test': "Hello World", ... }) The above snippet will send the message ``'{test: "Hello World"}'`` message over the ``org.fedoraproject.dev.test.testing`` topic. The ``modname`` argument will be omitted in most use cases. By default, ``fedmsg`` will try to guess the name of the module that called it and use that to produce an intelligent topic. Specifying ``modname`` argues that ``fedmsg`` not be `too smart`. Here's an example from `fedora-tagger `_ that sends the information about a new tag over ``org.fedoraproject.{dev,stg,prod}.fedoratagger.tag.update``:: >>> import fedmsg >>> fedmsg.publish(topic='tag.update', msg={ ... 'user': user, ... 'tag': tag, ... }) Note that the `tag` and `user` objects are SQLAlchemy objects defined by tagger. They both have ``.__json__()`` methods which ``.publish`` uses to convert both objects to stringified JSON for you. ``fedmsg`` has also guessed the module name (``modname``) of it's caller and inserted it into the topic for you. The code from which we stole the above snippet lives in ``fedoratagger.controllers.root``. ``fedmsg`` figured that out and stripped it down to just ``fedoratagger`` for the final topic of ``org.fedoraproject.{dev,stg,prod}.fedoratagger.tag.update``. ---- You could also use the ``fedmsg-logger`` from a shell script like so:: $ echo "Hello, world." | fedmsg-logger --topic testing $ echo '{"foo": "bar"}' | fedmsg-logger --json-input Examples of consuming events ---------------------------- Consuming events is accomplished by way of the fedmsg-hub. For example, in the `busmon `_ app, all messages from the hub are processed to be formatted and displayed on a client's browser. We mark them up with a pretty-print format and use pygments to colorize them. Here are the *important* parts: you must define a new class which extends ``moksha.api.hub:Consumer``, declares a ``topic`` attribute and a ``consume`` method. The topic is used soley for constraining what messages make their way to the consumer; the consumer can *send* messages on any topic. You may use 'splats' ('*') in the topic and subscribe to ``'org.fedoraproject.stg.koji.*'`` to get all of the messages from koji in the staging environment. In the example below, the ``MessageColorizer`` consumer simply subscribes to '*'; it will receive every message that hits it's local fedmsg-hub. Here's the full example from `busmon `_, it consumes messages from every topic, formats them in pretty colored HTML and then re-sends them out on a new topic:: import pygments.lexers import pygments.formatters from moksha.api.hub import Consumer import fedmsg import fedmsg.encoding class MessageColorizer(Consumer): topic = "*" jsonify = False destination_topic = "colorized-messages" def consume(self, message): # Just so we don't create an infinite feedback loop. if self.destination_topic in message.topic: return # Format the incoming message code = pygments.highlight( fedmsg.encoding.pretty_dumps(fedmsg.encoding.loads(message.body)), pygments.lexers.JavascriptLexer(), pygments.formatters.HtmlFormatter(full=False) ).strip() # Ship it! fedmsg.publish( topic=self.destination_topic, msg=code, ) Now, just defining a consumer isn't enough to have it picked up by the ``fedmsg-hub`` when it runs. You must also declare the consumer as an entry-point in your app's ``setup.py``, like this:: setup( ... entry_points={ 'moksha.consumer': ( 'colorizer = busmon.consumers:MessageColorizer', ), }, ) At initialization, ``fedmsg-hub`` looks for all the objects registered on the ``moksha.consumer`` entry point and loads them Console Scripts --------------- It makes sense for ``fedmsg`` to also provide a number of console scripts for use with random shell scripts or with nagios, for instance. Currently we have implemented: - ``fedmsg-tail`` - watches all endpoints on the bus and prints each message to stdout. - ``fedmsg-logger`` - sends messages over the ``org.fedoraproject.dev.logger`` topic. This requires that an instance of ``fedmsg-relay`` be running *somewhere* and that it's inbound address be listed in ``fedmsg-config.py``. - ``fedmsg-relay`` - a service which binds to two ports, listens for messages on one and emits them on the other. ``fedmsg-logger`` requires that an instance of ``fedmsg-relay`` be running *somewhere* and that it's inbound address be listed in ``fedmsg-config.py``. - ``fedmsg-hub`` - the all-purpose daemon. This should be run on every host that has services which declare their own consumers. ``fedmsg-hub`` will listen to every endpoint defined in ``/etc/fedmsg-config.py`` and forward messages in-process to the locally-declared consumers. Systems and Events ================== All messages will be transmitted as stringified JSON. List of systems, their events, and associated fields ---------------------------------------------------- Each item here is a service followed by the list of events that it emits. Each event is followed by a list of services that will likely consume that event. See also :doc:`status`. ---- - AskBot - TODO - Brainstorm a list of potential message topics. - AutoQA - TODO - Add these hooks. j_dulaney is working on this. - ``org.fedoraproject.{stg,prod}.autoqa.package.tests.complete`` -> koji, bodhi, fcomm - Bodhi - This is done in a branch in git. https://fedorahosted.org/bodhi/browser/bodhi/model.py?rev=1712d35e79ea3c27b7134006f0afa62ffd7f1769#L446 TODO - merge and push to stg then prod - ``org.fedoraproject.{stg,prod}.bodhi.update.request{.TYPE}`` -> fcomm, autoqa - ``org.fedoraproject.{stg,prod}.bodhi.update.complete{.TYPE}`` -> fcomm, autoqa - TODO - These hooks still need to be added. - ``org.fedoraproject.{stg,prod}.bodhi.update.push`` -> fcomm - ``org.fedoraproject.{stg,prod}.bodhi.update.remove`` -> fcomm - Bugzilla - TODO - get AMQP messages from redhat. Run a service to translate. - ``org.fedoraproject.{stg,prod}.bugzilla.bug.create`` -> fcomm - ``org.fedoraproject.{stg,prod}.bugzilla.bug.update`` -> fcomm - Compose - TODO - Add the hooks - ``org.fedoraproject.{stg,prod}.compose.compose.complete`` -> mirrormanager, autoqa - Elections (TODO -- what is the app called?) - TODO - Add the hooks - ``org.fedoraproject.{stg,prod}.elections...`` <-- TODO. Objects and events? - FAS - All of these hooks have been added. TODO - merge and push to stg then prod. - ``org.fedoraproject.{stg,prod}.fas.user.create`` -> fcomm - ``org.fedoraproject.{stg,prod}.fas.user.update`` -> fcomm - ``org.fedoraproject.{stg,prod}.fas.group.update`` -> fcomm - ``org.fedoraproject.{stg,prod}.fas.group.member.apply`` -> fcomm - ``org.fedoraproject.{stg,prod}.fas.group.member.sponsor`` -> fcomm - ``org.fedoraproject.{stg,prod}.fas.group.member.sponsor`` -> fcomm - ``org.fedoraproject.{stg,prod}.fas.group.create`` -> fcomm - ``org.fedoraproject.{stg,prod}.fas.group.update`` -> fcomm - ``org.fedoraproject.{stg,prod}.fas.role.update`` -> fcomm - Koji - TODO - Add the hooks - ``org.fedoraproject.{stg,prod}.koji.tag.build`` -> secondary arch koji - ``org.fedoraproject.{stg,prod}.koji.tag.create`` -> secondary arch koji - ``org.fedoraproject.{stg,prod}.koji.package.build.complete`` -> fcomm, secondary arch koji, SCM, autoqa, sigul - ``org.fedoraproject.{stg,prod}.koji.package.build.start`` -> fcomm - ``org.fedoraproject.{stg,prod}.koji.package.build.fail`` -> fcomm - MeetBot (supybot?) - TODO - Add the hooks - ``org.fedoraproject.{stg,prod}.irc.meeting.start`` - ``org.fedoraproject.{stg,prod}.irc.meeting.complete`` - NetApp -- FIXME, the topics from netapp should be reviewed. They seem ambiguous. - TODO - Add the hooks - ``org.fedoraproject.{stg,prod}.netapp.sync.stop`` -> mirrormanager - ``org.fedoraproject.{stg,prod}.netapp.sync.resume`` -> mirrormanager - PkgDB - TODO - Add the hooks - ``org.fedoraproject.{stg,prod}.pkgdb.package.create`` -> koji, secondary arch koji, bugzilla - ``org.fedoraproject.{stg,prod}.pkgdb.package.remove`` -> koji, secondary arch koji, - ``org.fedoraproject.{stg,prod}.pkgdb.package.rename`` -> bugzilla - ``org.fedoraproject.{stg,prod}.pkgdb.package.retire`` -> SCM - ``org.fedoraproject.{stg,prod}.pkgdb.package.owner.update`` -> koji, secondary arch koji, bugzilla - TODO - lots of ``org.fp.user...`` events to detail here. - SCM - TODO - Add the hooks. This is blocking on getting an instance of fedmsg-relay stood up in production. That, on the other hand, is blocking on getting the fedmsg wrapper around moksha done so that the relay doesn't eat up 100% CPU. - ``org.fedoraproject.{stg,prod}.scm.repo.checkin`` -> fcomm, autoqa - Tagger - These hooks have been added. Need to push to stg then prod. - ``org.fedoraproject.{stg,prod}.fedoratagger.tag.create`` -> fcomm, pkgdb - ``org.fedoraproject.{stg,prod}.fedoratagger.tag.remove`` -> fcomm, pkgdb - ``org.fedoraproject.{stg,prod}.fedoratagger.tag.update`` -> fcomm, pkgdb - ``org.fedoraproject.{stg,prod}.fedoratagger.user.rank.update`` -> fcomm, (pkgdb?) - ``org.fedoraproject.{stg,prod}.fedoratagger.login`` -> ?? - Wiki. This is implemented as a mediawiki plugin in ``extras/mediawiki/fedmsg-mediawiki-emit.php``. - ``org.fedoraproject.{stg,prod}.wiki.article.edit`` - ``org.fedoraproject.{stg,prod}.wiki.upload.complete`` - Zabbix - TODO - Add the hooks - ``org.fedoraproject.{stg,prod}.zabbix.service.update`` -> fcomm Other Ideas ----------- - Error messages from cron jobs - The Nag-once script could be enhanced to send output to the bus - Nagios alerts fedmsg-0.9.3/doc/topology.rst0000644000175000017500000000055312231547317020067 0ustar threebeanthreebean00000000000000Bus Topology ============ This is an overview of the topology of the fedmsg bus as it is deployed in Fedora Infrastructure. This document along with the :doc:`status` will evolve as we are able to integrate more services. .. image:: _static/topology.png The section on the right labelled ``(the bus)`` is the NxM connection mesh described in :doc:`overview`. fedmsg-0.9.3/doc/encoding.rst0000644000175000017500000000055712231547317020005 0ustar threebeanthreebean00000000000000Message Encoding -- JSON ======================== .. automodule:: fedmsg.encoding :members: :undoc-members: :show-inheritance: .. autofunction:: fedmsg.encoding.dumps .. autofunction:: fedmsg.encoding.pretty_dumps SQLAlchemy Utilities -------------------- .. automodule:: fedmsg.encoding.sqla :members: :undoc-members: :show-inheritance: fedmsg-0.9.3/doc/_static/0000755000175000017500000000000012371202100017063 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/doc/_static/diagrams.png0000644000175000017500000012546312231547317021414 0ustar threebeanthreebean00000000000000PNG  IHDRdnIDATxy|EI !2"N@QVA|ᆃp2Ey8:}AAaD$*[ !,` $!@@G{NWWuwuSO?TLj@4 ` hD D @4 @4 hD  hD DChhh޽e 4xm@G@@@.\XVVVCU2Ω w}wƍM?z֤mkku#Sԅj .]}'dyʕ,zvEEEZZڄ $ꫯh뮻:rb, D uZ4?#/,?~*Ɏ;hDqb#PGD@ 8kLL,;ϯܤg_zU=0)-[޲eˠ'Kd IIIǏ馛Zh1dȐ޸- {=ztHHHppȑ#%iF4u-Ȗ*y dl"##{-_~qIOO't"+oܸL͵j|7ݻwc 4hΝ ,ܹs6mf̘R-AG .,--5i 6ˌk%ȩ1oyirٳztZ_}=iŠ^͍ʹw(i`:{ݭ?cG5F<) C}׮]j  iƍ#dZZĉ-Z :tӦMU K.mӦC%<#r>7iD3Ydʰ!UppH#G _(V9ӟ$)j_~WX!Zz'xSN)ݸ5*Ν;7yduz, }Rm7qUYsc3C哷*&n0eQ"¦O0)Lfޫ_ ʹw(i`:{-ӧTX^jD4@A.}2, p*R8} 0{ݻ G}eU2dvƌ= p'8}h0?%xhphK\,๢Y.Ds\lj\Gg r '~ujKD,Y.E PD!fU\hp_2wq'xsΕw@퉆ڟի֭gϞ CBBfϞh:$j^ĉSL`}ɾ^2 gl۶|jt̛7G^^^o{ ڹs :wܦM3f8Z'|244׷C?T^ƌТE … KKK v===]ҥKyxxƍUK+mÆ zleTIݻA9֦6.С0JJUdi>j-[޲eˠ'i)a\8˥ Rw-.\T4,]ׯ_ȿrrr>#4i$yY}_ ^y]92\+((HLLk[WѲwq`  ?4lP7Ycmj3m47##CZ-&׊^r_o'q,3gԤ\ю7NA F+V߶m,ˈf~^^,7nZjJvƢAOaalp- ǏeճƹsS,Yr1-[ٳG%xyJ#Fп|rrMm&;6 .շZ_W_: %\:uj&L09RfaIGkOtΜ9p¬YdȤhhݺ,_|ٺ&"#D:dPPl)J5*r]%ܺ SlɎ0.hZ%*YQQ?qK Y.SRR@{V *Yiq$YYYӦM ӌ AcǎU$''ˠuJa-rsskrOK U(Ǧhm4N[،h&qK Y.rѠ!W~VKӬY3T;vXzG/-- xW*UR7ۧ6OXT6:'Os  U\y6l_>S. ^zuzz\~WRѣڵӏ¨Q$gܹ999;w8. ?.}۷o/,,LJJz衇~kڀ'lݺ䋐URȐoRPiJX؞PV/BjT*[ hpWrs_}x. {2e⾾Rӧ럸/]M6ϝ;7yd1Z``,k'O|':u$_~"$s!!!_[gϞ{^v2+Qb YդIUZCI >}Hׯ7b-@4%\Y#W9k#GoT{  u{w݅)))KN*hp  u~Ȑ!ڵ3f@ nR7 n4˥+fjK5ʹ!@ 5eEC DG`4rh  K]W<:1ekɯnI N6M}D~'9ӧO7 pW\:4Qu&fIV-..$-oGA%%%iw,MDzT?7o\-Zt/poPg4?WӯODYդ>M5i0YF %֯"hpY.('it GjR4J_㭷B4; uKcb=sJU.ȐVK 2hIm\KR7R։yJOh& 11Q̨mٯ_p?i\M4QV-M6|b=sJU4Vji~Grj&1WΝ_d B7 u|_P3*PgZh2dEET[Zj::Oiuֲ|e뚈\o?mD[r+^zrϞ=eYr(Ӭ6 iظ&1 6o5\Nw,FLj.?\͢do6 Ϝh{7nXW) ?,-- xW:rDTp5mTkMt0nI jEEo~텅III=ЯyQWhpY. gϞL՞XgT9>}Hׯ70Ġ:>O],68yO<ѩS'Q*g }w .]Y+ZЭ甫yh@4*n4ke DT 7se\BcjI4,g ?%hp,NAY.DKfw .C4Zf L4jKp3@4 @4 hD hD Dk@G@@@.\XVVVk[s%}ݍ7Q lQuXrwnܸ"22bCCCohq޽]VB r}h5q;) zUTTM0Agdm\\\jq(˗nݺI7|SuKXB>s)))zd\9 ޭ9`n*qDKMMdǎ=S4xyyZO&^zUݒdmzzz-tڸM6~~~"|K4ԚoXG4 ,OWmƏM7hbȐ!~ O>d.]$dkw;Uѣ\3\R(ke/v,--q6l(-_ ,^+;z萐#GJҺ(޽zРA;w\`AΝel1c\אhʒ С,ǛEEEo X-IŰF1Fweرcl"^^nիW#;At N'њ޲eˠ'ꕓ=WSjFcDE?,IJJ IHz}|G*);#˲Yf7۷޾Æ ?TL6VBS6lh<+#dddme~A o{,66V_Ӆkں@]tNx-eLr믿.I{Qo7)}}h@4^4TTTȥz63fH(TÇKo߾*)yJ^b>Ӹ4 e-b /IٳG%whhŨQ$SJS]vIR2-ڶm,`$'2 I%Ǝ+k%$''KS/XnK4ؼ7?9Si͵r-CfXXjŞN B~~~^iK.x|^]wP/lNxd:xN5Uc!zѠȐtqk׮+ȸ4emffJ(DCӪ?⦫*^w˗ikO?Mh_׹'ٳgOpv&uY'lNxׂh0S'nWhDC] ߯Kȑ#}?~?Wk%׾}۷&%%=C'qi*̝;7'''>>^Ү];[VˋIT/(9}48!!{r͛7Wիe<ꫯѣG;7&hW^ց[oz/xEZZZIIɱc?o^x ѿiˬ]!`p"8k^ Ljl4D hظqHL_=#207iD^/N<OtIf~/;wnAAA(dҥmڴ4޺uz߻wkVhkׂhȑ_A?.w}ڥ͊M2EF/RӍi0'NhѢСC7mdŤ}ׯ_CBB6mڨQ#=ܣ:U)҆YJڵ '^m T 5Uc!o\M7݄):DNN\oI~g  v7D @4 h J'IֲemN @4 @4 h(hD @4@4 hD  h G:ujNkv튭rk[+ECddĩ VUPPPTTtղrl \)wg +++… $fa+lVboL:7AֱcΝ;'1[a+l.Cnݺգ޽{>,1󅅅 [a+wX4^xѣ֖-[$f%''gffc+lVb 'ow͚5 N|2V]lXVںuO?tI;Vnd+@4Hǧm۶+**R5Z[̅ Vh" Ό rrr7n,+Ueee ,ҥo&Md0`|;w=ZrΝh0Ys1Zͽ/^\&r;ҟzM6իvn֬Yǎ~ᤤ${ mf͚eq# Bol qG~~m_~Y2]p!++kڵC 4Ѡ8p䄅մhp߫g}De ]f w8p$?j o߾NjD{饗lܹsgϖwߍh@48)@hذ~+:uҷJH7==3OX֭[k9G3 wD@#Fz_ml%i~?hpNF|ׯ_Woɲ\pAڵkrcޣ4H9 'NG}TejJ?88X%Z|/h裏eyhرcw伓ߵkwTgΜ1ѦM4h CFw ѠYRg 0hnSO2eYr:voFFFECRRƯŝvB>lذJOc >ݸqF֊OίTx'Ǝ+9678q^! m۶/J,"{tt,>x`nnnvvk&͛iČ3T///cff,S5~~O>Q}uil4Dd M!EΜ9s۴R~~vܸqbϿ/6KOTMFڟ;M<СCX  DC9 """666)))##[a+l.DC /4mt̙˖-KNN>w\qq1V]l. m۶mPiԨm/o.^XZZr[Eqȑ]v}+#+W\z%Z۷رcr# vVʍl. ٩\r3g%NqqqEEVʍl. r^tITĬÇGߟpС'Ndff:qrŢT.t$fɵ7HKK_rss%Z9qrŢZʕ+r2_H8IXis [a+lZ[E?;a+lꇭŢ4iFX@4 *Ak` zрh Pb A{@X@5Dk` % J5h/ XkDk` % J5h/ Xk^@4(֠hW6àAkhٳg YcΜ9Gam z pAQ'''k` ϱڵu{<=zƄ 'XDC%,X:P~Xkx5}@4TBzzE (((LkdffZ[kx5}@4TСCrԩXkx5}@4T¢Er˖-l%K5<> *!''GEk׮y54iѶm[Q֠P9&MRrXkx5}@4TªUTܻw/XnO?5<> *$ SNkx5}@4TSO=5|xg,X<>P 111k` zрhD @4 N49rdԩ:u l]v9sfzz:P#DFFJYpaJJJ^^o{ѹsh"&& hwA7Z*,,,++KdDqqk***oL: P8p;#ҥKEEE2tЭ[aƍw %%%l@4T/aqqq;vOII9{+W_N@4T ^ǎ NHH8u\ $///**j׮]%%%oDC= >=Ji\yرnܸqU,PF':h(,,$| hpu]\haڵ۷oOLL<}t~~>рhp?% 5Ak֬>p@ZZZ^^)СCǏ馛Zh1dȐM6nܸW^6l(m߾}G 9r$-[QQ1o޼=zpWZV$*++3Yyܺu[l4qtbٳg|P__:=-r UJҥ622C+^{rN^z۶m]\7#DCbbO~gec jmLL$㎌Ȃ42> <̙3V$e˒˵#Ν;7**… ׋/(ۼ+̂ HrذauR$/^|ʕ'Oʾ pӰaC{m9qℿXX <8i$Cf= UbG3e-YDRipm{eڬ-H DCuڼ`=\}*_Z}ԋI&9BXeF44o\a1 fߡC; N D @5,KN˖-Ճtڵа0Y$DzyygoR}ks6V]4$%%Yi96[SSS}g4Sutw'5x¸i@4FPSLi5L"9|AR811q„ s=Рkp3f0(7t,H^b0Lg͚ejY_a{-?_Ohрh>w}gun|zvmꯢW*ACM׿U;b@sl:u}&?i0IAղdG66l`hhӠݴDP׹~+-4hK$!L`(#$ nIIIy.W+{&DsO stv󾾾D*!99UV"m&ԩSDCU [kn"D4 U;v 3ϟ߯_? " 2o<_@=o߾?ڵkcbb *xQ,@a|ADDDlllRRRFFFAAPU$ioz*z6m:se˖EEE%'';w h*V^ܙFvm/_|ŋoDCU)++ 4> 4> 4I@4IDIDIDDDD $  $ $ $ O O~ >Oٳ{@3g{>Ga@4ڌ>>>999I@4ҵkW}=`p=z &`@4 X诿> ?[D瀀,"33'KJJ \СCzԩI@4 -Z[l&Z,Yɘl:ANN׮]&rlҤɶmhCL4Iٳgc 'vYj {PXnɟ~ kQRRЩS'L$ zc;<3 ,hsĤb'hD @4E9rdԩ:u lFzk׮3gLOO'^H .LII \ѣGΝۢEt&uxhޱcAjժ, ׮]^[7xcԩ:y.]***^N Cݺu+Q"{ܸqǏȐ^RRR.:R4^x(Ygرc|||JJٳg\ruw? :R44hЀY9vXHHHtttBB©Sd---uO^^_TTԮ]KJJ   |۹T}=1ccc:QXXi6nX2}}}e٢.z uKruj L3VZvO>xE6J7|gU+W{ĉ2>|ݻ7рhf͚!dhhodyf{ljD'NE(111;2n D"H3gZYԖ˖-KJJ*//׎8wܨ .^/l+? HO?$ˈ ^{5`…Cϟ}7oB|͏=Q Æ ŋ_rE$x̜<z+콒6fY޾}J9rD}UÇKr޽*gFeTݻwKR2]rA݊d[n^J-NJ!ӽϝ;رވ#dm߆ .YiЪU+Yo~'uw#{ƍڠ IdAAuX++̚5K ???pu~/Ện׮]{rƎ+9;-,))Uk!Oހ̙sy3gMOECHHڪ رcҖz[}Y!?eٲe͵b}$%SVi4L6-,,L;]\h=n8Yn:kc`'Z6kL2TrΝO e׏,9-[6:wwy u?㮻877W})YhDÿ9zz<>>^wJJŋm۶)bK̔!-tܹs/^Ν;#}pRѣ͜@4/'NxG$b6iDFqO$S{½'mȑ= {Ξ  Ax^ |uh@4 ߈@4 Uu<}||L^>pC=ԭ[7???D5BBBHcGҪѶmn꜈DCٳ܀:L0EC<ڀg̘aoE:q$߶"PKbŊJ;w=z-^}Ն >IIIŧNH:p@:kT4cnС")Ξ=2$)MHH;gcEE}a b|իI-"9aaa\wi_٣*Edt= `РA?oѹs6mu'ľÇl2((hĉMlmKI / k׮ՊݲeAQ`挰(?22Ry{NޟH [o`=e'}4m… ϟUC<Ӣ|qW'DMi(//Sg6'4se)000Yf24 jr/XdѲ\XX111Ϸre,/_(__JEիW5j$RuSv$kw )n͚5K//n{V,[t}.]io*}Ryy~3EiҤIXXߥjz.MD6Dy NlYhY۞P3g,ZH{tDCmz]Xj}WQQѹstE}[oU333mi]hSzB󱄄u-͜,K,߿vv~ߚKhMVithK+WK!--MJ:t,^DC{]X/P/z<^t8DTTzK۫K ɢ=zt^^~ߚKhK3''Ѡ"_h}o}Wh@4  0jԨ vm:C4y7]^&5…:Dۋ$|ײu]Z~}-K#07HMۻwҩS.r;v~*)D |7X^. ,߸qhǀ 6XL+J6,:ԠAMr&u@4ozAͤT$/ ,DPI 6Aq9cǎE4 Y]RRRÇf `#Fv*rǏKR@4oN좟{B 2 `VzII h`A]u:th] i@4  7|. w,i6lX<0.w '7 2ߠKDìYضm[/B;Tމ~Kr'O h0 | qqq6AtjϞ={h>}ن 9A94h7- hp=7h0@}2cS;h@4E "cf =h@4Q*Egry___D򱃽\!vHNNnժxݶmN:h@48oPExm.#֮]իWhHHHѐK@40 ǎuODCtt4D|3o<_q@By߾}k$&& 7hpGe,^XT|!iRRoD "\Imڴo^8]Gz6m:se˖EEE%'';w h`ADkzpooP7hԨm/zxbii)|PVVy={l޼9""Bdʕ+WK/_^m߾}ǎϿv|P^^^TTsi 2>۶mr 񣣣ccc㓓Ϝ9s⊊ 7 PPPpRRRC/pС'N* 'E " REHSNgpiii"٥GrsswDqh ժ*իEEEW\QҥKu/E]~hh`ADCiE9DjDC V 7h`jl0  h`:  h`:  h`  h`  h$7uQ40 B4iF 7|PEDa|7@48po hdA@4|7@48!o @> h @> h @>@'@'@'h'h' h' h'I@4I@4I@4I@4x$ 0h $ ̞=^~>s̱}D8x㓓}D/]vsWѣGk0aDY`u믱 hCzzEt(((2*233} :TNMD`ѢEeleɒ%z&h|5l.&M(l۶-> :ĤIT={6| `UVw^uu)駟 %%%:uO*ᩧ?>v3<`:GLLLjj*v| @4 hD j#GL:SN n#}Եkי3guxhp”ߠn#}tѹsh"&&ܽ|DCvvvpp;nǪU²$_v--Eo1uTB2pwyG"K$uxh:t֭[nq?~<##C"xII[\uxh x"qMرc|||JJٳg\rx^n)4h@t_;p)KKK뾣ux 󋊊ڵkWrrrvvvII :DC :t>L>]r}Q-СC_VVVi[pG)yEɺ\~X1xFFFaa!hִ \y>rnV~Zɹ=bNXt#Ѱv۷'&&>}:??рhں \W^-;>*yҥ h2e$-Zhc͚5HKKC4 jnuQ m۶UNiܸFDDLY+3gX?njѢŐ!C6md6lЫWH«Z[QQ1o޼=zxyy}=:$$$88xȑe֭ÇoٲePPĉm> 1{ 7n6JK*mۦJջwo6ΠbŊݻK xΝ;ifƌ'Noo ={' С,߿d+Z nuWoײojj,ϝ;WN*/H,wM>11ǧqqq?D@N}pJ/R1cHUȑ#۷>ٳG%eA#FpEHrJ.Fҗ{nIJ~˗daa$Z@4iRR{7AP%|8!A|C5\%kkgcgvDI2??_T3 jJ~8Vg : uW͛7˾O>kך6mz7K-"񴴴T8૒S"w`mQTI-a}D3ͱW`PPue lgΜ8݋ JC*}pRѣټ! u4|kȍ5*))k׮5iDeJdĉ<>٦sߛɅT>}DssÆ U:_F k#G@aٲemڴȬ9FDDH{V#RpʕRtI8pʔ)۷6}tw a xh%eڻрh {={\}?uD󾾾)6m4dvڍ30  ܪU+GH! //8ȥ\g,x^n)c⠛2~I𝖖-Eüy{9;RQQѷo|ڵ111u:R4=zhv,^8 >MJJ(((uAM6|իWnAVV /дiә3g.[,***...99ܹsnx^n)$j^:<<ۻ5^~/BŋKKK:R4eff=ztϞ=7orPWޑ>Z~};vL.]u('k㢪aF%%s53zmY/e_+X루/~7-u6VhKyA  EA0 .{~ga`yϹ9y?S[VVFGp:\z5!!!K@`&11Q  r:S(]]]#"u:v'jjj(PXX ;rrr|oss:C!#RD߿O񒒒n~5bT*}G9xd!u) Ng ru@_CB1݈:D`DJCϣ91 CF4H @i@i4H 4H@i@ 4H Q]]aÆlܸfxȿSO9sfHo߾}---#3p@ɏ(33'|嗝8 qʔ)?sqqYM&Ɇ9E=xȑ#3gΤ>Ǐ7xilːmI~kV\I}BBBp@z)VuҨϜ9sA8jjjƏ?nܸ _Ϟөi8H`Cjyy9+D"*.]T(LgO<񄭭ŋ_sNww &gxi4wll쀎rG 411aoݺEtb **͓KKu5QߡbZٛ7ovuu:u*urCNvvv2{ikkܺ>L=|MOvvڵk'MD[dɅ n{Ǭ ٢QKKKC9T #LP1i -k~1. 'O#fSS+666*C /P[[_/HP7i7rbb"snc@w:@4geeuttpYR-ATr? ŴFz:._oi#r.\ȭ[HHٳgi{裏% wޥseŌ 33 EEEi(%N6,QRRL&̤ݡ΄lєi{OHZź 5i=-,,YmVfj*en &Q`@n:Jr:HYJԄŊtbCCus~NaOJJ +޼yST*3 ǎp T< 97H=pC PVVƊT\dI_DuQ#h VL[QQ믻qyzjV Z[[5~Gבsvvb_2iJ=P|uFP.^j2u n v?LC_1۷ĉ'k& 얰'A[f'堓_3f % +^vM4ΟboOs_f 퉳gz~){Q.lk 1XYYhTYYY!8NA=z@LW; SLa@p<Jç~jjjvZR&]f ٻw/44zCޠ ;io~CgqqqJϜ9CˋQQQԇbvvڵk'Mdggdɒ .(]9 $AQ=7+ *#Ór#;w4|)ϱeM6}ZXwGGW\ɞ4% d6l={ԩS. z++ *Fػw/*_R?555QQQK,џˣp 40$PK###,HG6;;[P8qbѢEi4h'hӧOjv91c_QΠiE"[ aKaooO[cؤa\@M{gܸq\PJVT! ֶբ_5Ab̙ԇb۶mqqqJWUP6xƆ zmV+ٙZٲe wUʟY'Qܹ˗/4X޼yS1X%9G]]ݡCX_N4cɘjiPj(Up%= yi\z! tۄ}aiiI骯OP~*a2i \]]vAc!?-G"n?hXGg4 t_#Xebb"u777" 1[ hLSSSU 6^R5immupp077g5 н{ !P]]Ma7y䎎uSnRexWC0(?䓞w%2':+ 4t/Q릃)7m=n^֥Avrc+ T$88|MϷHaaݽAsέ[s\eVVv҃H$ghK1Ifp{b@U(hL퉦&ͪF1KKKiξ4" !մi(ʸM}Oobf5eeKK mc33}=|P+"HBnOu # G4 &Y*PcZ6;)ǎӬjafv=zCPP(tttLHH,))AP"6}T^XtqqĐNAk4H*Ҏ;ϟO!11Cii)biH*2]]]^^^jTTTRRRffH$jllD!6i4"aaa_|ELL@ 2 a@l4L8 HHw=ztPPPxxx\\\rrP(T(;bhll$˻qƅ N!CaH1طY>#G# a@l4d⬬,K`Ȁ44}GDDDFFR8޾}N1V@l 6 O E}}=_T0d@ Y ޾ILLBN%ՅCl 6A<<<2mڴ;---===''H"677T0iH$tĀ44 %:Ӭ nJKK)߿/J)+T؀4-J#:V`A)YgP_?H,edb+ CF׿48Cl 6 `֭[ ×B!HF֜HG c`m=_iiJ* ! em۶o߾lwE@Kcʕ94ZXXܻw8'i6mb1:R F>Bl4) /^?;CEd o߾MNb *n'Oljj#7ovuu:u*u' 7n8ʯl;;;OOϽ{k, =9޶s9{,Ҡ2ʊźvLJ7oѣkjjK)"b" 1{ƌC.,_555Q _p!Bl;wR0$$$..V{Џ>h00j(D"Yt), 9vS59>tRAkxԩSPyNIIaś7oRz*͇NI|rss8::suvvGeE*ZZZr}YcjjZHT|! Yr%?|Mmg9((1a<{_? 4`Gᑆ.wwwn{1**%Tɉ?ÇSJ^`AUU)[la#X[[/\088?acc# ݺu+YMm\iW#qH(׍T7ZZZ?g=&dr>\良H$`V?W.! sI̜wלq{_? D\]]2+41mO@ ƌ3:|\R? #6@_j?! 9i$Hb@ H Hii4@@i`d CFرc! H4Q,ݸq… 'Jۖ0i0dUUUYYYɗJۖ}i4H( j@VmK[i4HxxxృacĉH@X0޿4@ iH i4H4H jKKKHҀBё!!!i@b4 6nmhh@n[]\\"##IIR)Ҁi@l`k׮!7-;v?>ICbb"ICii)Ҁi@lm6fW_JJJD[Ht@qq}~~>2fkk_lX,$HbI&L8~xkk+PQQ=:(((<<<...99Y(VVV* -a/۷! `dAmjj*'Ϛ5?|oDB tƮ]6mڄ,Z r\B t˗25kܽ{W,7b @7!7-ӧOOMM-,,w^SSSGGiAbg KJJH4u ֽmHIammw PXUU҂*i4H7o^^^Hfff'N9tPWWv3(HOEɆjk)}Zzll@ ͨH4n# +W>!!!C! [o 2HirJfffYYYcc# ``,HGm(޽{gEEew}SN%&&V---mhh@4@h" z( Ǐk~J7ovuu:u*uXŋ;PҥKJK}6ӊ+4˗/7ߟҦV]]]&&&߼ YHT*i4HP6m h]:;;WZE}l0jԨ&Y|9u555 .Ty=:IYOyyX,*rI=;;[&ܹjޞPg/h5yO...ޞhjjRz_wss w_Cł9Š}]_W/TiH @LC:Iݻ5ICvv6AH ~=vXU*~ԟr JA=*AwԔv͉i4HA/#++k0Һ4dddϲe˨g7Ι3?ϩShѣG{z-KbDB=UTS\\\H3 tH@ m۶ C P(/6F888*Ivƍ>o3 ٿ+Y@>a„i4HekeVhAρ4@V4' V[Q i4 =#@4x---! 4HP/BBVtmCCr₶' X+ig׮]Cn[v1|DRH @7n۶ Y?zW233E"Qcc#i0[[/"&&F dggbL4@I&L8~xkk+PQQ=:(((<<<...99Y(VVV* - @7+DFFz{{Y=|֬Y~#G[յ!h! iA"秤\t)&&4"""i/ƒ1ܾ}Q $H/rիW⻹t 55U().- @d2YMM eT;h^)**H$du͸i4H1tF9'u()))' /--ŴGR)r;\f4@7Ylkk\.ojj,U___tm / )]GGiEWW׾^Yx1 >) }K]Z"Fzgz=vbP#_@xzz<|?]+k" #r3;wy>v >) DmkkҢ۵D= -Lg|}}M6aP#_pa;))I믿U||<ɐ"G?88g̘aoo&u H4Xib|ĉzpZ+333VNNNnE~FY={Ԟ={ ~B~~~HH wvv"V J_|oߎó`Ӊk׮!U!'Otss P(tVoD4DGG;wg(Zݺu dxQF vڴiҳ޲hѢ7r\M4(ihii1c >z Ú5k޽+bHoܹS^۱c"ILgԁ}]]rޒ<}{555utt n GV`8/ИGyY)((pvvNLLLOO/))!kkkC4P{ې:..ƍB p42y_TjaaA=---[i-[FgϦ666O>ũ +rrrbqss3 ++7s4}Sy7|A=mVTTD/77ܹs! yTTԕ+W233Q 00i`\R"48wɒ%Aԓ2 glpԩČ҆THh" z" ?30sLnرcի/_΅fp޽͛7ZZZN:Ҹ1srr֮];i$;;;2/*ͤ+44Do!222!!= I UJ\D?Fسgu޽w ݵk'O+:Ұ|r kjj"e _p!iff`~ߟ_i8y$IÝ;wH}t._O8ܴF:|HΝWZE\ŠyyyT$""BoO4v#i +44Oo3b_ygy4ܸq>\իWS7o*Ғ?֙FPIÖ-[Xz…lSϭdaaL&4@Qj\.ommEsj HAKڕzu{,Fu({BP{Rz _͍[iLZ4@Z~J(7 : v Ovޭ瞴( mmm$Ӕ9ϸqhhSUVVo(SOPg,[Lid Q#f*FGGC CFAYPPPZZJ*8Ul@* YYY5/+߸q#>zH$jmm{~;Ja$]077'Hӛ*Rϔ Oѣ5T6(??RJRXX i4hck5K_Cl*6 m۶ R( / :RsQJ/ܹsGMgWD͛7:H=n߾M^裏 x h VVV2! al-QPR  % 8@l4~ʬ~H*@}q}<A@l3gH4uPJ^{",88Xk LfuҀ:iЋnYVVo?0xS'()S n1k3Pͧɴ/*X=INN6Alذar77nơE)x≽{>|POUdAcׯ;$,,l\Zҹ>bƵo>H7z9s|\Xksلcƌ>}olGXg֭qR !!!T~MMM$L%%%f͚6mZssp&fZmHS#4QB"}>ˣp~2Ti`n3p0O EQСCZhll}ڵkII?^[YY}v*׿Kc޽kxuawR3+RlP'f2V_4@F4|t^bmm==:֯\iŊTԷ+ $QaKk3PHqy @)))vvvTܻw/sε>}x{޽{T〥_~Aօ3kZ,bYY.]'Nx'(t/^?ڵ}„ EEE9sfΜ9ƮMKZ-={Vi9=bӓ*i{{{ϫz5VF$ dF$}o (T˩R9oй46 M_5xi`lذ6) #JClllLMM{s˻Yp꨸y&6{=*! 0P.<쳆Zϓ'ODE777:Ċ/"?sc72=sq7ԡ4S'Ӧ%;>eQZδDHHI|MM MjG}JD4"i`|7=Gxgh'O=A{04W{8W`dMll,7O? +;vLuTС?׳vN A{mh‚&uPBW)Iح4~{Qk֭[6uV=3N!-j:*!iiTH؄44|촒 ֜+;'k9l3p0pڵ^i077'f888PO:%bE:QƄ z}^8`f߾}cٚ 40 V xJ*JAtT- |63:mZ*-kB[n%K97OjkMHq=rKF4PPfee)=elW6ٳF_iHNNԘ aP]]3uAW5Kg(Y,YWT]@~n*7:mZ*-V@iY[l)((P~j% GɿCt{]+ӓ,([ZZP̒/j3PM sC$LR\\̿= v\Roz+  abT33{tbOKtyzݞxW 4tuaHCSSӯ~+wti4$$$h $iӒUZvRWW.rWŅo?hMH1J?"9::Xpzq'Tac:{C' Dxx8~:auW.mll藝YYY'>nݺn<)۽۴+! 6`@@1KQ]]MkjjTtcbbfϞ͂54={,[EMuyhOMŴUUU-ZT&LyyO+ lBBC{{fWH4{ r*GslЉ -;Sѫ06;0amVi4:ix7-(%E;Is="锅 ,"[ AHannO޽{wxX]]miiظx%Klll\\\VZ]Ć!Ҁ:iBGGG ʄ ʒ%biT^ H t JC`DKmCCr:i/v1| D R%ba$Ұ`k׮!7BԢW_JJJD;b!44t۶mͨ$ /bbbAvvX,d;b>??uҀĠw}wAAAqqqBRP  cr҄ ?ڊ<:iЄ'|f9 a@l4+DFFz{{m[AH466⼼7n\p!AX۷o﫭&@l4744H$K.ާ8P! j"ɪ/$&& TPX^^NP(v ĆHCgg\.-++#otՄ AhדQnM5Dsrr<Xbè]l TXXM{b BԤj:QMiiX,T*c406i=KQM{)KJJXP! A)h"I2"0Bi`@gr6@@4 "1: ! H7  H4H@4H@4H@A^^ަMf̘aoo&u Hi=gRڳgOaaaCC/@^ KJJjiiiooD54.ڵkHzɓ'***H# ÇHHLvڵi&geѢE oh:__˗/#7-d k֬{X,&ohiiHҠiCn[OZXXx޽HҠ"13Ή%%%dxmmm/A]uoҠoRX[[ݸqC(VUU@mnnniiy…=Y[[uVkkkn@ Q_良-)<퉦ܗ49såKիٍkmmm$Z33ݻwkKCvv6AH (݀`'RSS{G`eeճ9 ua̘1]QQׯ_4@ H#++k04dddϲe˨g7Ι3烐˗/H$O>$( CBBfixg#! HOm6ȏ AH?cBFDvvv.]K`3+UUU֭E/ZܹsHix5>>^+a:ϧFH aN=\JJ\./**@ 0.Z s x%Klll\\\VZu#777kg i04iP7nL25dm~fggCKΝ;7|xKZ#$$L'G28 V}EiZTTZn}}}PP̙3闺ÛFruu/ 4(;۔藺o޼YXX8o޼/PB>\CV'iND"SZZ$+&Mrrrojj_>ܘ4ږ-[p@ `$B{^Pt:>G}Ғ7ش>|wG!CYYY֥o󵀿^^^4ɓLoPܠ o^O i47772I$&&rtRNٴ󟩸qF|֭Sg}VŧԔƆ Kܽ{Ԕ:keee"?/h*5k>I:;;n;KJJ۹vM;}t*fddPwZZ?899>eq5믿.00/or7|ё5-wM["k' iJ{֏5Fſ=ٴ*7hܓ￧rq8qz)J?YiٕJ+ T!'O!! i~WgTYŕ𕧧4PXL\i(ՓJPjC3 x'z-J]H'|=Ӱ~鶵u탔33wttwf8pS7ٳg_WW7iҤ'^rE&'ӠH@$..}~ϟ?~R=APnvuuL<==Į^;w 3{l5=u֙3g[ a_Kohh4l߾}'2k,Z?/BBҠ{i`?~^ipuuU݆˳;v,{fiHz h{@@ `Ҡĉ}||:եEaxiiڢ~ʕ+OHHiHA}܆H" Ǐibbs3g̙3JCΝМkN4nɒ%/^4H4tvv&''ZJ!<<<;;k4URRu/]T u QF-^ fff-XO? RH4JcǎUjl:""/[nbJJ O?5.E;v? I@@4t_揠#*i/=dC% +|@@ƁJ7TIBHoii9uT BQXX iSiలrww)) DLLٳmllΝ+lhDD[ 7h lћ7oNKK4H4 3-iH&)BDb\Hu!/-IdZ <ؙفxHD h)p|K!"Qn{eYWȎ;x.Tll,,keY(ZZZrQ .CCCDb6,9s&")) ɸ.R".'fgE~wի/je BL6goI J4jkk3g2i0t0{lL<Z=Jb{CyCg`f9s+Ve:DkUDS4H5664)۶mCiijii飵~[DdlSS)9SUUŋSk""+ @0 UUUxqxm`0N'EDXͦ D*I&  /8uPP4a0nTUU)31 'Od"Gzz:zqؽ{7x.[ӧcHJJҡZ jxWg}\FFOA!!!!dWWWzjj8h:LY0(,>vTwy6lF%w 8P͜93=x14 nxcʔ)\+yDCힴjZmx:66Vuhnn6a0tZuU4lP[q4i`0ѐk|ccY`0C[/tO CО` oD`0i3a0!7|6a04̪]/iA CG|)ڥ 鞄:=°c\WyZ{/&u=a'{C8Պ SJY$?@+A]6iҤh%۷ogyy9vm,$߿?pxm4!'Yd92Zkٵk6n۷CDI8q"fϞ{DS/xH]Jڳxo\s^{m;vg1Fiii3gE `wR"UJFF{NUVVF(/ {ERR%$sH.&Q 佅f1c+Vhݎ+VH^^^+'H$9oHVw`$D. 8?Yfy鶞&%%K,%$[|L:RJiRJ}zO#y966EeX6m2/̰, wu!"Bo=z dRѣwj]4x\D^iӦ9eҥ<>Z>}Lի$7x0a-11qjp8>Pv_SOUDMsfKK lbZb ƃ>+$unO'9 VTTrybݺu>TDcǎ'? yn!=?{Br`8Jg Dzñpy |ϟsssMk ΝH FqqXU }H~_)nMAAA.3f O<yo߾$T9_Xv8A>PJL q&MI&s$yZ:.$o>,**[oUF-7z^q+&BqƌqSH8IγlFxpAJJM azo]n% 쓤h^gYƒkv]'&&̘1$y'x ~ ɟ]K$* 2W[nEG0eY7ވ;˗/׽{VW\q5"kDq"257oFuuu}V'<*]֭Pl){+ӹZ׮\Ru癁Ȅ `>v@R8("m[IIIlccD9|JQQэeeeIDdiZZÇG8NlDvv6 ˲f]Hi 磐OƂ w-Gv#V^T=ZHcօyrmذK%֭; `~QQ_EE?E1ג¾}LK !:J<ݒts$m&YﶂVjx@9X?^=u^^C]4deeaȐ!lyb' &FqޏǏ)))ݻ7yLCC>3g}\x2'Njo $ngO??;&Le˖&oѣhɍ>DğpڲnCzc;ɣZ]yyyW !GƠAȰ,:+$?PN ;Lp\;cǎ}ewh,xz=l68 @9jaÆ5M5t̄R~.`׿Xv`]^^p =xo 0`TLL 29Adggc:##rxvzIjj*DM6 GnZZZ3ްaC 9lpy_|/v/ AHNNѣGrFVVrrr322H6]+W4D5***lPiPJ ..ڳiӦΞ_D'"6))DAC. ~cڵWng@^.hŝ, |7TSZZHFZXX8jv{>e߫IIIg^O>@ \X6EWX^fUYY ~fVZp8?dl6ۭI C'|}#wEkkk+/9wލ}U ?]'XMMMog&W PW\/"O, {/ɡp8;(}LU^^Tp m3Cs*--ϳ>*"?s9dQd1p771p771p771p771p775a\yjj*/^$ 77)={⧟~b~0?jSL&bڴix70fӓ)L(0P*PTV!pgggo߾ظq#"""5(.] 4U0?GZ4XQQQ,`4J`~0?K~P-c׮]2e Sn߾|eee1?Z|~P#ոSSSѿn- T*h4/Y-9?wnn.|||`4 Am~2?Gs5Q& & "a0? n>Ba5i4taaaXt)L&So~MEǏGP(Ax\R+ CׯCBP@6˔wNWWWtPC_EEEXnz=f̘7|ӄ@NN-[9s0Q|憠 ,[jmjxxx{0aN8Q t/%1pIp(?UrJ`0_~2oɓ'#33.\'|Zưaðh"7|d.66QQQ(..ڵkK/:-U?Obutkܹs=z4>3L<eٲeP(oP(]f gEѩS'?PܹcRR~aoڵCdd$l>m6`0 $$[nuݻwc򂷷7fSh;+?<ݱg׬쇯(m|r( YҠP(|r_U*ZQPOJ*-- QSAAA6k{o(..رcm6yIDPXX'ObvXqi… ii˼83fp0ƞ={/ 22]vzk׮1b~gY |Ǐ֭[/8@8z(͛f ,RDLL 233q%@TZP3{ldff"33Yj_ҥKQRRcÆ ӧODzeːرc~ sKa۷{ {ٳaEYYY7u\$z^x/rXr%F:W^ؾ};>#;< jgbܹ28tt:~A4heGy6mhD޽f"ׁ?Xt)3`ժU?ob ""=m۶!77z˜1c,ejxga0p1[YaU(&zOʺ5T! k׮E۶me`~4hZ4'lHMME`` ŗj5n"_Ŗرc GBB p9˝QD\zZ hTh48p`e5/ٳg#%%mڴA>}Hbnrrr,&{'GCkMǭ!?{1c|:u*<<_rӦM?t:0m4$''[m6GM槧cڴi۷WkNUqG'pe3LR_S~QQ"r9=z[Z۳gpȐ Nbb(J tȐPQ*h+WǏKii~}vz̙3w7ӧ?~\F,X@ȰaÜJaÆ Ylܾ}[.\ +WzB2=Ξ=+z^%..Nرc2vXTw|7k׮ݻwKrr\xQnܸ!-)􉁻 nG#<"$..2ɓ@g!$!!2СC6닌r!˼ ٿ5k8}*pZ2///OVVЬ>{{{ R\?.d۶m5v*Wg;j^{׮],.\`nfSzVRlM>&˪]vɱ ܹ{5o޼<aܸqr>>>~F ^~vڅlZGU^}w\iy@{VL/nnnx0l0̚5 :t>( T*V:tkpMm۶ǐ۩l_=o֮]mx)_vTC<+gg}Çȑ#0L(..6_Au܆矇? q,Yof^*󾆗Üގ}m㎈?PrSNY,88pI傂ڧ;#޽{CPtnkj{+V@ff&n޼?Pqqq ??2/66fQWqN]wDM,^Z1118|0 qY,_rrsfϞLdff"&&f} ,RDLL 233q%@TwujXt)rrr^zI 6 ==zЯ_?:v8|0h ~|ͽ'N({t:ѣL:U>lܦM$00Pzƍn'11Q"##GeĈVڪڿ,0axyy|F5R Z/:5:UuG13OOO1 ڣ] ao,gGl3o. B:~-[yGYd5n]SRʕ+""reQ*ҭ[7p@bbbd@6l`*9 nݒ+VH^|5CnܸTLDd۶mߪ:]#9s{Ύfw5/7|pyED~'`sl7'nn'8p@HTTG}TힰʤG.r}YV?(\\\'{t:~{rtb ܼM5zj]nڽ{WΙ3ǜ9s^[-]:55)))9z_x3SP $$`68I= WWW8?ڕd~^xfff'uT BDw#3QPP`D a'>sԩ:oR>n@0wr{;ǻvtZEl޽F\\  .X__]Ξ=k#UwĶ߼ݻwg$b46Wy=@6mT[-JzJ?.yyyrQ5j3fU>?Z_z% JaiұcG m۶})jrJRRș3gdٲeҿ?@,X`ݻ9wxM]Ȃ l7fS9yرQk=Ǐ/{u=:p#K͝;ZpU۪(f/^.]QղtR{ΌvU_}Όfƍ,z^e˖-U3/wp̀ݟUKii)ƌ;wbРAɄ޽{̙3ؼy3|I~]yf7}Z.kԌjlڴ HJJqu&L-L>dɒ&~!ॗ^bf5_q5n!kԺ]z]t_~wst1 ÒM)''V?{D=A%%}www2W|e`o&gϞ8qsȎD2h3p7QQQؼy3sɄX<P*P(V({9|IDZ}pBBBT*R^Qtȑ#7ߠ9LD˗1sLk2e <<7jz: IDATM ܍RADP(VX&V_tpssNn_J ZwaZ}Z...m79X)--g-,Gzjg+Z3*jڵCNNl_qy&˃v|||p Vg4a0{u;صkQXXh.,b?׮]mU75P9:x (|wQQQؽ{7#[nxbo_`ذa5k:tP@e刚ukx5k׮o?ؽ{7^|EիJJJxO%5f]vٽkv+{?<+ݖ^nnnVPa2K.ȑ#8rnݺ5:ĠM-zk!!!~N+Ypp0ɓ69O wy{B{})0QPP`թz6lVGyp}U?~cǎYC{b dff͛ڵ"&`jÇQXXgb s̞=̴t)oP*Aff&.](JNK.ENNK/&iǎŘ1cljnnnƭ[z9s`߾}HKKCqq1Μ9c)oF[p!4 O[ӹ~F… -ˇaÆ HOOF^ׯ&%tqٳgeĉrN=zԩSVmڴIEKPPlܸv%22R|||[Faթʒ &xzzC=$NN5 Uرc7::ZDD|I vډh4(گ:uS  ٳL:URRRlO?-]tV+ /Hvvv- sZTC ;հiDDD DDDMNITSΌe>4屦奥A8<=ǣwݻ7Əo)no[cСؾ}e>waaaXtivɲG pq<۷/z= 0zhrLIΌeVZZE_p!JKK~f…x衇PTTիW#;;WFAA>̷ݼy-BNNƎ5k8̟/**ºu1c tbn CQVVUV8q}]Z@5̨_fƗ_~+WX]|_}l?z aaaرco1w\g#TԶm[ ꫯdR6l7|L'b=z46l؀`[nxglhR֬Y>}`0 44xp}pܹ:\U5ewoooDGG[5YP(qFmCdpv/?())ŋ-#ۙPޢE`20{l]TbΜ9(--_>pߜUa1U̹ÞTt j~e>G)Zi 8x`&&&RPIOO R)6pFGGoeرcG )*5ߧO9~FY`aÆUV\iuϭ{ />ny Yh,\Pȟ'eppիW%;;[\]]-uT|XH߾}uzii[/Ͳ+WǏ[ TRsY||xzz`GZ-!!!/ΝѣG ٺuSr|s>tA͛7\#z_<˼={Hnn:Jr:pZ2ϼ V[]TT$^^^hƍ""b2OJ\|ngG*<_^HLL̞=[Ȇ w@nHc֭[b իƣyxxXFCDd۶ma1=Jw a,F’Լ\uwnne9 + Ԏj-f矋Hrr͉u裏ڴh?ʤG.r}IYYYiϯ#C m۶Up&I9b>36Z;/_.*JBBB$++f}>>>Pث '=5kk?S*ޖb4.ۦMk`5__P(:kLGLQ(M\G~~>̙RYuT理gp)"~:1f̘jOB{,S#͜9eee􄫫~wp2jQf̘aSѫ>@Do7$*8@TT:tl߾xꩧX*ZڎsϡSNdz>p;oJ%>#\zݶVs޽{퍸8 4.\zQ&"[oB &ǥ@dVDTJxxdddHffWy5СC')))ҷo_ZO ""c /'rpVTnD|qyO?M6Uk{˽R䩧ǏK^^=zTF%dƌ5D}-M/S۪ɹ#55U:v(m۶V׳O:%ZV^IJJ9s,[L_wncǎɤIO>*ҹsgydD ܿ=ZM62x`ٹsg+WZT|YYt޷~wuGM6?~[\\\,uWflܹRPPjrxtEZK6QX8:X9Q{o]vʂZnQZV9*--Ř1csN 4}<==Y(Y%_ڹqoVjlڴ HJJ[]vȑ#o> ꫯ2QLVFɄӧOc޼y_ BzݎT\.,, | 3[—FD|rY͜9j?ZЫ<44T'|"$,,ac=/]$...2x`GR)C d+;44Tjc 7d}r[Y2E=^eoQt䳦WYYtMX݂E,G|rZ3Q8վ Njg۶mCPP BBBuVmݺ!!!0  4dmJL6 n:f93?qԩVc!88˗/ǵkpU@~fӧOpt5SU [neee8pѣmYjz)8qd$GѣGQTTdȁ0dFW^;v !!!z*֯_dx{{Ƕmۜ'jzΜ9ӧ{qqqx'`0pilٲ~u}ؼy3~' <._={Fl*Fը69s{6O;t? >apv""?)r'qT#jQZUtIbf^^^!{rmg/"RPP`yw3o&FՈjcǎzY]=-##p=0ӈ׸#jT5jDpx800긩wE}:7_ݙiر3f ܬsssCtt4nݺo5 .]Lh40`}]|7nN8|;v 8tf̘zGżyZ T*L\t 111P*xwm ?;ܹsx衇w^/VELL >B={˗/uj~~["gϞLdff"&&*k*}@uoj_VqT#pTV};>>7m$%((2(\޸q^@ٲeKeÙ|8b9` ]FT ըQ޽ql޼O>Sy׵͛7cܸqӧOMrĦrQK3}t%K~饗Y$jD-k^{_BB3\zZ wFD |iɁ\U G5L˗-C 3x3p7D>}ݻwرc'xݺuCjjS{UWϞ=q &9uefn<Ո͛T)ɄX<P*P(V 8ѯO> \p!!!P*PTV .^צŠйsgtj ,Y.]/`g_Խ{w̟?#G7|b& Y\|3gk)SjRPH~+QPP`Soooܼyyyy^yyy`{y{{#''j9]?BCӡG]MV>8¡;w`89Yh4ѣF=z@[OOO 0f}wǎLF\(J< ۷a4qm&kJzmڴT&4 N@@pY~NBhh(G52 FήQ}STh4tڶRV1J+hZ 777[n63p7{Ejj`s?ٳgc͚5PFk֬BpzT#gQ!j-"P(PtqU[ :yKX3|:t(ws4l޼/ݻ㭷jvƍxp`x'l~_go2p}ơC o-k܎޽w%%%sk,7V5nhZh4@V3p3p7\87w]VVf3Ͳc܋|v>}:K,q*p74jD }VPVԺj&ָ]ӃjT7^.]/dXnM*h恣ۘF,jDD7G5"gqT#"&995QՈnjDFDDv0cՈj'Ė-[]޽BqT#=@j Y=lLTZJԒ4QeA|pT#"&99[FDDMij*hkZjDUj6scc_6FTYQu71p7R07wſ5kq[ډQq@D,oDm&71p1p71p1p71p1p71p1pSܹ3J0&wS0nܸ*8q"L4e&Ōz֓'NtZFVV|||XD,oDq7`#GI[>}F TʚlGT*RԒ# f;D"#/_FΝ햷k׮A15n\׮]1x`cǎe&c:urXfIDcԩN#jT^rrrRV8DP:wb/233Yވ5nrFeʔ)<cy?i$7b+ߣu„ LzTR3<M ۷/Ο?!by#1!5NqơK.L (o&Mby#nɓ'DB@&NF-ʉvN#""b&"""n"""n"""b&"""n""֬^NMMŋ2)EDDbbbеkV,GrD R㎍СCѧOرiiiNҰqFxzz_~ػw/q]LVS@Y8QElpc qIDAT7nDDDSjeݺuABBFJBb7QոWX(lNL4 ~~~ذaQTTrD,G`{׮]2e S̄ <iOe9"#j3u 0ϟhDaaaNrD,GdO*ͅSꌷ7F#F#T*4 Z-Z-T*U,GrD V&k~~~(((@QQYS b9bnP(pI/" &Ol5?%% ())ֶ E{V?hj,-i(,,Dii)޽kyej<1p7H@||C8p9_GRR)++dz%"#&bȑ6ƍ8< ==-o~ÜmD&ꕈX#F@PXjԨ׺U )))5jpܹ6n݊ au}Me& o6:$%%FѮ];DFF")):vލÇ ވFZZr?S4qv[m6`0 $$[nmV X[嗣]gߙc:׬Y>}`0 44xp}p9W,wL6 tiӐl3߷є7Q3f2_$""o2e_]DDΟ?/W^V?zj x9w=Z֭[-*钙)P(d߾}U1/rJ9~ZKLLRi~FFRDuG?.FQ,X dذaNWuӤmٳGHxxdddHFF;. k׮ݻwKrr\xQnܸ!q 7.Ӯ}BAIzzˀlw-h~o;v\~]>#KYqkϰa,[Ln߾-.\+Wʀ}[~{osCS?̜9S?:tQȠADD/ f<8˼'O ׯM:teޡC >ܩhܚ5kli YǪU,hZwuӤmEDDIHHIܻvdpw >ܒfWvxVj}dϞ=""+ťFǭ=@bcc~0۷h4|ꖟ[K9bnΝ;L:UJJJU )..SZ~3}ڦcgS9vq{=`Ŋ͛7[:U6~i""b08p@DDz }gO:%ZV^IJJ9s,[Loӌe`eVZV]4ۓ Jf:9n???k5I{Ʀ6l0̔t8pM;{:Z=n KZZɪU9߷MZ54HIIt:{iiiv?Y8q{「G2uT9|Mڸq^@ٲeKruKLLHooo1bMЭN^rt{Igi& ^/AAAqF&EDo.AAAZۻOxIcE\,8HEwA\EUpopsrY]ĵ`EpgzzwZkt,oOߦI|I$%Ƙkkekaa!N|Oq=w[}}:˲>3y+ekbbBgggl\/ɉt~~UI&P]^^>!: hjjJX 9?a?RE~Z[:W,U,rDXqE]tMR&,O:J9==৚lR+0f#ɶmYն*rrԊ{iiI*ˌ0mggGmrm"G GHGFFiƛU*kmmMXq3rr|X$^P*Jj46u] ͩP(( öE*̎99BjZ[UUܨZVQf'o* C(cq|> 8ٽWvr\ו1Jm[&IL:dt.9 E01Ff+>rrԊӝ1FIȲ,9#c +tR0(cZNoe!G GH%q}uV hy|ߗ<ӬڎG]~$Ƴ޲Rxtr\ϴJ G GH7 xik##x\7 (n(n@qPs 2^IENDB`fedmsg-0.9.3/doc/_static/fedmsg.xcf0000644000175000017500000004553212231547317021064 0ustar threebeanthreebean00000000000000gimp xcf file YBBgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) I Y Pasted LayerI     P YpIkIwI YWh"*G19=3AHi*5ء NM5MM7MM7MM7MM7MM7MM7MM7MM7MM7MM7M}M MhĚSM M] uMM lM Mp mMMySMMReMM MM]MM MMUMM MMNMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMTzMM MMtqMM M M] iMM MMbMM MMOMM MMM M MMfM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMqM M MMSM M M MNM M M MZM M M MdKMNNMOM M M Mc@MM*5ء NM5MM7MM7MM7MM7MM7MM7MM7MM7MM7MM7M}M MhĚSM M] uMM lM Mp mMMySMMReMM MM]MM MMUMM MMNMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMTzMM MMtqMM M M] iMM MMbMM MMOMM MMM M MMfM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMqM M MMSM M M MNM M M MZM M M MdKMNNMOM M M Mc@MM*5ء NM5MM7MM7MM7MM7MM7MM7MM7MM7MM7MM7M}M MhĚSM M] uMM lM Mp mMMySMMReMM MM]MM MMUMM MMNMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMTzMM MMtqMM M M] iMM MMbMM MMOMM MMM M MMfM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMM M MMqM M MMSM M M MNM M M MZM M M MdKMNNMOM M M Mc@MM"" 55x87888 99!9,979B9N*Y  λ d #P @o  X `{                & 1 < XG 2S Ļ ^ j  1 a  , , , , , , , , , , , , , , ,  𿞙 . T F_vlP- Id'W'M޽jM MiMMaMM_0MM2MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM2MM0eMMcMMjM MiM[M;MwM9M`M7MM6MM7MJM4M'W'M޽jM MiMMaMM_0MM2MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM2MM0eMMcMMjM MiM[M;MwM9M`M7MM6MM7MJM4M'W'M޽jM MiMMaMM_0MM2MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM3MM2MM0eMMcMMjM MiM[M;MwM9M`M7MM6MM7MJM4M' @ ǻ')014233333333333333332)-0 ;E:7565M۲^M MqMMSMM1MM1MMO2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMO2MM0UMMvMMN^M MMQuM9MjM7Mf7M5MPFM3MPLMMM۲^M MqMMSMM1MM1MMO2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMO2MM0UMMvMMN^M MMQuM9MjM7Mf7M5MPFM3MPLMMM۲^M MqMMSMM1MM1MMO2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMQ2MMO2MM0UMMvMMN^M MMQuM9MjM7Mf7M5MPFM3MPLMM""233@ 쿻> 0]122222222222222222U00  =' 0mw&w 06_(/&0S 2 3X4.6C75Ne[?MuM9MWM8MJM9MUZM9MM:MNM0MNMMpM0MLMM@M0MIMMM0MMM0MLMMLM0MMNM0MLMMM0MMLM0MIMMLe0eMf3MM4M6M7Mf6MJ7MN8MNU9MLU{MuM9MWM8MJM9MUZM9MM:MNM0MNMMpM0MLMM@M0MIMMM0MMM0MLMMLM0MMNM0MLMMM0MMLM0MIMMLe0eMf3MM4M6M7Mf6MJ7MN8MNU9MLU{MuM9MWM8MJM9MUZM9MM:MNM0MNMMpM0MLMM@M0MIMMM0MMM0MLMMLM0MMNM0MLMMM0MMLM0MIMMLe0eMf3MM4M6M7Mf6MJ7MN8MNU9MLU{ 8!8P:9:3(1\p2|)2L1z0T0B0W0u1C722q`w2w!5667 8i9r {4MOM6M8M\LM7MLM7M]NM8MMMNM1MLMMRM/MVNMMPM/MvLMM0MMMP0M@MM0MQMM0MMM0MNMMJecYYTMMUMM2MML3NMMN6ML5GMM7OMM8NMM9NMM:PLMM<KMM=U4MOM6M8M\LM7MLM7M]NM8MMMNM1MLMMRM/MVNMMPM/MvLMM0MMMP0M@MM0MQMM0MMM0MNMMJecYYTMMUMM2MML3NMMN6ML5GMM7OMM8NMM9NMM:PLMM<KMM=U4MOM6M8M\LM7MLM7M]NM8MMMNM1MLMMRM/MVNMMPM/MvLMM0MMMP0M@MM0MQMM0MMM0MNMMJecYYTMMUMM2MML3NMMN6ML5GMM7OMM8NMM9NMM:PLMM<KMM=U677n6 u89W799P00l 1\27#2"22'2U012 d/wwy,''6r57:8f9>: ;3=MLIM8MNyM8MKPM8MIM+MNLNLNMMOM*MULMMNzM*MMM&MRrLMMM!MStMUMMUuMNeMMUx NMMvMMWyMLM MX{LMMMMZ|LMM{MM[ UMM%MJ)LMM'@IMM0MNMM1 MN0 MO1 MI2 M@3MI5JMMLLK8MLIM8MNyM8MKPM8MIM+MNLNLNMMOM*MULMMNzM*MMM&MRrLMMM!MStMUMMUuMNeMMUx NMMvMMWyMLM MX{LMMMMZ|LMM{MM[ UMM%MJ)LMM'@IMM0MNMM1 MN0 MO1 MI2 M@3MI5JMMLLK8MLIM8MNyM8MKPM8MIM+MNLNLNMMOM*MULMMNzM*MMM&MRrLMMM!MStMUMMUuMNeMMUx NMMvMMWyMLM MX{LMMMMZ|LMM{MM[ UMM%MJ)LMM'@IMM0MNMM1 MN0 MO1 MI2 M@3MI5JMMLLK894838_-ٓy+ |Eh,B+[%m!͙f4gr̘f3 4[ʗe2!Gɖc16I ȕb0uOǔa/dYƓ`.$qgŒ_-(T^‘^,&</󵛡0 0 *1 2{3~50Lc^C"8 MM MM MM MMMPoMQq MM MM MM MMMPoMQq MM MM MM MMMPoMQq МOϛi6͚h5,C!  Y Background     JB YJbK6KBKN YJJJJJJJKKK&@@@@@@@@@@@@@@@@@@@@EEEE,C! fedmsg-0.9.3/doc/_static/reorganize-0mq-overview.png0000644000175000017500000005353012231547317024324 0ustar threebeanthreebean00000000000000PNG  IHDRY+sRGBbKGD pHYs  tIME3sf`0MI,""""&YDDDDLd,""""NΞ=ɓ'wpwwG޽1yd$HsH"""$k4hJKK_(..rJ u <8~8d2=wHMMӧ#$*LVLL x  RVEEEVX߿?$Iž={̦ݽ{7$IBM2220n8t m۶Ő!CW_U[$I0 XhP(^˅,{$ Ν3:t(j?-- ${ """_۷CBB}`͛7Mg3%( @~~>v؁ӧOcǎž}-'66q9zS5j )) pm$''#99o|8#di ^5{5^`jߕ`6U[Gq,*k兰0\|8|0&N'СC駟pˋDDDDKZ-$I!o@B`ʕ刎6:t(wL_ϟG5˩>5^\jnݺ?۷o[KDDDԠ$+,, /7|?HKKCQQOԩSxdxgg5;oT*qi… X~= `J[\c>  ѩS'lܸl""""JM2JMMELL ;K. BttPeW^< rcǎfXx1RSS믿sNj/߲{`^u-Y.TTT]v(,,+>ꫯbh4qㆩ1>Q,""""?vGDDD$I,""""bEDDD$I1""""G 9, %%(,,dr~~~VE```.gGEPP8l!8!;;vFA~p15vVʵk]v!22BرZpww J%r9d2M3YDDT6l؀1c0ZM2CQQJKKQ^^ -I9Ca,ɓweee6dSBYTNCIIgB""r*eAP||| ˡT*RR ="""V(--EYYd5,U{rl5??FzܿjL0"WQQ`j \HDDD>6 fLZPFFƎ h4DDD૯6ݾ}зo_xxx 44{89۷Gvid2d2 yǬ;Lh4111(//VKUu`EDDB|ܹ?}KHHxxx?O̙38{,JKKQ-XL8f222~###GFtt4/^$kc[""r*$5j'imѣGȑ#HHH@TTF~6l?d <1ǎCRRIII2d`~۶mԩS>pwwGn?3@,۷oG۶mmjwI{=o={gA3ZoU<ڵkﹸ޽{~{ӭ[p]޽ OOO͛ō7Ol7nŋq!\v %%%fb.cdY\Qz… (**BII ݻd=Ld3\~6`LR y]Æ Ù3g`0PVV["Ռ]{Ett4z F;wftLd{KF6 dffVo߾VSrr2`իd2\`I{=o>>?~$◾;wzU}2tJJ Fۣ]v0}o߾@hh([2>aÆtyvv6J,׿%K`ܸqCHH\]]駟=Zm۶!((;wؿt^۷oŋ͛"77W1T>[6VfSLnjx-z8q5j {9{N$q%1x`!I8uT ""B\tI\tIDDDT[ q9Ē%K1tzog%ømjhaظqi]+_"$-ɲ4T6i$@ٳG!ݻOMwAѮ];T*1equ7m$4Me$aI -ɲ4xzz7o54$%%Ɲls3v(zj!33+W;v8}t^z%!ddeea`ejF3[nظq#:`cEFF"33SLa-XORSSڔ*?`wȐ!p,X>4Z_~PT8yQFatիƏ^{?4,YgϞ$Ixg^za66mڄqaժU9sL泅e˖CvyC`` 6lG)V{=o>ܹ/" m-SAHqFDEE18~gOXp!ڵkWu3ؐA=SDdd$ &MBfff,""j7oĉ~ۡAC|駘9s&<==T*P(LrEgzz*t:ܹSm 1mڴ֓d:J=z+=z@VCR^]\\S#ab}-t{Ehh(<<<зo_߿y`0{t:P m {*5T:q@,a֭[6YFcG!BBBD6mD~~vhӦׯ_ԩSB$1x`#.]$,$IN8!8qh4C|嗦Cĺuĝ;wŋƍŀ+((H;wNt:d@ :{b"??_y ⭷޲k3q̙|nnndrrr* !š*>}233b$ڵk8~xCYYY- ޽wĩٷWj6C Aff&fΜi?;IIBtt4PTTh7oΝ;gΜUpjzyygڵk1l09sT'4):^w?MsNIMAA>dݺuk/Y]ĩ% ˗/Gbb"nf̘t>-/&YLv-vJ yZSgY?zTDGGSJ%._\([d $IVEnn.._ V ItjӇ믿Fǎ?`8vp!''Jnnn~;֬YOSנAWFQQ233rZ^,sH1Z:i1{3Gi\oΝ+JJJdj^N:%Çɵ~~<  Xfi^SN}?OaC]rʰsNP*P((N IDATW\ne ]= I /}h97???\znׯ#v=߿+WDzz:***X(P*ѣƍ=z m۶7ڶm Ft($˝1"j~GII ޽;w@Ν;())^``ݕR OOOxxx EwfDDtr9J%j,$IPT$ V`cDPpssZRB&YDDtg)j5dP(PI9TP5b\1j1a$%j|),""""&YDDDDLI,"""ֆp "",VNj lL9x<  !V>dggc׮]h4ׯ;2ܿՒ- ]>V&ͽܖD?j]`ڵ ,hǎjHNN;\\\T*!mZ"""a3 jʔ)G\\PZZrTTT@LDDСC>}: 4yd$$$ݻ(..FYYzdEDDN%++ gAP :%%%6oŻ ȩחAuNN\.RJJ\.oy&V^gA]Gqq1JKKQVVf3YL٬Z aaardfRDǎ5k4ݼ!;;P*z=g4 JJJq}ӫ3""f0|]*--Ŏ;憹sb…;.z+V6~d1ǎCRRIII2d`6X<3"xxx@Ri\Cm6L:IcR&ah۶-^d٘?]fѯUSٳ'{&YdÇNݱzj̜9Ӯg<Ξ={O?mjem?w:t(x tu1 ٳ'~WӾ?$I1{.wޅ'|}}q 4cl_}.[a,>WLQ>QeNC All,d2bٲe8p@jw߅`@BB._3g̙3}6>35::?< ::f14N۩S'lذu>S}3f@@@:wlgIHH 334},d6DzdK䩩BWΞ=Ex AV^"dffbʕ>8@T Я_zR˗ RYtK,$Ij˗j!I.]j2ر#;l&YDD͝;iiiS߇  .`裏Llڴ ƍêU9sX|h|}!22Xp!fϞ-[4ɺ<IIIP߿?J'OZl:tpKͱl6| c`=zt-7Q}j3YDDl&M&K .$"fB Jd,"""j L2c*dSqwwwye\|*ZeDI9={"==AuJII_$XL3{aAP ѻwoSC_dU1c lٲYYY, /"44$A.2"""{xw1blݺeee,2üyꫯbRB0r,# 'VrJ$R*ѣƍ=zpqqa$d1>JJJp]ܹs:wAII z=  ߊ]򂧧'<==WWWɇӑP*PզX$AR,LZieBWWW jJf d1PB@&AP@VLRpuuZ6%Yz,""rJ ,RTwd13Y...PTP*pqqY,&YDD;SR ILI+***x&az\nBl0R&YDD;SBaֈrrDuƄ]<'K.$l`xxp=1GdN8Tf88PojvdM2iMfI橧b GMβ9MBoJOO#WWWT*tcwj5Lx8ZI&9 nj{gَ"++ gAP kBA&A.CTBTB.;_vvӦMNZ,e;"Bn@VNN3%X* *&I].$""j׿IoƐ$ɦɹN:aF۶m Fcg J,b""j.VBXXve2YCUo6Qո}cСh߾= ѹsg 8ujdFAII z=߿ozUw&YDDԬ?خSaqjΝ(// ݻjl߾O<7ߠx7p=E `0{I˅DD\>qĈذal\.4v8uW^Axx8̦ AFFhu:yܹtXdQKIHH@pp0O?ԩSx/gϞHNN?l6]vv6/ >\%E[r f͚Ν;CV[n5kRSSͦرcF|WՒLwy}Ip{bK&YDDp Obƌ(,,tu/PqV>|cƌ70}t?~5m4l޼-qDFFbܹi|ܹ?}Ugll,&Nt>^,K˅DDl.006lhmu2|p $E&aݺux\'k/͛c=fѣq$$$ ** py_~HKK3m0uTIL۷W\ضmǻW7lիk_;xf<۳Ç;\lԥ.]]F:y$~9N:aȑ矫=z4q]$%%aѢEpww+VO00~xxzz",, G~~ٙ,vqK<+KֱJ*zpBz^L$zoxvNu&kȐ!mP`$x!g DDDTߦM#<<]vų>k׮պ,OOOt:콒4F. pe9sgΜ۷g~:ڵkWFRgyݹs(--s:xgRrZh_ˑ0 Q nnn(..6;U\\ 777xQFzZ۷/ܹs3 1ԩ6l؀\ܺu ~) | B{Oyt& όgG={Djj*)v'vfǏ۷=l?.] x7k]ˡT* /㦮`?/P*X|ip!''Jnnn~JVӧQRR .`$:tOmQQʸSjag35s"-- 0^*!q|ll,w8|0L޽{GFvv6<ɓ'׺| ŋ/_Dhh([o>DFF .ٳe4AAA@XXN ?IIIXv-lvw7.^N9Cd8x i6Pc<3% X~=FdC9>US]hs*Vy߂όgj&Mڵk}Q8``f 1{l\ Z-X8EEEQ1"&Yϝ;:@&o[鈽?~<6m(Uto8y$Y1uTSۧ~7nܰ8xxx ((111Õօy&믿Fdd$ n:DGG _CbԨQaMXto }źu쬎qY ޽;&Ol1ɴTAws̱ ],XÇg}`C:DVVk?~4hj]0 D׮]%KGd03f ʰ}vOjPPV9匬,aժU^+a>|8B/D6m /4];z/_Ɩ-[PRRx b\~ƍڵk1m4p°b 6g!''-ƒ>ݻw/?W&k׮ 1ɪ͛7cĉ$ oyMIIȑ#Ѿ}{kQQQHIIx_?FXX]_wǏGpp0v6l~m5kj.992 111f!!!@hh([kzyyaРA׿1c &&qx7 ;f<#ݻ44h`׮]'۶mCPP<<<0x`8q˖-C=????PmYC߾}޶kӹsg0:(##cǎ?4 """W_Y.{Ehh(<<<зo_߿A;vhЧOĠlcfg0-m }!ɄFIII=uꔐ$I 4n„ ƍ>>{Q@DDDK.K.If6ٳBPPq ?q b޽i܇抈!Dbbb'oؿ999z歷ު4d7n(Ν;'z]Wd5N%%aLTT%Y6m jÒ," @$&&6[u@<զۿPTBR={}nذa0/7o }5nW]\vIva"z T*mȑ#B!޽kwQ!pqq1ldd M㒒d -Ǝ+>lQF "!!4.33S6P 6󳤨Hݺu*ɪo۶ͮ+IV^m: P+ݻwMt: |}}.zZRаAш76K[ 8P|IJ [q999VDZ Zjʕ+b֬Yx駙drJP(bٳg;eL,nEEEVm[gYdU( ٴ%?8KS]~]K[nl:IJ3{Mܹszj`ر8xӷ 3gr<"Cm"##3g6yTL{ %%%?^zt~!d2{=\zЧOZd-\vϼy󐚚.\eݥK[L߫7`]lM[nѣN>]:Bفuw~< ֮]aÆ̙30 gUG7t=<<1'|2L07q=gffƝ?{0w4!!!HNN65JQ(Xr%9f())Aff&^x Z̙O?}"""pE{Laٲe6'WnL$I$I-:-Tkܘĉb'r>Tտնm[ :ǎ VXa篿ڪյv~ŋW^dnDLUMvQ.Vf@( sNd!Iў#7|\Ɖ" m0&+((H5K<[SU[~d}ٳf ߇*rssENN 5 Err/$Iϯu/N6)/g{iim9=z{w޹sGtE~I\xQK]Ji[vÇm]!?TktyRD׮]EJJ(..ĺuDͳ>3~7ō7ӧE=,i Yw{22&Z2Lryf; Ç9je0ĭ[Ĕ)Sd3zDIIIsC,!ظq$Ixxxٿ۷pss}۶mZ6/\.<<<ă>(&O,l!I/u,HId5ڵkb_zJ[ [;N!v-cڶwը$k߾}xG_pA>{$IdfDg3f ÂX뵰?/^Dhh($I\.7{%b<ό3edee0E+z-$//ëӧJ *YPx&ݻwň#uVSyD]_B???R=zW^A=VRL...) 3۟gt+W̙3M}s5g}e'NÝ;w TCu_R 777xyy+  0d?߿ܽ{w1m%%%0 ԼRZ^0j@.CPpssZR䑿HόgrLrܴbIJeJ0b}դA6mژOugjPզZf<3dP(&b}U$YV5Ȥ]\\RT*~Β,3B0KT*ݻ3Yi ӠMS홴[Gyόgd !̶e3YiU9-M3}VҌg39fmZR8 bADܦ.HXDDDDLd1"""""&YDDDDLZJDDN)++ 111HIIAAA Y(F"##jؤ,""r:xG ;;B|Ʈ]hЯ_?;v eee~<`INDDޟ~5c׮]FرZpww J%rR3YDDT6l؀1c0ZM2CQQJKKQ^^n>jdS9tO΂:M< {.QVV^o>-dSBYTNCIIgB""r*eAP||| ˡT*RR =""fjYdQ\\RL,""j6VBXXve2٠T*ѱcGc͚5-~gqjhPRR^^mI5t?4>[;v쀛Ν Gt20 fL!_ǨQgP(0tPXuVHȶej0^dCKHH@pp00|=5]4>>>!!!@hh([>KC]ˬ͎;Lh4ӧbbbP^^ Vd+,,ēO>3feo`q%Tu &M6ž={|:wwBKCFFߏ|ddd`шŋW^w1Q[E-ڪUѭVV!jVĀG/VPܦ b,w/CB8;;xBw""jfC2e \%Kx@vvߟܯՖڑLȑ# |_hv ___l6Çvȁ( $$$_~gNU*, jjjyFǏ\vMwirFs΅\.ѣG}9g}///c"""G6zh\pqqqP(zHo.]ƍ!!!^{ \rIII6߰aA@\\n߾b$''۔3gfΜ)>i$@JJ q,['_7`w""_e#11 5 9s`ݺuprrbʕ8{,vZn|n4qFܺu #F@\\,XF-jkC'ٌQFaݺu^;Cuk2di55KAAz=|||pExٳe' ĹsP[[7nHw)!TQw1`^aaa;OJ$]{,]늉 /c<' ̙3Xhڼ_ | yRrx}fvм<ؾ}{e t:ynmҥK펧XQQ+V Z^^^Xb***l+d2pTWW;F?%"":u !!!8q"a0gv6\~'N֭[mibժUEiiiFWMMݾCJ'lUTT@#==;v@YYv؁tzܿߪb{0sLO>a"""r4۶mbADDpX,$&&}Z>>>F/Μ9#-pssy=)))0a:mqA߷o`„ VOrwwzx۔[~=???7oFYYnnnXz8Πճ8_Ǐ7o233M6I3g͛;w]h?>*++8vJ%\,&O""556N< Ra"q !wRǣU˗cڴiV3f̰ h1n( wzi C~~~3f y444СC6㏡elٲ}mʕ^xWTT`֭Ц;.3b0 dUnPTV@Q_QFƌc΢"ڥ6/ٌRڵ :!ѬZ `׮]>!bcc;%Koߎ[naǎvy{{#''QQQ]_ ۶mÉ' `Xj,_~Fuuu}Im޼ի?YYYX~=ܰbŊ^q.1d53m4dffŋK`41y-oՈc0rDsNL& 2iܸqAtttIT([˰5 իW "" ?`20v^q.w""rڃwӶ˖-Czz4==Fo}}= ~7ݻ/Q{|'""E\]]q!յ2dL&v,FADDDz.?Oc""k…|Ԙ-fϞW1Q__Hm/Cq/uߗnRo %%f]r~"""[bw8pZ-ñn:b"""zV ӦM|ikm=z$/flذzroeffbt0 8ruFx{{[|̚5 /"\]]1ydOz&>}k׮ٔIMMŇ~<455]dNk׮ؾ}M'OC>}PPP $$$ؔͅ`;wpA\pnnn Dff&?8,""I9R(x7qq 11ѦZTeO||< )) Æ ða./bʕ+DFFڔ[f uVL:򊴎M6d"""6Uf999 BUUAg͚\qQE`5ԩSmf̘!W_}p5~ YDDD= 0 R-QvvMNm&}ݻwwX,Vƈ!GZ566vbիWy_Ə66 ԩSpO.]ƍ!!!Zp>&&%%%())AllM 6@(..FrrMDj_E]]_={Hz潾O2ׯ_ڵk_vhy.QUU///#**ʦ/233QYY1c $$D*|q!??&M`={w!]HDDU{c@/^ac8wjkkq F%='g CLL 1}tT*L&t;w@Vw#@TBPHrSHT*UOG۷n vNa0< Ĥܼy޽{f\ !Ba0u5$*"/4.))cE!PZ;"uNe___;;;1?##c#F ;{ω'b1}M, !'O}}t;w UV;qԩǏ]p!<>^^*W\A2<<\^RL `6TA6-U.@*LllbLljj7Dr} 0.B!Pf@O_+g^,wpp@؇իW#d Ǐ" ֬^~1 0#c6O) _ܱ醫+!hF$1S^ݖ(Tblʵm_|&4c FczcIi0B0X.D&%%fffThڮ.vBiB=zT^^(9///ӶA P(/:MLUUbǢܬ7ndk5u֝;wMMM@!P&tDk46(Je2/ ]]]Ǐ?x{n'օ֒ZEy{B0 M0сHT644 4mP(%c> YTĦX#nM@!P>t6R9a !Ba0 c/do~ÖaRG!B( &[o}eP!BM CNNA[pppfˠ0B!m`}a~fAa B!wܩ/ Ga0B! ÏlcLL( B!&<<\. lB!Ba' Cbb"ۄ C~~>pҤI^^^È ޴iSii)/B!/D1zv kxđw.**X/߂m۶9299!Ba Bz-6kF!LKKc0mS8q"  jgB!kRav î]"##@ 3gܻw/ѣGͼH!PzMKKǤIXϟ?-,Yj΀7! CY~;Xjjj= AAAEEE ! CHNN...fkba mB__ߤwu:&B!@( 7&%$$dddT*F«B0 xR97ONMMuZnjjD!P111)))7o޼w^}}=&B!@( _GXj|$ 5rZ{1&B!@( wwwl.HP,ɪ*$'O,-B2>>^"ʿzH^rpy)MMM"9|1rNttt`ĉ{ΖVhmm ! pqqTTTR8=_)A~' ϟ0B!օ\ddIAioڴBkvر)^Vnnn[l0GKkkkE0y0Z#$G6{mׯwpp$ vyfn*Rꫯ0Xia |B!0#2޽{wQQQ]]_B/}AAmF҂FzoѲ 6Ht+@ˆ n(l{W^c׬u:|pd/.\FPgJa B( F=ztZZ@DNi. 1AN2z$ud,T4bN\tǀ,YD@BBPB!0dڵ+22J#3gܻw/ѣGp C7-ZW]]9w6_x쁓S```fff[[Z>td@,L{ŋ---u=0г0)<,O`7nxMo}||wժUʥ+B0  =[Xd۷zYMƣiii˗/lܸÇҬ~~~k֬|4//oŊ< |͵0:**jĉ0$$"_hV\z1S>a̙3 ѷ+ !Ba2kLzzzPPPfffQQQEEECCCGGP2"4+>M !Ba`P; #&%%Xt:j˖-C8pϔ@!PInnn *JѴPl X¸q>s?Y !Ba{P8؃9:}tjj[juSSP!Ba0cbbRRRn޼y޽z 0B!@a׉sC#0X}Շq_#G?~LXg}_~awRc@/x]vAgΜQ/pׯϙ3YJq 8)SG~m !Ba0dff$AL0rGGN8QիWEH.X@TB*M\dxxBqq&" cooh7***B xO r`MM͛o)-[a&k|X/O__YYL !h{Hbp˗/cC1?ko߾]rNBa B( # (#i?4H$䲁X_]~8WWWM0SNLL f ċ䋶n*Rꫯ0h"P6۷rL%09Is]]]-Ν;" N(bԨQNNNYYY:N_XM%4SN'P! À 9$> (MԠ0 Wxa1OQII_xL/\PoiP6"`5(<i7775opcoo?cƌ/GGGzB0 01B_tI?Sp݆$MC;΀鬬,,Y"!r0a?|ta0vAZ$v%R۾ N0B!wa_OZ7D$-j甔a=7? 34i믑>>3ak'Bm G]]#9_tt4B,P6mB!̘1#--Rر_FC( viB(۷o߼y3#$eMvژ7o[wCg`kN!PR\\UPP8Izxx߿?66655577WV766ZwCg`kN!P@d0f̘G2ZFyyoiӦtJUYYjmNk'B( FA,=}t{{aqtt:u;_2YSS鬾mNk'B( Fikk++++((zsbcc&?~9v 8}4ׯ׷[}[g`kN!P\]]}=ą.^x…'mD!$%%fffThڮ.oll ! mmmUUUrssnܸI23Q([nݹs sSSÕm! Ï]]]:ǏKSSSΝ?<~xڵB Ľ{j5B $/^(->|oVVV=ztΜ9Қb<Nʢ_GJFDDDGGe=z$IrʼnmكtttHa"AT1,ܸqah@@@rrrsssaa5kL̀B)d`` V_e -_̙3!)) pv+o۶ܹsMMM}&^:AK 0B///6WWW( ׯ_I⿘"(ɼ<|!'OV+W$&\`Xf1}宮.=WUUaQ,uccGJ޾}ZVlooǴrʼnmAT}H,Zk/1 -X}a0%|$q")!1ĉMH{uT xBaI&<j,KW kӦMfr#BBLix~븹oۮCǔ H∡[lĉ`t_MkgFER:D+۶WWWWǏ/1 -X}a0%ooo1+#^~?.6d=^:AK 0(gEEEuuu?覛[[[1pl۶mȑ---i촠; X)5( RsV7l E|xA1] IrrrB"z1]iq rQX>J*W6ET/R΀/ $Iw$Ɔ$1B7WiNpjG>@5 î]"## 0TVVR,3gݻѣz믿n3I~~~fdd Dܣ߿B!.nJ='''b5֭[ӦMhѢE| lٳxbi*ot_˧ar Ӯ?ڟ꓃roZS!??aʔ)y3!V% R\N<źP }}}E%޽{.?D+ZpwbԻ*3jʟe˖hmm-**OcW1! É'Ο?w߱.,:77 JhZZZ,ںu+HH?9u===! | ˄b€(((ή{ <^0XGXnC:}tjj[juSS\b}~~>;qB!00b[JequԈ67o޻w۷8!BaaFaXa܆$E.))Pa,^9!Ba0t"4?##ƈ#<==Ξ=+믿 rtt:uÇm+ trrz] +**֭[5njztiѣG"frqq^tiiiHT>GLc8 #9rdjDmٲή7 s^z… g a^^^NbN!PCZZܹsEvZO#5'HÈG#->|034Dm۶m {w}kΗ,Y"b 裏uDY0"##-Q~! f~~HVUU!9yd/vH74뇧EEEnii';::0$9,X@|^$NiffH€n>`5m(MsĉnmmFgNUTT ۮ~0a({vB!0ᩛ~!܈Րljj)"i\\fFLjD<0nܸ?|BzB!@( @a B( R) @a B(  0P! @( B!@a@wL<==) B0AtiiZ8s1b9Pk;`}}=B!2€XS䤧# C 666Rl bddIxRj, nM6#2dPQQѣrĝyyyr@}PwAVKa)I޽=V]PPm۶#G&''uvv$2;&Nx}F[@( }iii,Q UUU5$sĉ4(VmoobgH( ZǏ755Ql]vEFF*+W̜9s޽rss3!0B( Ä?W^׮]˃3א ’%Kn߾› @10^^^555 ,MLL3T*^YTTTQQP!&ÇMMMہE_'OLJJb=^QXX+ݻwkjj5Ba jeeeuVG$haSz$-!!!##=FQ^o> !(OYRRR[[Ka ^FPP] ^51F>}:55֭[jZ޲Urrr5RUޝ`a[ 6/\ MS˾}O}Yl ᴸ8`5111)))7o޼weWٳgm3f;va2a,^l0Q0䡶94!,=qo9;;=]]{ ؾ}͛7Mvژ7okuԩngdd@QFvYV_uPPԩS>m[E#`JMMUՍkAdd`0w\|@DE<-Hį 0EDD\9*++gS6B)f~h۷oYfGq{۫k#m0ٳ'''Gz+JRT? EnR}quK'Aݻwu $%gHJJMEԠTL9.LAJb"o6~6mR*++Da>a&L ~>1'??_$XT%]]] bZЀ$fh*ݖJ*`mՕϝ; 8~1BqpJ9}4~0_^XXX^^^__o+y0 )--!IG&j&&oذ! @~&H,Eo rG0 0Xn#48'd0@~ *n3ŹWUUDyV`tvv677wwqŋ/\sC $)))55533SRݿFvuuQI>Cc8 a)=11)r1]>Dedh9NNNnii7npH 7B-\3GЫٳ]0 1Rea6$I :$blHq) f}CSTT=b\#RnݺuΝ2XwSS^5aV ~Sau[VՇ¯XzS751hѢ84ZXxySޣUyS9b_\yyyӦMӏI=PP,\ s]x߯[nᗿe߾azuNŒBřTYCf=cBgR̗.T:t4޽[ !HII :J\5jlJ6oތǕ*VPЈ??5k\|YZԉ'H)[|r___llܸÇRFKq?`0.]{ȑaaaNҏp"8 Aza1XgI kU oV @UKLY, ?ZU'OLLW_IMͦ۶ʹ03@[[[Z\\ȡ0:;;. P [o۷l޼yϞ=,3@( |PT>>> CwGd9S;03'11/::a#Baijof~(|˙`̘1#--;vx! III 0H~m߾ %r0X7h67ofDa CWW״i֮]|z`*"0aDJE? La0O EQpA:MMMU5aH( r &X,g ua̘1Gmmme,Ea VLyyoiӦjTJVΐPLw<67/^,/?,3<'DGGO>~<==%aeqtt:u;_ߩZSS ITWW;88/ѣGYF_} 5[nݹsTW$Y릫K!nx w-~ČAMi4xB`s0CuIIZƕ^[[Tva!( پ}/X>,g :C{{{kkksssCC" 5ļA5Zg0-C Zl:::h &Md,Zx1[KLa5t3F&V[!%r&,+B!%IX,+B!%IX,+B!%IX,+B!%IX,+B!$Y,+B!$Y,+B!$Y,+k$???22rҤI^^^È, Y D\h'6m*--eG( )X,g²$v]TTTWWВ[[[1!.((ضmȑ#[ZZ:;; C $˙h4GNKKc8eP^^^UUU[[Ka sĉ4(Vmoo緟 !KLXVFٵkWdd$C( ’J 3gܻw/ѣGpv%r&,+Ä? õk +` K,}Z3&00`I 0^^^555,T *@zEzzzPPPfffQQQEEECCCGGCBa`H1dXμ͹4"E É'Ο?w߱IsssKHHPTEWQ^P( ^v* 5n!-7C% QCrN>z-Zc3]5k<<<?HǕzlt;Iy[o߾g}۪T*( 6[?&&&%%͛ݫ7WٳgW~ZPPj… C BAŋC0Q,T) 30%%%uuu&*WUL'##cկ}?n"{ !!oxyy:uj`!13,,ٳ렠 GGǩS>|۶"y@''_|ڵ-<€<{۫kʚ#< s޽ O?>t|M\04/k; ]}7I+\RRBa-a&L ~1'??_$| / b>>arUL0Үq+sWP1'Rh4GNKKc\n΁lyy9zZ0~2as9ۚ0888|>6 a)!=K11) ˇHLdl[ZZDƍd5U#:qҥnBޫBVx7q__HZC/Yxج+T z={Hc$͜9Ӕ$ɧEiMDܶ]10X*v튌dPnlaaaIIIee%b^}s0W+>M CppP\;00NV:thb LyE⪫;wN@V,"H-++3gcs8/M/ ⌤SRRlP,WQ0'hZ?mW~~~H޾}BP&1_\}b0ܦL9~+UJ~_JJKKO>w`] 56QDGDboPwgϞa'R ǵ͠Yt->|PۙO~2as9ێ0l޼GدdeeEDD A5k\|YZ_' OԘ|r___ 7nD3eEt+=)Jrr2#1Ba8.)>?ʄ?l˫mWYlYvvNsOavjs~z*0 ct*C~3;UbccO@0..{:-'ƍg?>tvvs/J?6Nה5 l6 0>R|||L3!S( Ã_t0[#11/:: vr0P, 0P y931c?Ba Ǝ;^~ex@( V. 5y۷ookkmfrqq^tiiiXZQQn:''1cƬ^:==ؿ>>{"_XF(ٟW^cq+F>lÆ  a0x{{8 ge=aR[5 gXpc  .^uMa0+!\zܹsPǏ#͙3g222?i|1k\ݧOFyvvĬAь=v^Ӂ`gUUUmm-? (G!/]d0H444'3$I|)ԩSNn[0{7#_HA|||01eʔb yى=8ŋ.\H|9bƤ 1Y8DqQ'%%3WT߯j]]] Y î]"##m?J8CKKKJO>W7yӅ!JhooG?"l,={ZzNII_ʕ+NNN BXСCX`p5q/_dU FL,R|hܸq5jfCa0 UUUrss!{R2yC(//3g}֭;w71@SSo/ p۔0 Bogx!.fʕΡ3CZZ}}}lܸ1! quu_|"""|||MY˘;jCaDaOs|M$1ܽ{Co tP<6֊=1cPS'4 1Y8DqQ#Pոkkkqշa@!ێ0$&&T*Wo>Ћnݺ``}̾ޠ3w4#@YCT*K~ӢX8 ͦ@,Clep8ߓ'Oo+޽{wʧK/_Ia0PČG`00$_ B004~>T,Ŝ0P!  CUUի}}}}||^~e 67KnjVb_^2O?0P( B!0ꫯbN FfJ%G+bNIIud Ð @a BlKFM*++mܸ>sc!?SZIKu;993.?Yfx{{/]T%x#Fxzz={ ptPPPjժcNJo?~\Cޖ-[|}}  { :rHI @!ؐ0<_~)}:C{"xwfO>҅a޼y[;vlΜ9S mllܹs'X_,MKKC ̝;ݻk׮1zA8;WW׀V{5kw#c[ϹT; 90H `B!`D???)npvv>zX$!d4& ޯG(. .<)gff$AHBϗ ArɽOPlAPW^IL `aP AZFgdd9s%,p.8~τ}=!bӓ^r'LMÀ{ |HFl@.N-44t˖-`-1MGb}J._[[k.ەI:<aP A8''~uΒAq8 ?"##'M$>M,`1!F;ٴiSii);=b 7׀Hnذ(BX'X҅%zƢj}aC G3[a 90SQQѣryyy Z-ǣݽ{wQQk<[[[# m6r䖖N:aܹ>DC+W1c onv7objeCCvMcԩS/\P̪ 0$iƲcZ&Nx}F[@̤( }e8z贴4S( 檪Z 1H@!Zm{{;LP.]X-7ސ{Q֭6888,^غaѢEqqqոϝ;NY>ʕ+NNNP/ۡCfϞ+aP8:vs]xGJJz9%%EZYT[bQ116ۚ66T1Ƙp p#,"aYVA70ay;w;}yϻzyRQO f A@ Vͅ#3E>HwkJs v u]](`HDރ4 %$$L2%999//!Jj_=Z]]B@GAPPPTTTjj*#i@ɱcn@OH P0PعUXLak׮]ߑLN? #i@jllOLLH$iUt!D00|٤fT'SL=z NCȞ[-,,/=U#++kX{y/ÈGd(Gԛ3_x166ݻeeeiWIOOi&'''KKKggիWs<6zN.500L4 D" Z hg00zpBLL̝;wJJJr^W1c^|Ϊ*g%` ` `PsB9b00000XB,G#C@ъ]MKK+**jllTѫ,]TثQFTa  BBB.\صYfMqq1BddE0\`>_/f+**lhbb2qč7&$$xB)5+ B$ ƍz*ӧOO2xƌNۖ͞8q5k6spp`nea={V@^[w+T2lMTc;;ѣG00:0@uzySiGA1p3g(0`lvLlΝ;S{Qe6n5a+۳fUnJi1_eP@3gl:k&<)@ؙ0 7tg/;T|4\W\ k@Qua57 322ۇgy8H"eee,w]:":"7bq, ňH$Ν]a322Zd s7of->Ϣ)moo 6vZ}DvV0Kll,[T $[–akpiU24HswE1  OCʼWQ]v}̅f0)3۷oYn\ k7n :;;<[ZZ"ļy9 V@⅌G;%T\سQ4bFvuuy8(;Ti& /\MuslEEiʵf1-1آ_gP6_ ؓ_ 5cg P`</Vf0E`.Ç1.mczƍ...ΘO-\Z7- ʫ??SL VVVIAc\N~h'0Yöf@kġ2˨UfUYAz",l~+ CboHW fqqޒ랧ʿY a`u OOOU?ڵŸXb+ DTJ.*n_̃(qqqs٘5k“گ0*x߭Gq2ņ&*g`ɮ*%In)Ojj-&O^PPX&vCرcY`;21@Yk%Iw+T2 SN`+  FFFW)75{LLL0fSRR$h޽~;f۷oc⭷/*DՄ>peGTK 5JE)y#Օ=x_Ls“^ R[ϟ[\.\0vsۇ?54Q>{p=WǞR|YRn?"?9{챘P?Fȵk 7o"9;;wvv,gU=TqV,Cd 0 zVL»^*l>=oȞa" ֯Zz5fO<"0(ېA,֒A=?>O>%33F3=fsNY`7#1OE/&&q,33ɓ'_~v޽-[K 988`\ef(ʿ/vafΜ/9rmK/RiqqŋH d0a.{NNᆱ^@W_Y`)?M 7[}i֭%-(55شiӍ7W...;\P¶Y فXV*wCQxK,7uTXf%/@fiaagPv\ǎ?~\boH^`ؾ};+:=|XVVxʕs#$_x999}TlEKI;0ȩQ,gggߺuڵk!!!3M]N/_Q+$D+CssD")((HOOOHHw)***66699Y$zzzVԾԾ3=zZ[[[RRf@qHfpx,x x I{4H # `\xd}TJJJjjݻwb1bsKK lEK;v&`"`C^^^FF kSrKWcI3ъD0 J$ =SLEEEeeeUUU Ѓz/pۙAQ!}:6 -_+$D+Cww7bU[[[SSo> NUCQMTU4[QR 1CWWWGGGkk+~6u9-80 i&ZFpHUl-;0P'AA Gd"00H$D@"H$D"0H$D@"H $D"0H$D"H $D@"H$D"0H$D@"H $D"0h|||\]]F8Kb bHA[0ȋH'I$=0?8//Gсi2!#%;;{Ǐnoo|a(D~Dg`H$&L#6`(//ihh `04}NNNmmm]]]P$IɀLJ!''5O?D^D"?I"90xyy}ˆ III`Urss yQ$d@`mm]WWGlfD )S$''UTT455uww0ȋH'I$=Jp AAAQQQdOTNNR)F=D~D"`  ~?= P቉"H"ڵkw0% OH ڞ6צNj0LV aʔ)GXHMŋw-++kiiŬ#++A^T?Pʠ+CD~R2[49S۞;;;w0 &M:"h Ic^p!&&Ν;%%%>Ŭ233;|0~ +{22t0ODDLȴw۷.ӺuɟJvO&WWW422rʶaV`$BcFPZr  a6zCcIKK+**jllQ``ZbX,&`Տ!@@c?N'$$\|ك4Y5Y7Ǵ_r%˶21;  |1VVq!u9s&;a((ͮ]hVUjruϟ?t`@`T u``30 .=##y߾}·裴Aਟ4%f$F_|sN$nnntEj T@_#dggg ի*x+W?~vf+\]]ao~0-)) bرcIBB\`3fpظuf-[鎎l٦&?ӊ~X޼y^^^1B`-!O?YYYlӦMcK.e_I1[t{{;&&&X"Tb`|I^u.(99"ct>JKy#AsɀӧO# J&&& Czz:*aaa ͏BBB>cт ,--=<<~m= B,,,;v쨬T=lC-tr'L/_\n?ʶ577W\?b6P2im=*Ktq+p(T1[\?HV@*u8tuvŋ _6}6hpk}AA1۳g7lpmJu+WM+{X,~7puѣ5] Zl/~ L?XE80O=CA?zT[[*fK* Xu8A/0btKځA@O) Gi0|7Јd0ɤTff&hMc0,,l[v? @&J N 55500p޽:v!YN`MMMCCVJp=NMMMٱcDzLLL0fSRRtazժUl# 1E\ N*<ÖoA̯&w=y;[~PqV~  %I߯ ]0D5p)d0ťT"g~D H?x{{Ϝ9=֌ח=q,IjllF4dFo۶mŊ ֭[g`֑$70<0,_<44ĵk~'sQ a>7 Znϗ/_f+('e۲sKuppl=VEJm=y͛7^8;;9| vT'>U*{Ƈ9 L08`! CQ# gϞtR||}BBDD+'hދjV?)**lhhPYn;~ܚ69\ig.sASEKjHC s]@ W ޽[ZZs_'`hjֶvZ_P!`4Tn+ʉO=u֪7t;HX;)))33P]]ƳȺv%?^/͍7u[F Jm/_?R!j@!!!s566B>0Pܵk;HX;"" bYdA/APH4JX-˧C"gG \A,JV>eʔѣG(>I#e~"1(C H YAÇ)Y!`PI&a+Hdh 0000VX!)Y!`B\t)AO8lbb2k֬W988XXXxyyOLLD7n'VVq7_:ujƌ8)SΜ9!{(Jbnnh"!@Y[[SB p;}4–1Bـdjj:mڴ={tvv{ߢl@+**l"M8qƍ 6>$3[ t6-Jwagg}]3Aۻ>((ͮ] … ⌌,YRXXаyf8 \a!JKKr }--++ÄƆ }J7E@ Pl G7hMMM_==+~O㡡H(%ɹs/^y``ڰaތ$3-;>x`FFƣG4+0Ο4[}4++`vڴi,[nYL`vٲel 9n͛71 F0cxR+W#hq;Z_!m߄K@,5ڤ$~۔E79hʞL# لou++رc1MH\~$3-;NKKS'W0?0p_c]]]}T }OTx0p_lnnƬ-577W\?5 NH!5ZGo7Ǿ~j'` `PPb۔E_2qwYxpǎ;*+++ ~$3-Ux\^A,st}Jx=PQQQ___^^1333dB[h6 W#$~AYP0pg aV*27xɉ?F ҥKf %nÀ35 IܕRhԨQC%-c]tťT"  ߯Sn  *5vnI7n?狏o+gvGJrrrwccǎ<0` 8p@FQs;@^A@#w㝉3zjgggYYY@@F*K!-77Wn.9='_*гI$~t*9Dttf777G00}YYt[|9f:֖2uT{fϼ*[g^ˌㆆ"Yv{Ѱa̙77b# Tooo[[[###M6ݸqCť'NT*&2s<==KwH"00(KVoޮv/JW`P% [ےB>?@D2h!4333D"XLa0(%`~̝; bhh>% :H$ 6(((***55Hc  $6AǀҲ:+4h988FFF H $üy⨳H|SO D@"`C`سg۩HSOOϜ9s6o|…;w3  $A:;;+48qȑ#!!!eee  $JS*+++\gĉgϞ^K"{?<<;?aʕ'O6331ct}jP͛Ǐ_xI&:;;?۶m裏 N:w܅ ˗/GFF޾}ލAKӃ0`FtD"%6@Xlhh`!P//00H a>|X]] fIIIA}5$S|UV͞={„ ...˖-ogwwwS3 Hh6m?O<1zh{{Yf=s/po688844։u?VCۡ9@ ]]]h-d?u$I0F0R0^l H¢Jxv5C_޸iiihHLcbb"##^z% {/Z L_xa$8afee@~~~իWϛ7oҤI.;;iӦk׮ݻwnܸ_\b׼yd+){67~]]]gjɒ% ;ykڶm7sbAQBveBEů 6曻v>ӓ'OW.8*M`V`1 nbxpֆay@]Z[['7D@@"gTTTjj*GͼkT*e[㠵9kiiiqqfgggff2@ A⛘x 111(?ڵk(.]9,, 942iȭm=z??r䈟ߞ={&ӻ^?o%m{WQ2}(3JHuAP+WZjl00``l’{!VTT`y؟נ.&0H$0ǹ]֌677766#E:[YY)E0DYYYwE6{$# vu t||<2i -]0SU&{Ő)lh}rgy?K;9 E  jz1^ sT2[b%<|vaK@" $2looomme H$%JJJcD9;;942i.g3`q[$nɄ::=e8x0h90|7ЈdI; Z(//okk1H2gr mp K"L01R?#kMMMCC9DԷ~fB gN:Z3$푋Kii)b4hT*%` Gl30|||;UVVCZ͟?O?e5   #7Ξ={ҥx$eeeUUU%` ig&/ AAAQQQVvvv j7|09CCwE(xS7,566ZXX'&&D"D3gӮ]TD3H;RZ(`GG~!~Aǂ7{{à P3ī. t/޽{Lg49p<<<>TP h2eѣ/}YF,H :322    9 bbbܹSRR_0e433;|0.äIH$2PAH `Q``-xAC_}m Μ566(00XB,0003!`PHK.#0hg,//'` `+`~'ƌ石"##,,,-ZY=0gN:5c )S9sFŝsYlnll]aʶe!!! .433YfMqq:@]johhi`  FPbb"rܸqVVVW^V*رnъYEUTTlٲcĉ7nLHH7;`N6mϞ=r[8q5k⡐999M8QQʼ"tieN0&*`` 0(ܹs{zz0ߧz lݺup=Sk9B+booϺ %ղ+~+~8f 6g*v>;99ĴnڴI`ccZ0(C5%`0\` 333CO䖲qu-6{MlL`vٲe}d̘1|6400$''ٖvA/Mj'0@O>$ 7 YYYlӦMol {9;K1u7-twwcMXǟe+7x3atRRReUSV):h2ѱO[7XYYbf0boQg*v>|r"[Z.`rC5%`0P`ꫯ͛'HKX8ðV- @^Uq?]bϰB}?daaOf da"'رcGee)Emm믿Ȉ+*> /~6P`P}zM`ஜ H}zuM.\@Y[_xάbTZ}@euV Z0 @] WS10P}ϞXf 0UK~C2`ЩGЧgGV\\L$&0(]fObog7$aV* dZ7x3a(Z5v^a@#0#qL*^gMGzkJ`0D~bbbR|{=*=_"N0!O>h̜3gC؉*=0 ܄D`pMdΠN뀀kAثi塡].^lvCڐO:u(f^xbֹ?h23gt%\]]QӧOcܹs? zɓ_Ľwޖ-[ h!~MWYSѡޚ0.0@I p\&OOOtGU-B|rwwNsmX\\fkUĉ0 oOj Tooo[[[ M6ݸqCE`*r[n]''[VWW^lD~zSSS _L+B...a5N8qM=sNU<Uŋ +070/㏣{hA '^gMj)oUIUv뭮?L(;;Cm)cDD+c` i i HѺ8ޟ  7x?z(00P[o2jtUk׮MKKJ\$ ֺujkkUejH 'T&s-ohA?HM@ҽ?T}5sVVVPq:70OR?F@3 6)S $` ` A"?I@"` 0P'A@@~D~D@"`O|$3CHH… lll֬YS\\ uԩ3fL2̙3q0!` Hԟ  322Ǿ-5j004JKKGwI[eeeE@>G  !Iͫ+//O$SVVֵkׂy:ѱcǂtUOUSSC@`HNNf`̚rKO)e[W{w,...++LLLr96 -vA렍>|H@>GK{ 齟$`R)2 .:t裏>ھ}of͚~3gΜ1cƄ^qhmmm۫ɓ'Oi<-ŋ~z\]]m*KKK>?+If ;|^+W%G'i$!!!aN䐠_`z a  ===!!IAuF  soO";D6w\www,|Y'O3\"Z"%ݻw/]j~嗨gᥗ^ߧz y6gSSS888 =׿޼y3wٽ{駟'>|Ye )H 2qeث$nlK zث/??"'|gϞ6m6l-ӯ~+///' %$ E؇kH$=z4}Xlll)WTTחfff&Ih ZmF@>GKIdmmmVV֭[)"#׿%%K,aY9sO<wZؘ;'mffƝÚ3y={ Zj֭[RYT\;¸r>c['g͚ Xl0`{+gΜa~d, x\|ʕ+W^eLȘd)F뽊)N݊ubzJիHXi#dbU**uWfLuLpp§͛كbFW`bbv6[@t۫NťT" R) I% ^eDP5wfIC?֫ĝm۶K?oԡkn}{L(rgQk9 ` 4,gY~||7oʄ$'))`~Td#SL۫L5!:Owzʓګdbefz[$nɄ &ʔ */'0q%K`O>AW@73g"0,Zp=DD2D"iOqWҐñ\*f}&\.(wNZ44G&Yj9;wtv_?; R7ﳲٽyyydTXXX$SL%2L&U֫RJzJRԫBXi dbUȗ OCd>`5칢]}n͚5666Ǐ+C@@S(*P $` C"4'Riss3)#?̑eDP5wfZ:W9i HyJ 5!w?Kٹ,ri4KYϲ|aDR%SuuuMMMmmm]]]Lhez(SLͽjUbiXdFjPAL22q|1  ҟ (x 1ƒ7 L fhkkCֈDP1 3rAsҊ'92R]ٱsrY-عE 58`6d=fmwuuΏdEw#BLTgPP68DO#PXb IaRRRff&\3 e$` C"TW:2,ʝLOK;'-wZ ^UICpgY+g-w: :- $YDDbH$9$ItOJ44G&Yj9;wtv_O00P&lmmRSSH$9`daa[  $diiH1}.,00H$E`qGVyzzzlllDDLȴw۷.ӺuɟJ=fffO&WWW422rʶaV;wZ۷U*::uB}kkk0͛G1>S@@"t i˗/#W޿={F{{{#f:K1W\ɲ:~xL!!!Jx*//secߚ;ƪ*Xu9s&;aJ0膐!H={0iT^^{'$$Dʶ6FɓO>G9!LLL*++St442T<򺻻i,BBB>cт ,--=<<~mDϜf``ܹsnjC'uH$cc3f/R)IKT8|pp0i䔐̾@"={xÆ oߦn8ŭ\==m4dn]]]illl [nIktFG_]x(S^^CAoP @L9eff'x%{KS>>>1BFFk jiiIMMEܻw/]0`-XSSЀդR)p P[[[kkkKJJ _!!E;EEE"DҺ:DAhéS8b"GK#(8IDZhnnVXD H?x{{Ϝ9=֌ח=ܔ؈ ޶mۊ+ȭ[nϞ=Mт$C7:;; HȀ>`{_ڦ ~u|X FE2W000={ҥKR#eeeUUU}@ vmV+W* gڶmzjw޼y#9Xh_~ClH$I nmmmjjB>l#'(+6vۥ!.?@-5mSTTTYY ϩƳݲ ;,, 5{m({s(K [r]澃ؗT7@{,,:$8Ρlw---o0h;?0="!GfL.4жHJJ3TWW,lO.nWKs#yHB- 8D"0004`H$"ڵKKԲ4N5pD"` `DDmn ŀAAAQQQE4 00H$qZBfF33$` ` H$CtRXLcD"H O2e3N:%>|G뭷\!!! .433YfMqq1addE0+8qd֬YW^spp*''gkB+V7n'֔;bPPJ;v؁sY[[c[}^W]h3gWh-[8::bÉ'nܸ1!![xYeMK;v١ @@@"H   XZL"8y$w طofy.eD켴efđm]__$ͮ]i?5⌌,YRXXаyf3w\ѣGiÆ (>k\X:Xll*MC,_";wnW[Xf  ` ` H$K׀[n)94i*7rrr2mii)eI$fo޼Y///yyynoovww5dk"AĢ,6[SSiӦ[rttD75.`˖-S坄~) -N,6Tf  ` `a Z[[VqvƴV=-..&` `\s_mnnX%%%/ѣ܍Z+wvvrssss2O]]]P}M Ew7f̘>7bR]`k\[[[U6G{yxxرR;s* @@' ) vttq"{GGG#?z􈀁dxbL=zT*"RLeiQfYX[[+j&).]9:U^,NNNe 00$Ʉ (,//ihh0D >NUB!0o?00=0ݒnhooݻwF%w AV[ F`m##-IrMϩ=>-Iܝo}ޒ$g \}au999EEEH͟?O?3׷* i  $H,Xs>sEv%00'_Ys=n޼ibb䲳 qGfΜ)7~b6&&F_|yhh(͵kװ+=+@3Rг\{pAtH 233 HVZ fhoo   z ;%~^ijj:iҤEjĉ*, ?[\&Tooo[[[###6mqΝ;To ڡ_wqs ֭[gggi֭~+}*'NP|4E=A  kk뺺: #"" "@8似niB`ptt18WơO}D]OBBPPPTTTjjX;''ΎUD*J ȫHN ׭['kצ!6.h00(Sx^566ZXX'&&D"Dt-Ԯ]T y$$ *$$dܹVVVP $}v+#xrózs]:.xbllݻwZZZtqhxxxdee000H    .\sNIIÇuqh@fff&`dD@"` `N@Z'7ҊuVX! (Y!` 0($Qtڴi{砧N1cɔ)SΜ9?T+cϟ6$$d…fff666k֬)..6LLLDJ7n8+++OOϫW0i|ѢE{N>M=E`Pfա_a DasϪ?Y[[0PB@"` 00Ph_whmmmjj:pL$܇WbccU)SLLL[[[nnMuwwhnn޷o [gdddn޼Y^w`PfR- oDGG |hIتjy8JZ]t/ ? b"bgg3ʊD@`{pqqg>.1,i]`@feeٚN6MAIpKo޼Y///6^VYU$!`|I%+&&&^rIaygh 00F8־뎎FFF\ 5zh~AmmmU ʒf%.o(' LjnnYťr̪C}?%+ OH$ HlhhuA͛7_x|߾}-O $ Gľ-JL i*۲QY!hDó3ЁAU CU\\L$0 0TTT#MAΚLҬ`sXG+k #7nܪUN8gl%izzz׿Ξ={֬Y>>> ~:xD_B`އ+fgtxx@x-Il)wK3<-I *O00-KiiD"-477KR5C찲… ǎx?HWFVUUU|駷nzo,)ЎjD@PhgO}RRRNel'tcbbTl@{mٲE͛&&&Cgg'C0(3){虿3&}虀A`pssKOO^ 4P? όKq$;;o|ر?+WDE1c/M1| "Q9~8 /L4I˳>m۶>pԩs]pᄏ|2۷E"ƫO $ vDccce"_www777x࿭Hx[(33_~Ǎ_*p!55:88lڴƍ LckUeāK]\\c' ۷`] =$Ç`qqq׮]Cb<7\jٳ'L`ll`lٲ}YXXX~~~ww75ӀLNNF ?O<1zh{{Yf=s/ٳN||[:jh;`SSz>0F>ִֺ *L΄DDRXTTTYY >v\~8777333-- -iLLLddիW/]8x{キ~E"Z[[zyy>' `Ҭ,@|zyM4egg7m4pڵ?Ó'O>}BayI.wA +**p&An:Z9i~2)) "E#ѣG]]]*X\\\|= }Dׯ_F"{尰믿޿_}͚5` $ '̐O>ʕ+}||~{b/hD"{|Q B!AAAB?[/s=̮@'O,\^@}]ѣ  `Ccpll7@J@Dy )P KQi6*U[MMk[6٤qcӘTf= =$,ZhF b|A28( ~30\也y~1RKT)a&2>JVbnzbbҒJ߿/l~x%ak׼0Lw0 D8bhhh``OY[WWם;w$5LnR.Hr,Me:K-Reg+Pc.?c$//L~,5*666Aϲ.IׯKյ]Z@\DZFHWwwriCiIiOiU?0W׮#G,\088^Gr̬)VZ>رc- ZlYvv?IfsXB>Farn$A)Ν;e}]䌵]0 @t! 5UJ uwXC n0 M6rIUܼy |2b -HQu2Mϻب j~Q)/aAͩp\PP`sss_u5Xdc^{8?iTT@T|r4 y%uZ2i.$V;|tVݏ<>֠b*9rd…^z̙3}YBBjccu+օAE3tׯZr4wq[v}ތ ajvAAn7L:ۻazU駟OI:rY  8ҝ\ ul>))… 6ڵk۶ms'8f{G˗iXFnڴݻ'OT͛7K8R줛]IOiZXlr)))tWnnn5رcK'q}@z0nI@GnIUqܹR,++s>oa,Xa@" hZy%Ubzzaݺu2|ԩqsXpwͮuݏ<2gWWpuw.fyg|FQ# թ;wdɒG\^% c$ tUa>o׮]t:#һ1iii{JVDDDdff" TN ǝDdXUUX,R9e{䎹'00Pft_)cQm=dA)J̘0EPPԣبlrQG0_6rAGZvЪ0lذA]U?vyF{w?mrA5Hkk+$! Sɥݞ;:8xDZ3+ +z ŜQXl* + c$ tUatKKKG ҹs" Nw>0 a7yΜ9S=‘;6nppi{+YǍtfZx fgϪ׉" BJJ/ GA=:,ɷ`020焄ڵkK|+++CCCϟ7oܹӝ0]OVy_ù0$ۿօ_7M: .l``@,9&/p}@z0ے0еVd2mݺ5&&&$$$---77y-[IOJJz;;;ݻwKjΛ0^N+Wʎ9Ϝ"[woֳ>_:8i{z܏yWDDZZZz+a@a@޽ `,=z/ر?z} a@nrdqqqOi=Gz`T9__z`0X,o9{ʟ aa6ѣ|MVVֱcr=ӧ Oa#s=/g tNN΃}QXX|YXXXVVaټ$HP_Co0 a[U8~x^^tg=%555MMM'Ȱg=/g pĉ˗jEm]-lٲ?믿van{Ȋ aA3ߊ-JQ[[+QdXJy' K.I/ !xE,s~[_%N޿ppKbDl 5V lɇRRR MHNNnkk3L-˄~9C|?CA/;wNo}Q[@sSXRՆ ]]]>zbb[! 0̦0㏥M ۷ݻgZ? ;w3~իWEm]-"g ۍ7Fx ]^?% aAF݊*0ѣGv]r ȑ ^ 12&GQ@KK*BN@o0 aa-+m(bGG:z{{HDݳl'Ȱ.O#g!7444Q[@@i˗/JZY°vڱga + c$ xX̙3lH礿tMG.nIk6C&t)7" 222\Di7|SF0nI@0$$$Ȃ׮]vCl6[UUŋG>ּf8CcM^p`ZjcHIIq4! /lZA_x͛;wԢ0ے0 aǎw&i֭111!!!iii85,,,55ȑ#!;zӦM:N\e۶m?30Vǰ{n|aM fTz $  " F+ k׎4$ S_$͖a8˖- ^hw}7V׿1999HPP,.+6cƚzè0AE3S dq%K8p```_bEhhhLLƍ[[[v={sΥZJc.Vqa%a@c !h4Jbqq XVV&Q)22̙3jXVxל? Qk.0VǠؾ}{ww7;3V47۷Ofdd"wbRSS^jX>S)Y/e>|1g"2 E3M0nI@0\tIe@oư xԩФZDz2LpsX\vzOE䱶0 _! iaGfCCCHrrsSYYVU]p{rU賤bzzHapZ<& LUbH166yѣG_}UlLLev=v={O0,2o޼GQn6w%)Nsq*:Pr$wOΛ ) W08KL%a@`AԨ(mOOϴ c\apKRzzzkkhvڱauRWWvjL{I\a%a@`nIK655 %qw-Ik֬$w:c} a E uxtKKKwavKZd[\|:uK€0DŽA=x… Â`CCs='k]0nK€0DŽ!+++555,,l…٣F39VUŏ9"Sgff&''y" #;ݻw;3<}D3d2mݺ5&&&$$$---77}ap{EZհǬ\RzIܳNK€0DŽ#;P__n[6Ѯ0$&&z7g&7GϓL]oI@}aؼy+Wv7ԻB? Ö-[f6S- / ˗/ a(((n`d- 0`0[@h@h B1€0[@h0Y 񉏏 7qqq4Ȱ6A W_}uo&++رcӧ Oa#ii#  ؂ 7eee555MMM'Ȱ񴉴bAyq=0|b zҿ̸dXxDZf! ~uܯ# 0/'''L&ɌimbXv; $hur0L CNNΏ?XZZ{ ۷ݻGkl:000hWz83- ꞿ*Rda@gEgv̎0---6G4А6Wx#uJ}RwJ/_\[[+11M:;;V+!=ᡯ)tMz 61Z|޽{aЌ0LnW>'O,**֘b=ۤYo*! €0LUf54' ZjÇ# €00?7A~zш0  ȲBBB,Yr5֭[;wLLL wF͘˖-e-Zw9oܹsaaaV\l *86&''G U ZV X"444&&fƍ0aay߾}z7##Cְ~5i͚5R,((&)77_EHy穒FQ);l! @M5 2 ő0W\WaX?gΜAqGx\ CjjիW-˧~*E #A}na@f&!YCrr*Ν;W·ΰLԩSIIIæ^tIe@o*1B^( cUaX80"2,utȕkaTEժ. c `Q2a@+E6ͻvJLLt$, @M$^ OKK۳gOGGsv{Qɕ_}U42cW-cccU1,,lT0Vq! YI"""233q۾}`BJJ| x0lذA݃%E{/))9bTTzgl[Rg }b OE]L>yAQ-aN ׇ0+~߾}O?%n<|cFatNgKKKGMR{{{ճsueccce`ҥMMM%IMu%iΜ9%)88XWŪ$9n4$atSn3&JJJHӽ91E!l6|:aXn,r!$]xs*S ftcgϞU = ?3.\p*b`0O ;{9!!Avڬ XUpnիW.U[[/|y͚5wzF3L|g۷o'5Z$&/g{n___4@JM&֭[cbbBBBrssԒ-['%%#s}9fee-\0;;{kUrJy穙Zձo7n6|駥.yyyVUV":r3DaL0q 'ڰ v`gÛ 0w Ya׫;fM+ z͙ &J-Zn͛7_rn߸qcڵ{pÄزelv<"L1WTTT]],v'@K/_%PPP0mQayܻww4Mw€0x0j Qk-Z0yÉ9pw~(.. j7a@TA!443, /0|.\_€0 SF se ôVAvɢ+W€0 !::://oav["##V\y祎;hѢe˖egg[V9p^zI3ߺukΝ2g||[VV昪_<ֆܩ<dɒ 'N;wN=MoL0=HBkhA}QPRRV^2;v8 #aӦMw=y*n޼YRX15kdLAAn7L(3=fݼJo>^ۛ!3߿fA*+ g4ϟ0, 1Օ>}:ZKݥ O&> `ɛgXԗR;wHqɒ%#|eUtҨpuw. pppcsʘ2LoȤ Uy&! Ψ'''Ϙ0/ L5Rk #byRRDDDff Cxx=q|<&&FVUU$;w.t5F6gϞ$c~Ef]֭[wmoo찶ZKݥ>[cdl60I[[[=U&* m:fh4{IIIεvsCVdÆ $al>$ 0a޼yܦ 99d2IfB kI|;& :c}mA7ꩃqoIr蠷W=0w\[čݼ%iΜ9æFFF:+Gii);ú^pmtiϑm"3 V\SS3cQed\QQpBIВ#-++kժUjsyu fٳg[ez?1< S]rs!VUUxba@A°{*՛6mto۶vLLNN KMM0lٲ%..N%))ZU#G8?J1٫xL[Ą" 0 &Ǎ---67Dz2RKj EaaF˗/J~L{lNՊ0h-[f06o|~ ds€0zz 61Z޽{z2*˗/ a(((nÇ 0]&'O,**H{N~I[]F#+UHKKC*>h|ll,_zg>37<& =|00!"""zzz ^^OHH8qRn[@a@Cz2 X~hDW_-))!2x-|+"  0 %a,x(!$$dɒ%p^$??Ŋ1117nlmmuj?q ðDttt^^rp޽S=)_|L}M:0o>o3MMMW/ȑ#_~e~~~qqA- 0-ICCC2Crr(}<ʕ+cmb`f! |4>>>''/> 233 :::l6- 0h[f]u:#su;;ɮA0lXKDDDH0F<ĉ˗/ | e˖}_wuuvZ@aж0lذA݃$]wg} Czzzkk3L}1.]:{l~~(sa? /~}?90 0gΜa뉌1VUKKKNw*a>38/^&D^Qappu޽{ fi/f a 0€0 d˖-f`?(lhE@a@Y8&€0  0€0 €0  ӉH➂& ^W_=zo:vXuuu'Ȱsܿaaea[U8~x^^^aaMYYYMMMSS 2,cdYŹM, ߊ-Mmmdw 2FW+mb@_|Q䶶6$`Xv;?bn`}{V/ a@/-LZ:::@b/_gZ o1^/`4{" @;sPXXhѢIDh+;MNm_^^.hdddTTʕ+Ϝ9Աc-Zlٲa˞;w.===<<<,,lժURt^ߞ7oZIR%K8p```aK輼<a@`F0tիW777wwwرC}UZM= 5XMʀ *tvڵm۶9o>^ۛ!ܿ?B۷o0 0C cTΝ;R\d*]VT/]2R+**֭Sݫ!399aW # 3! #S@55&&FVU-FNkfy׮]:αр 0 ̜0H?SݰaKvy\ap#IOOommuf €0 uQ^^ިY[T-Io G6224JKKqA|a@_aD X~hDAo9{쉋 Pe[jRHHȒ%K8000XU}}o=o޼e˖?~|AgvvIppEQa< #J ZV X"444&&fƍ0aa5/zÇۧz{{322dIaaaIII.\l׮]۶m۬ mmmFqժUR,..5џ3gX "8#k!55Ub|R\f 0R۷oFApK <ɪn:):uKnIRUt*ʀxQDኊ U,++s- hZեa,a,X J0 &appyl޵kWbbNs$|åU Y*Z,)NTbbbFDž08rdɞz'vLA0l 6{h۝gS C{" .&J@o9s渓FFF:Υγ2\XX[e_Fޒh[wAI@̙k4Mf.]MHLLD a@|M6o|~ƍkת! b˖-f0  C~~˃D fM4* 0@@aF 0  0  yM@j0O>Mde'hFms€0LF$4LMMM555eeegȳmbX8a@&# nݺ{n{{dD\_jq Zgfq€0żyINNnkk3Lb ns€0:`}{V 0466ttttwws€0]._\[[+iZ9a@f944T׋3444FI=ydQQQuuuKKKww7 $"" 233 :::l6' ZE<ĉ˗/ | `-[?맟~ns UzzzFc}}KΞ=/ q\ nj9?/~AN4@Çf! yŋϝ;YPLQQQqqqeeeCCC[[[WWf{' f``bܹsG2ׯ_z`"1#Gov (jZyn޽{omhnnnzMPLKK`[(qQ./#088^޽0䘑#G& :44-xc@a@a@a@a@@a@@S0 89YIENDB`fedmsg-0.9.3/CHANGELOG.rst0000644000175000017500000030726512371202076016742 0ustar threebeanthreebean00000000000000Changelog ========= 0.9.3 ----- - Be more careful with new status lock /cc @tflink. `dc405be97 `_ - Disable the backlog stuff out of the box. It bit @tflink. `c0f789a60 `_ 0.9.2 ----- - Typofix. `f55a6d7f1 `_ - Merge pull request #268 from fedora-infra/feature/typofix `4fd120aea `_ - add message to configuration incomplete. `2669fc016 `_ - Merge pull request #269 from arielb2/develop `152d290aa `_ - Two little typofixes. `71f05afc5 `_ - Merge branch 'develop' of github.com:fedora-infra/fedmsg into develop `3fa23e35e `_ - Keep status on lock. `b50eb9a37 `_ - Merge pull request #270 from fedora-infra/feature/keep-status-on-lock `1de393ba6 `_ - Use fedmsg.encoding here so we can encode moksha.hub.zeromq.ZMQMessage objects. `1ab33b107 `_ - Require psutil in the setup.py `8770e44a4 `_ - Merge pull request #272 from fedora-infra/feature/psutil `b6f3ed86e `_ 0.9.1 ----- - Some py2.6 fixes. `ed74506fc `_ - Merge pull request #267 from fedora-infra/feature/py2.6-fixes `7ba7d0c04 `_ 0.9.0 ----- - Change highlight color in the docs. Fixes #250 `c6dc6777b `_ - Link to datagrepper from the top of fedmsg.com. `4d51b15c5 `_ - We're past this now. `e6e932375 `_ - Add link to new topics doc. `e9715d4fd `_ - Merge pull request #252 from fedora-infra/feature/doc-split `e41a38d9a `_ - Remove this block now that doc_utilities is moved away. `5761d487a `_ - Touching up/shuffling around docs. `c75ad229c `_ - Test the dict_query function in fedmsg.utils. `890b9d2c8 `_ - Merge pull request #253 from fedora-infra/feature/testing-utils `d3f40fd80 `_ - Fix typo in head-consumer approach section `5a2403c70 `_ - Adjust file header. `7b71c5162 `_ - Add a new "replay" command. `dff09690d `_ - Add the actual code for the "replay" command. `1a2ea5ad2 `_ - Documentation for the replay command. `0b52f6ee3 `_ - Fix bug identified in oddshocks/fedimg#1 `728ee32aa `_ - Merge pull request #256 from fedora-infra/feature/replay `27fcc9bad `_ - Use more https links `e3a799468 `_ - systemd units: Shorten documentation URL `18042941f `_ - setup.py: Fix PEP8 violation `1126e45d5 `_ - fedmsg/consumers/ircbot.py: Fix PEP8 violation `c7cb6d5ac `_ - Allow optional markup of msg2subtitle. `68379a1a3 `_ - Merge pull request #258 from fedora-infra/feature/optional-markup `2d0e75221 `_ - Merge pull request #257 from tyll/https `091bd36ea `_ - fedmsg/meta: make sure an empty subtopic returns an empty string `4648a7d53 `_ - Merge pull request #259 from olasd/bugfix/fedmsg_meta_empty_subtopic `2dd64e904 `_ - fix broken link to virtualenvwrapper `7eac79bc6 `_ - Merge pull request #261 from herlo/develop `e4a22294b `_ - Update our fedmsg-emit.php file... `01c6bec06 `_ - fixed: * postgresql startup command * pg_hba entries for ipv6 * installation of psycopg2 * enabled all services that have been started throught the document `fe3f473bd `_ - Merge pull request #264 from droopy4096/develop `909b17979 `_ - missed one "systemctl enable..." `f2ded8fe8 `_ - Merge pull request #265 from droopy4096/develop `cfec55ea4 `_ - Handle backlog on startup. `b04dd8d3f `_ - Update gitignore. `f90a8be51 `_ - PEP8. `c3f4d876e `_ - os.path.join. `03ac05353 `_ - Merge pull request #266 from fedora-infra/feature/backlog `3c52d835e `_ 0.8.0 ----- - Kill the restart hiccup. `2ae22795e `_ - Move that. `a3321d11c `_ - Careful with unsigned or invalid messages in fedmsg-irc. `3fc938cb4 `_ - Merge pull request #240 from fedora-infra/feature/restart-hiccup `68de8320a `_ - Merge pull request #239 from fedora-infra/feature/careful-with-unsigned `c10759a3a `_ - Update sysv init scripts to manage lockfile. Should fix hanging at restart. `996d806c5 `_ - Merge pull request #241 from fedora-infra/feature/more-hiccup-fixes `7002cfb86 `_ - Remove the "FIXME". This is intentional. `8ea4d25ca `_ - Copyright ©2012 - 2014 Red Hat, Inc. `93b02334c `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `95233362d `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `1c3aba6c9 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `ef7d328ac `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `abf95db70 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `000625393 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `6df04cbeb `_ - Copyright (C) 2013 - 2014 Red Hat, Inc. `d965e9f29 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `c6cdb1051 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `b0abddd0a `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `009c4796f `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `775b7535b `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `c1e4015e4 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `09f129e84 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `3491036ec `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `84230a9eb `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `4fe54804a `_ - Copyright (C) 2008 - 2014 Red Hat, Inc. `48d2e97f0 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `c1b4660a4 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `27bba681f `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `8044c9a42 `_ - Copyright (C) 2012 - 2014 Red Hat, Inc. `4f3b5d7bb `_ - Merge pull request #243 from lbazan/develop `fa66d02d6 `_ - fedmsg.com Doc copyright 2012 - 2014 `677fb56de `_ - Merge pull request #244 from lbazan/develop `c9ca4f195 `_ - Provide backlog notices for the ircbot. `a9a784e82 `_ - Merge pull request #246 from fedora-infra/feature/irc-backlog-notices `50ff43d79 `_ - Nuke the twitter bot. No one has used it in a long long time. `ef2599d31 `_ - Port to a python2/python3 codebase. `93d1aab21 `_ - Disable one weird test. `90a6f7c28 `_ - Enable python3 tests on travis. `ac0255e6f `_ - Get py2.6 tests running again. `9d96f3a53 `_ - Merge pull request #247 from fedora-infra/feature/python3-porting `0e8b8a28d `_ - Add support for zmq reconnect options. `607ce8728 `_ - Give this an appropriate name. `d44b6c2a0 `_ - Merge pull request #248 from fedora-infra/feature/zmq_reconnect `4be1b3e67 `_ - Be explicit with encodings in the gateway. `195b35dc6 `_ - Merge pull request #249 from fedora-infra/feature/explicit-encoding `452310a97 `_ 0.7.7 ----- - Add the --query argument to fedmsg-tail `adccb1048 `_ - Add support for fedmsg-taill --query to return multiple items provided as a comma separated list `13038a29e `_ - Small pep8 fix to make pep8.me happy `a29ee93f8 `_ - Fix the --query to enable filtering for multiple, different elements in the messages `de60e1a37 `_ - Handle dates too. `212f5f332 `_ - 0.7.6 `d9ceaec87 `_ - Combine the dict_query from fedmsg-config and fedmsg-tail into the same function. `efd8d242f `_ - Merge pull request #227 from fedora-infra/feature/fedmsg-tail-query-combined `a11c83f94 `_ - Merge pull request #226 from fedora-infra/feature/fedmsg-tail-query `aaf3362b6 `_ - Remove unused import. `5589ad19f `_ - @olasd is expecting this to exit with an error code. `07ade1295 `_ - @olasd is also expecting this to be top-level. `b7a85a3f7 `_ - Merge pull request #230 from fedora-infra/feature/fix-config-query `85fc2fd04 `_ - Write a first draft of a deployment doc. `5bd75de96 `_ - Seems like most people want to know about receiving before sending, actually. `494f2e83d `_ - Fix some typos pointed out by @pypingou. `1103ed796 `_ - Simplify the datagrepper wsgi config. `65cdada6a `_ - Merge pull request #231 from fedora-infra/feature/updated-docs `42b65ea89 `_ - Add API func to validate that message bears a particular sig `a878a82ac `_ - Merge pull request #232 from fedora-infra/feature/validate-signed-by `73dc1b9ef `_ - Only initialize fedmsg.meta in fedmsg-tail if we have to. `012078300 `_ - Make this log obj available at the module level for monkey patching. `88d7a9109 `_ - Issue a warning is no fedmsg.meta plugins are installed `184647b8a `_ - Automatically tack on the username to the end of logger subtitles. `ac1e44f96 `_ - Merge pull request #235 from fedora-infra/feature/automagick `661140485 `_ - Correct an outdate doc path. `c4df21d46 `_ - Skip that test under certain conditions. `9b3f65be2 `_ - Merge pull request #234 from fedora-infra/feature/warn-if-no-plugin `281439dbf `_ - Add a failing test with this one weird trick. `ba2c5270a `_ - Fix the BaseProcessor regex to work with multiple topics starting with the same text. `33fcd3aa7 `_ - Merge pull request #237 from fedora-infra/feature/regex-for-github `1a027b4d7 `_ - Remove this one noisy debug statement. `6bd2371c1 `_ - Merge pull request #238 from fedora-infra/feature/the-sound-of-silence `ea544da92 `_ - Ignore this. `244fe2ec4 `_ 0.7.6 ----- - Add a `disable_defaults` option to the config parser `2e564666a `_ - Add some features to fedmsg-config `763798610 `_ - Merge pull request #222 from olasd/feature/query-config `e5a3a1804 `_ - Avoid importing pkg_resources in fedmsg.meta `ffbc37615 `_ - Merge pull request #223 from fedora-infra/feature/avoid-pkg_resources `9bfe5ec79 `_ - Add the possibility to fedmsg-tail to only return the topics of the messages `97da58f9c `_ - When printing only the topics, no need to clean the credentials `cb2124314 `_ - Merge pull request #224 from fedora-infra/feature/tail_topics `619dc1e10 `_ - Handle dates too. `1635c4911 `_ - Merge pull request #225 from fedora-infra/feature/handle-dates-too `736f9394b `_ 0.7.5 ----- - Initial commit to enable parallel crypto verification `0971f13cd `_ - Allow configuration to choose which backends can be used to verify a certificate. `d4432556a `_ - Detect which verification backend to run on a particular message For issue #209 `8f80c80ca `_ - Fix validate to use modified copy of cfg. `610b015a5 `_ - Use an empty string here instead of None. `b77085b28 `_ - Avoid raising an exception here. `e820949f2 `_ - Merge pull request #211 from fedora-infra/feature/ease-up-on-the-exception `0c834b99e `_ - Update status doc. `98bd9f70e `_ - Some updates to the topology diagram. `c07106cee `_ - Add fmn to the topology diagram. `e881bfa34 `_ - Build of the topology doc. `468dd3fa2 `_ - Merge pull request #212 from fedora-infra/feature/updated-status `53681fe67 `_ - Blame the right project for JSON format `2e1bb6105 `_ - Merge pull request #213 from fedora-infra/logger-doc `4209c6e84 `_ - Only output if there is something to output. `10e35d9e1 `_ - Invert this. `e151f95eb `_ - Merge pull request #215 from fedora-infra/feature/fedmsg-tail-fixes `bdc52feb8 `_ - Bugfix. These should not be strings. `c4d5ac570 `_ - Provide rationale for failed validation. `8695eb417 `_ - Docs and tests for crypto switching. `ece8b515b `_ - Don't explode here if the message has no embedded topic. `b5c68eff1 `_ - Avoid unnecessary network activity during x509 tests. `9fd4f3a32 `_ - While we're at it, remove this random_seed from git control. `5d4ea9e8d `_ - Update "strange" comment with more dtails. `42ac6bf81 `_ - Attempt to fix travis build on py2.6. `4326f3cd1 `_ - pep8 `35fc02798 `_ - Add a new field to signed messages indicating what method was used. `d9039821e `_ - Employ crypto backend hinting. `a2823a258 `_ - Get tests running with both "python setup.py test" and "nosetests" commands. `775874a88 `_ - Fix .format() usage for python2.6 `328b7a8cd `_ - Update comment to reflect that the crypto field has been implemented `81a2ab20a `_ - s/if/elif/ `b583d3565 `_ - symlink fedmsg.d/ for travis tests. `b45e09239 `_ - Handle gpg more explicitly. `b85979e98 `_ - Merge pull request #216 from fedora-infra/feature/parallel-crypto-verify-backends `30d91908c `_ - Rename this test.. it is actually testing something else. `160369c3f `_ - Move cert loading from init-time to publish-time. Fixes #181. `dc25abd91 `_ - Merge pull request #217 from fedora-infra/feature/defer-exception-for-certs `558ff84ed `_ - Remove bitly, use da.gd. Fixes #218. `29d2e65f6 `_ - We no longer need to parse this. Thanks @CodeBlock! `bc09c5f5d `_ - Merge pull request #220 from fedora-infra/feature/dagd `ed58619c5 `_ - Remove gource code from fedmsg-tail `92e69db8e `_ - Also remove mention from the docs. `afb30ccea `_ - Merge pull request #221 from fedora-infra/feature/remove-gource `01881f3eb `_ 0.7.4 ----- - Protect against NotImplementedError. `6c9c75239 `_ - Merge pull request #210 from fedora-infra/feature/protect-against-notimplemented `881e615c4 `_ - Merge branch 'develop' of github.com:fedora-infra/fedmsg into develop `04190a592 `_ 0.7.3 ----- - Rename layout.html to page.html. Fix #130 `6998ceb37 `_ - Merge pull request #203 from axilleas/github_ribbon `2db2dba54 `_ - Temp fix of forkme button width `41c46c9df `_ - Merge pull request #204 from axilleas/fix_forkme_width `fb9bc5cd9 `_ - Keep virtualenv config in an etc/ folder. `3f2608f19 `_ - Merge pull request #205 from fedora-infra/feature/virtualenv+etc `d3d9cc3da `_ - Scrub "None" links from channel. `c503ea8b8 `_ - Make that an else branch. `83056c70b `_ - Merge pull request #207 from fedora-infra/feature/irc-none-link `c466e1725 `_ - Disable installing fedmsg config unless it is explicitly requested. `aa3d66526 `_ - Correct the paths for fedmsg config. `862908a0d `_ - Merge pull request #208 from fedora-infra/feature/disable-installed-config `af0d4409f `_ - Add forgotten import. `20202ab77 `_ - Merge branch 'develop' of github.com:fedora-infra/fedmsg into develop `e993230ba `_ 0.7.2 ----- - Fix issue #193 on setup.py `c4bea1ff0 `_ - Fix PEP8 `5d1e8a7fb `_ - Add the data_config as optional function `418567ad5 `_ - Built on travis, and install with pip `e2053d450 `_ - Fix issue with command for install from pip `9365f2f72 `_ - Add cmdclass `792f8ea39 `_ - Update .travis `e11b4e8db `_ - Update .travis `4e684ca97 `_ - Change to class DataConfig `b0c83e27e `_ - Work install with and without noprefix arg `7646460c2 `_ - Remove shebangs. Thanks to: pingou `0b24fb07e `_ - rute -> route on the setup.py `3bd960e46 `_ - Add VIRTUAL_ENV support to setup.py `4027852fd `_ - Update .travis.yml: Delete noprefix arg `41ec7fbb6 `_ - Update config.py: Add support to VIRTUAL_ENV `af162afbe `_ - Remove shebags `581fabb72 `_ - Conditionally import from nose.tools.nontrivial to support running tests on el6. `5f32a9cc5 `_ - Remove shebbag in loggin.py and add os.listdir in setup.py `253875b3c `_ - Merge pull request #196 from fedora-infra/feature/nontrivial `d290aa3d8 `_ - Merge pull request #195 from yograterol/develop `d62c6738a `_ - Fixes issue:#130 `16468eff2 `_ - Merge pull request #197 from chandankumar1/fork `ba275778e `_ - Some fixes to the twitter dep. `c1b631de0 `_ - Merge branch 'develop' of github.com:fedora-infra/fedmsg into develop `8f772ae33 `_ - Also, bitlyapi for the docs. `7b7c073b4 `_ - Drop mention of the identi.ca bot from the frontpage since it is retired. `6a9d3a3a0 `_ - Iterate endpoints with kitchen.iterate `686f87c68 `_ - Add kitchen.iterate import `c921753e6 `_ - PEP8 imports fixed `43821d162 `_ - Remove unused import. `935ab04c3 `_ - Add fix for pre-defined endpoints and tests `2305ded44 `_ - Remove redefined class TestConfig `1b7ee911a `_ - Remove unnecessary imports `cdb3dad95 `_ - Merge pull request #198 from echevemaster/develop `5d54876be `_ - Remove unused imports. `9c7dbfcad `_ - Merge branch 'develop' of github.com:fedora-infra/fedmsg into develop `572d78023 `_ - Remove old debug artifact. `4eeebe56b `_ - Test float precision in json encoding. `94f5f630c `_ - Monkey patch json encoder to restrict float precision. `9e9bbdb00 `_ - Remove old, ineffective float precision restriction. `2b056ff3d `_ - Ignore sphinx build products. `6caf6dce1 `_ - PEP8/cosmetic. `0438aa6c8 `_ - PEP8/costmetic. `d087f8e8c `_ - Another approach: just cap the timestamp at second level precision. `e58592d12 `_ - Also, ignore coverage. `839865a0f `_ - Merge pull request #201 from fedora-infra/feature/precision-take-two `7fbc23ba6 `_ - Merge pull request #202 from fedora-infra/feature/pep8 `72a948461 `_ 0.7.1 ----- - Make usage of socket.gethostname consistent throughout the test suite (so that we succeed on a koji builder). `3adf17ef8 `_ - Round the timestamp to three decimal places. `b4d541ec0 `_ - Also round timestamp in the php mediawiki plugin. `a590aae53 `_ - Merge pull request #186 from fedora-infra/feature/timestamp-precision-reduction `4f7a35280 `_ - Good logging should be on by default, even if the config file is absent. `ed9bd9881 `_ - Merge pull request #187 from fedora-infra/feature/default-logging `d5ad224db `_ - Sync with Fedora Infrastructure puppet repo `4ffd0ff8d `_ - Send one message for every commit in a push `6a5db8e87 `_ - Merge pull request #189 from fedora-infra/feature/git-post-receive-multicommit `cb2c0d9c8 `_ - Remove dep on fabulous. `2ce15ab08 `_ - Merge pull request #190 from fedora-infra/feature/prune-deps `7ed16dbb4 `_ - CRL serials are base-16, not base-10. `c857d15f7 `_ - Merge pull request #192 from fedora-infra/feature/crl-parsing `4602a1a4f `_ 0.7.0 ----- - Tweak defaults after experimenting with inbound. `e0f7b4c56 `_ - Milliseconds, not seconds. `b142091a5 `_ - Careful with those gravatars. `93ed738e9 `_ - Update status table. `3a4fe06c7 `_ - Add note to fedmsg.meta.base about the internationalization callable. `c306aa1e5 `_ - More verbose debugging for messages that fail the authz policy. `44b63752b `_ - Autogenerate topics.rst from fedmsg.meta test suite. `a6b72b20b `_ - Require fedmsg.meta for rtfd to build the docs. `45fd48e35 `_ - Comment tweak. `c1a6f1749 `_ - os.path.join `f7029be64 `_ - PEP8 `26bc92736 `_ - Merge pull request #129 from fedora-infra/feature/topics-doc `5784e7ad0 `_ - Add fedorahosted to the status table (for #131) `cc9d93753 `_ - Require nose for building docs. `4e89db594 `_ - Force pulling in new docstrings for topics doc generation. `c87d87570 `_ - Update the FAQ. `251371364 `_ - Added a note about fedmsg-tail --terse to the FAQ. `3a3085425 `_ - Added a FAQ note about --gource `c5dc31897 `_ - Avoid that avant garde business. `64e7e35e4 `_ - Let pyzmq version float. `85e66da62 `_ - Remove hardcoded topic prefixes. `b89fd35fa `_ - Produce topic_prefix_re from topic_prefix if not specified. `22268cd66 `_ - Use the test config for the fedmsg.meta tests. `f39d323cd `_ - Use a test topic_prefix in the tests. `c47717ee8 `_ - Merge pull request #133 from fedora-infra/feature/remove-hardcoded-topics `ad86b1f46 `_ - Link to list of topics from the consuming docs. `85b20941b `_ - Discuss the topic wildcard in the consuming docs. `a44268f07 `_ - *Old* messages in datanommer's db have no 'username' `611b31b28 `_ - Bugfix to fedmsg-collectd. `e230c58a8 `_ - Collectd lessons learned in production. `e6b60ab3d `_ - Remove redundant code. `12478b06f `_ - Use consistent modname calculation. `e3d1c0d76 `_ - Use correct topic prefix for fedmsg.meta tests. `4fe673210 `_ - How did I miss this import? `8121e8177 `_ - Fix up the test prefix again. `7cb5d8122 `_ - Split the crypto module out into two backends. `360eed323 `_ - Skip fedmsg.meta tests if underspecified. `7478d96a3 `_ - Add stubs for fedmsg.meta.msg2{emails,avatars} `089b2f9ab `_ - s/gravatar/avatar/g `23c58d9b4 `_ - Use fedmsg.meta.msg2avatars, removing the need for python-fedora. `0cf31533c `_ - Merge pull request #127 from fedora-infra/feature/careful-with-the-gravatars `58fdfe026 `_ - Merge pull request #135 from fedora-infra/feature/crypto-plugin `877904bf4 `_ - Fix a typo caught by puiterwijk `4445f02d9 `_ - Merge pull request #136 from fedora-infra/feature/python-fedora-removal `6ddce9c65 `_ - Update fedorahosted in the status table. `11d0e7e2d `_ - Add pastebin to status table. `7897ad495 `_ - Allow sets to be json serializable. `48e480e7f `_ - Merge pull request #139 from fedora-infra/feature/json-and-set `9a4ac505f `_ - Merge pull request #138 from fedora-infra/feature/add-pastebin-to-status-table `2ddc1c7b9 `_ - Add testimonial from @oddshocks. `0bc6428a1 `_ - Merge pull request #141 from fedora-infra/feature/oddshocks-testimonial `9f9797f73 `_ - Mark mailman as done in development. `c986b1a89 `_ - Use ZMQError from the external api, not the internal one. `48a551391 `_ - Add fedmsg.crypto to the installed packages `c684c7bfd `_ - Listify the endpoints in tail_messages `73b76a1be `_ - Stub out the x509 backend when m2crypto isn't available `ead958015 `_ - Merge pull request #143 from laarmen/bugfixes `34d8ecbf3 `_ - Link to @lmacken's koji consumer example from the docs. `54f9e0f00 `_ - Provide more debug info when endpoints arent found. `adf9a8c8f `_ - Merge pull request #144 from fedora-infra/feature/debug-info `2174949af `_ - Parentheses to excess! `c51f7ac49 `_ - Remove unnecessary statement. `55f385f92 `_ - Fix the Python cross-referencing syntax in the msg2processor docstring `37933f9a1 `_ - s/fedmsg.text/fedmsg.meta/ `6b556e9cd `_ - Add a clarifying comment to the irc bot docs. `28a315291 `_ - Fix permissions of test_cert conf files `bfa2554df `_ - Merge pull request #150 from laarmen/fix_permissions `ec46de2c7 `_ - Add msg_id field into published message `0cd70819e `_ - Update test suite to check msg_id field `07a5ffcd2 `_ - Merge pull request #151 from hguemar/develop `1278670aa `_ - Minor rearrangement of a title `9f2723528 `_ - Upstream, not Ipstream :-/ `639afbca0 `_ - Merge pull request #152 from amitsaha/develop `7b9c9d012 `_ - Support endpoint querying via DNS SRV records `7c877f1d1 `_ - Add some error handling core `59e42f755 `_ - Use just the hostname, not the fqdn. `f2042077b `_ - ircbot: Use notices instead of actual messages `219a9c3c3 `_ - ircbot: Use a config variable 'irc_method' to choose between notify and msg `2e4ffe9bd `_ - Merge pull request #153 from laarmen/irc_notify `6e049c3c2 `_ - Move some standalone methods to their own module `4f0a2acb6 `_ - New ReplayContext `d5b24ed44 `_ - Add a first persistent store using sqlalchemy for persistence. `8790fcb8e `_ - Add tests for the ReplayContext and SqlStore `95d05b7b6 `_ - Add some documentation `e3537c66b `_ - Hook the store to the FedMsgContext.publish method `24e5da115 `_ - test_replay: Add a license and reorganise the import statements `4358d9959 `_ - Initial draft of fedmsg-trigger. `da786b854 `_ - Core: fix a typo in warning category `53d4db169 `_ - Core: add unit test case for FedMsgContext.send_message `53e851f68 `_ - Merge branch 'develop' into feature/fedmsg-trigger-cmd `808d1c718 `_ - core: Add a get_replay method to send a query to a replay endpoint `37780a2e7 `_ - Add exception handling for server-side error. `ad8459831 `_ - Fix the test configuration not to enable persistent_store `94e1400ae `_ - Add tests for get_replay `68dc3468b `_ - Merge pull request #155 from laarmen/feature/replay `c7b47d58f `_ - Added an inline comment for #155. `b012336f9 `_ - Merge branch 'develop' into feature/fedmsg-trigger-cmd `629223b63 `_ - Add forgotten import. `ace6e41f5 `_ - Reduce unneeded output. `2ce20351c `_ - The test for #155 actually requires sqlalchemy. `ffc3b07a6 `_ - Update the topology diagram. `fcb6c7712 `_ - Output of ditaa. `167c2d418 `_ - Make tail_messages care about seq_id and ask for replay if needed. `505f20c8a `_ - Move the replay querying to fedmsg/replay/__init__.py `65ec538da `_ - Add timeout for replay polling `307e9480f `_ - Syntactic fix for SqlStore `eace25474 `_ - Update the tests to take the split into account `8b724ac2d `_ - Add replay support to the base consumer `313a33c92 `_ - Validate replayed messages when tailing. `576cb6b84 `_ - replay: only append the message if it isn't present in the replay `4642e5ea0 `_ - Add some documentation for the queries `0f8cb137e `_ - Add some documentation for the queries `db13674c9 `_ - Color to alpha on that topology diagram. `f0e6a12a2 `_ - meta: test more strictly the result of handle_msg `726f56678 `_ - Resolve errors in unit tests in Python 2.6. `50b505906 `_ - Merge pull request #162 from laarmen/fix/meta_handle_msg `190e9b9b3 `_ - Merge pull request #161 from laarmen/replay-misc `42785787a `_ - Fix test config for py2.6. `e2a0dcae9 `_ - Use TestCase.assertDictEqual instead of nose.assert_dict_equal `8a227698a `_ - Move the DNS query for the SRV endpoiints from FedMsgContext to config.py `7bfe99afd `_ - Merge pull request #164 from laarmen/fix/py26-tests `84dc90204 `_ - Some more py2.6 fixes. `c4a8996ce `_ - Document the srv_endpoints config key. `97eb4d9a7 `_ - Merge pull request #165 from laarmen/feature/srv-records `87f06a575 `_ - Merge remote-tracking branch 'upstream/develop' into feature/replay-client `2aa4b5448 `_ - Document the 'replay_endpoints' config key `bb24ade09 `_ - Document the replay_name attribute in the moksha consumer `7ccabf30b `_ - Avoid the replay codepath in tail_messages if possible `ec9043f76 `_ - Fix test failures `627ae227b `_ - Use the correct log object here. `d5ba0c8d2 `_ - Merge branch 'feature/replay-client' into develop `fded58d19 `_ - [docs] Break out the fedmsg hub into multiple instances. `4f6a952f3 `_ - Rebuild diagram. `0ad68923a `_ - Rename the arguments to include and exclude to be more verbose `9f4890a7f `_ - Merge pull request #158 from fedora-infra/feature/fedmsg-trigger-cmd `0d5a432c3 `_ - Make tail accept --include and --exclude to be more verbose and clear `70d5ee7a7 `_ - Merge pull request #167 from fedora-infra/feature/rename-arguments-for-tail `44ccafe93 `_ - PEP8. `25fc740ba `_ - Merge pull request #168 from fedora-infra/feature/pep8ify `702724e50 `_ - Fix misplaced parenthesis in replay codepath avoidance test `3581ff934 `_ - Make the services start after network.target instead of sockets.target `96a1d92cf `_ - Fix an undefined name when catching a ZMQError `8088b11b3 `_ - Merge pull request #171 from fedora-infra/feature/start-after-network `dd4a9ba50 `_ - Merge pull request #169 from laarmen/fix/undefined_variable `3210d11e9 `_ - Merge pull request #170 from laarmen/fix/stupid_parenthesis `60346e095 `_ - Merge pull request #160 from fedora-infra/feature/updated-topology-diagram `e0dd87a8e `_ - Fix a 'zero length field name in format' error on py2.6 `c2ee4a263 `_ - Fix a few more '{}'.format calls so they work properly on py2.6 `e63c8f158 `_ - More 'zero length field name in format' py2.6 fixes `8efba4a11 `_ - Make fedmsg.meta "idempotent" for #140. `3724bb311 `_ - Update tests to reflect new fedmsg.meta.msg2title realities. `e1cb70e94 `_ - Make it possible to run the hub with specific consumers. `5d9c528c3 `_ - Merge pull request #173 from fedora-infra/feature/idempotent `7f2d89bc2 `_ - Merge pull request #179 from fedora-infra/feature/explicit-hub-consumers `ca0bae7d9 `_ - Pass all arguments for signing and validating through kw `0841eff78 `_ - New GPG backend `bd3d6237c `_ - Merge pull request #180 from laarmen/feature/gpg-backend `2195f1193 `_ - Skip certain gpg tests on travis since their environment is weird. `983d87dbf `_ - Update an old no-longer-correct comment. `c2289a7a7 `_ - Add user and package centric filters to fedmsg-tail. `f4046747f `_ - Modernize the cli tests to match the new realities of fedmsg-tail. `199f8e493 `_ - Whoops.. this never should have made it in. `7966dc2e3 `_ - Merge pull request #183 from fedora-infra/feature/tail-by-username-or-package `0dada8907 `_ - prefix uuids with a year to reduce risk of collisions. `242a3b7f1 `_ - Suppress moksha's duplicate log machinery. `344a9dbd5 `_ - Some nicer default logging with :tada: timestamps :tada:. `4503c35a4 `_ - Test needed updating for new log format string. `6fa8cc897 `_ - Merge pull request #184 from fedora-infra/feature/uuid-prefix `b8bda91a6 `_ - Merge pull request #185 from fedora-infra/feature/fix-logging `68c61a077 `_ - Start keeping a changelog. `901059ecf `_ 0.6.8 ----- - Disable the the relay configuration by default. `8e6bcf29c `_ - Revert "Disable the the relay configuration by default." `4d8833245 `_ - Update the status table. Koji, planet: done. New: nagios, coprs, secondary arch compose. `6a2725da5 `_ - Fix doc typo. `782879fa7 `_ - document irc_color_lookup config value. `c8490abcf `_ - Doc updates. `d8e4825a2 `_ - Add sigul to the TODO list. `076c7d824 `_ - Mark askbot as done in the status doc. `e1eb2ad93 `_ - By default, have the ircbot log into a different channel. `a732a212b `_ - Add fedocal to the TODO list. `79c9735ae `_ - fedmsg-tail --gource `766dad95f `_ - Grab and cache avatars from gravatar.com (for --gource). `60f321ad4 `_ - Colors for --gource. `8e6ee5c75 `_ - Use a fake user if fedmsg.meta returns none. `e03149450 `_ - Some pep8. `b56f5afcb `_ - Remove comment about keeping old-form tail messages. `f3fec8ea8 `_ - Play with tree layout: organize by service (--gource) `489d6b77f `_ - Cosmetic name change (--gource) `efa475856 `_ - Playing with colors. `adcf3d0ff `_ - Clarify functional thing /cc @abadger. `3bd97a062 `_ - Use python-fedora for gravatar construction /cc @abadger. `e0648e7f2 `_ - Needed an extra int() cast in there. `82a72c0b9 `_ - Optimize by only checking for cache dir when necessary (--gource). `44775bea2 `_ - Typofix. `56f210d23 `_ - Got the order reversed. `d6603f29a `_ - Make gravatar cache directory configurable (--gource) /cc @abadger `ca8664ab7 `_ - Fix python-fedora in setup.py `21f048b39 `_ - Fixes for the unit tests. `39e8b95a5 `_ - Merge pull request #123 from fedora-infra/feature/gource-omg `8b9100b4c `_ - Some PEP8. `8aefb3c59 `_ - Reorganize fedmsg-tweet into a single-purpose hub like the other daemons. `9d2ab138d `_ - Merge pull request #124 from fedora-infra/feature/tweet-as-hub `24006dedd `_ 0.6.7 ----- - Make fedmsg-tweet a little more error-resistant. `d0ad62d37 `_ - s/ralphbean/fedora-infra/g `58e7c8571 `_ - Added a FAQ to the docs. `3257e69b4 `_ - Added a note to the consuming docs about trusting messages. `78a6babf9 `_ - trust, but verify. or... don't trust, and verify `937da1d9e `_ - Allow sending unspecified messages. `9758dbf30 `_ - Lighter-weight default endpoints config. `74dad0c6e `_ - Make fedmsg-irc colors configurable. `30ce1d24b `_ - Link to app best practices. `49cfcd903 `_ - Commas. `9376a2bc0 `_ 0.6.6 ----- - Typofix. `80d31a0c5 `_ - Load and use remote cert for end-user validation. `8b7ce2dfc `_ 0.6.5 ----- - Check that signature and cert are strings before we do anything with them. `64033e2ca `_ - Oh... `b08af04ac `_ 0.6.4 ----- - Uh... ignore that. `4fbc37dc1 `_ - Update to the git hook to make working with the authz_policy easier in the future. `dd706bcb9 `_ - Loop over outbound relay endpoints until we find one that works. `8a3f19b93 `_ - Add missing import. `5e88a82a7 `_ - Added systemd service files. `4b90d2988 `_ - Remove unnecessary log statement. `9fd8e79fc `_ - Graceful handling of unwieldly links in fedmsg-tweet. `e8d81e67b `_ - PEP8. `2a06db1bd `_ - Handle error when the CRL is not writable. `8189ac8bb `_ - Remove some example endpoints from the default fedmsg.d/endpoints.py `d91b5f8d9 `_ - A fedmsg logo header for the docs. `e4205e452 `_ - "version is required for logging config" `6dc15757f `_ - Merge pull request #109 from HousewifeHacker/logger_version1 `7463bcf93 `_ - Rework of the koji plugin. `99aed57c1 `_ - Logo! `ce6d2480e `_ - Remove duplicate help strings. Fixes #110. `f9691fce5 `_ - Fix crl permissions issue. `e4ebafe1b `_ - Re-enable moksha logging in fedmsg services. `a17b21d4e `_ - Don't suggest that users use /tmp in example config. `43d8038ef `_ - Mention identica on the front page. `150c2f438 `_ - Quote whack. `3b0f8036a `_ - unindent `7d03835a2 `_ - Add pkgdb to the status diagrams. `c3689d514 `_ - Fix a typing bug in consumer validation. `da98e5359 `_ - Added logging to some consumers. `7659689a2 `_ - Stop fedmsg-tweet from falling over. `ee7bfe75e `_ - Update fedmsg/meta/__init__.py `1bcca133d `_ - Merge pull request #111 from mscherer/patch-1 `82284badc `_ - More specific logging facility. `20c45f265 `_ - Sort keys in php before signing. `1e5b302d6 `_ - Encode JSON consistently between php and python. `402bbaf6c `_ 0.6.3 ----- - Use logutils to fix dictConfig on python2.6. `e558d96ad `_ - Re-added forgotten import. `6291d20cb `_ - Fix wonky py2.6 behavior in tests. `bfb2e258d `_ 0.6.2 ----- - Updated docs on fedmsg.meta plugins. `0780c6713 `_ - Finally, pieces settle down for fedmsg-collectd. `a359a1e1f `_ - Consider adding fedmsg hooks to mailman. `7c82ff2f4 `_ - zeromq3 bugfixes to zmq.HWM. `d652c1c5e `_ - PEP8 `ed95bde96 `_ - Added a note about deprecation. `7b0ca2df5 `_ - Allow defaults for load_config. `f98c2216a `_ - First unittest for fedmsg-logger. `8602dfc8f `_ - Py2.6 compat. `258c9ef33 `_ - Prepare the way for multiple runs of command tests. `459c21560 `_ - Testing fedmsg-logger --json-input. `86119bfbd `_ - Tests for fedmsg-tail. `de0010738 `_ - unit test for fedmsg-relay command definition. `9df3b92ed `_ - Merge branch 'feature/basecommand-tests' into develop `c0cc49cad `_ - Converted fedmsg-tweet to a class. Using logging module. #102 #104. `91332aff8 `_ - Set timezone to fix tests in travis-ci. `476e1d107 `_ - Attempt to using logging more consistently. #102. `c953b1877 `_ - Draw logging config from a dict. #102. `9d55a7950 `_ - Convert announce command to BaseCommand. `98fa69692 `_ - fedmsg.meta and test for announce command. `69b899bb7 `_ - Rename fedmsg.meta tests. `da08438cf `_ - Convert gateway command to BaseCommand. `3dd6e587f `_ - Convert hub command to BaseCommand. `7e39ec360 `_ - Convert irc command to BaseCommand. `2bd4fe238 `_ - Remove deprecated "command" decorator. Closes #104. `c5b8bdfdb `_ - Fix formatting in fedmsg-tweet log. `3efd6e008 `_ - Some inline comments in fedmsg.core. `3fadfd4dd `_ - Use a single logger for the core fedmsg context. `433c0abb0 `_ - Add support for TCP_KEEPALIVE to fedmsg.core. `5deffe6f9 `_ - Documented TCP_KEEPALIVE options. `d354fd34c `_ 0.6.1 ----- - Rename fedmsg-tweet.ini to fedmsg-tweet.init. `fbe5ca53e `_ - Playing with padding for fedmsg-tweet. `d64e86c71 `_ - Fix bug in fedmsg.text for tagger. `cf446c13a `_ - Decorate fedmsg.text top level functions. `d3afe620f `_ - Preserve decorated function name and __doc__. `5eca4a9c1 `_ - First pass at fedmsg.text.msg2objects `3d0ddc0ff `_ - Bugfix to top level fedmsg.text decorators. `b8acefa21 `_ - Distinguish between nested wiki objects. `2d2be375a `_ - the green color is hard to read `03642619d `_ - Merge pull request #99 from sontek/fix-color `48c5539ac `_ - If validate signatures is turned off, we sholdn't try to pull them from the config `4a024572b `_ - Merge pull request #100 from sontek/fix-validate-signatures `6dc71ef5a `_ - Preserve decorated function name and __doc__. `04c0f1d82 `_ - Merge branch 'feature/msg2objects' into develop `f4c86ce5d `_ - Keep a record of the wrapped function so we can easily write unit tests for it `e87b24284 `_ - whitespace for pep8 `20fdd121f `_ - Merge pull request #101 from sontek/allow-commands-to-be-tested `f2a08f5dc `_ - Tweak test to reflect change made a few commits ago. `e5411f933 `_ - Updates to fedmsg-collectd. `7003acd06 `_ - Broke fedmsg.text out into a plugin based system. `829d0546c `_ - Created a base command class and setup logger and relay to use it `a03e893ce `_ - cleaned up how the config is passed around for the BaseCommand `ac021a536 `_ - added a logger to the basecommand `c3b0b3b9b `_ - converted tail to command based as well `d83b6ed3b `_ - removed a hanging basicConfig() setup `d46fc0a99 `_ - Stream to standard out, not error `d83a919bd `_ - Create a function for get_config so base classes can override it `6004cd9d0 `_ - Start of a rename from fedmsg.text to fedmsg.meta `5860e0c95 `_ - s/fedmsg.text/fedmsg.meta/g `2ea134539 `_ 0.6.0 ----- - Use an __icon__ property so we don't have to pass a message in to get a static icon `15f87ebc9 `_ - Merge pull request #86 from lmacken/develop `1610181c1 `_ - Fix busted doc references to json-input. Thanks to Bill Peck. `f8fe837f3 `_ - Add a warning about incorrect formats for --json-input. `593210c36 `_ - Small update in the development documentation. `4d6a97af3 `_ - Merge pull request #87 from pypingou/develop `664b0e190 `_ - Include fas username in git/scm messages. `c725b94ff `_ - Mention other projects in the docs. `0f17057dd `_ - Include the username of the owner of the current process in every fedmsg message. `55a52eb2f `_ - Added a DIY section to the consumer doc. `63c46463f `_ - Add new field to pkgdb2branch for the tests. `d5c0dea10 `_ - Use new usernames from git messages. `27ba527b1 `_ - Optimize fedmsg-tail. Fixes #94. `595f4efab `_ - Improved docstrings in fedmsg.text. `bca8f962c `_ - Tests for new username and package interfaces to fedmsg.text. `b9599ac2b `_ - Top-level interfaces for new username and packages fedmsg.text interfaces. `eb79a44ac `_ - Use sets, not lists. `b98227580 `_ - usernames and packages for tagger, scm, and supybot. `e85f45bb1 `_ - Updates to tests. `9c5a7097e `_ - Finishing off username and packages fedmsg.text processors. `3a304e5e4 `_ - Handle time.struct_time in fedmsg.encoding. Fixes #60. `4c9ffafce `_ - Remove question about redundant fedmsg-relays. Fixes #68. `2c4700569 `_ - Initial fedmsg-tweet tool done. `17ea75d33 `_ - Statusnet support is almost there... `1ec1a6801 `_ - Be more careful with links that are NoneType. `35bb42053 `_ - Workaround some rate limiting. `79a9c263f `_ - Simplify fedmsg-tweet config. `b0d4ee15d `_ - Tweak to link padding. `759331085 `_ - Docs for config values for fedmsg-tweet. `37a6f1ffd `_ - Add init.d script for fedmsg-tweet. `03a8a453c `_ - Catch another exception from fedmsg-tweet. `09f335825 `_ - Merge branch 'feature/twitter' into develop `f355d9304 `_ - Add logrotate config file. `c093773b6 `_ - Fix deficiency in the consuming docs pointed out by Amit Saha. `a1210557f `_ - Mark "planet" as partially done in the status table. `98af9d3ff `_ - Added TODO to fedmsg.tail_messages. `8e04f726a `_ - Use thread-local config for fedmsg.tail_messages. Fixes #96. `f318cc1dc `_ - Added a note about #fedora-fedmsg to the intro docs. `5d83bf8dd `_ - Add pyzmq-static to the list of deps pulled in by rtfd. `d69a2f01f `_ - Include (..more) for scm messages if necessary. `de401314f `_ - Typofix. `50ee0be97 `_ - Authorization/routing policy first pass. `7094470a5 `_ - Grammar. `921d250a4 `_ - First draft of a fedmsg-announce command. `b91356a1c `_ - Validate messages in fedmsg.tail_message. `12da08d5f `_ - Better default ssl config. `90040bb8d `_ - Typofix to fedmsg.tail_messages. `fbf1e0efa `_ - By default, have CLI commands log errors to stderr. `df5aaf2fa `_ - Complain if validate_signatures isn't in the config. `eb12c2efb `_ - Make fedmsg-config *not* a setuptools script. `a7860d196 `_ 0.5.6 ----- - Remove inter-test dependencies by creating fedmsg/tests/common.py. `4beeb6c61 `_ - Add fedmsg.text.make_processors(**config) `fd67b240f `_ - Add __len__ to the ProcessorsNotInitialized exception `a9641eb30 `_ - Merge pull request #83 from lmacken/develop `0c206f06f `_ - First stab at a fedmsg-collectd command. `060e208c8 `_ - Make collectd-interval into a CLI argument. `a5d46f973 `_ - Converted fedmsg-collectd to use the moksha-hub machinery (efficiency). `b2a9e4838 `_ - Return empty strings from our text processors instead of raising exceptions `b7adf118c `_ - Fix --json-input examples in the docs. `28561b84c `_ - Merge pull request #84 from lmacken/develop `2f1de170c `_ - Updated docs for fedmsg-collectd. `e3a3e84d6 `_ 0.5.5 ----- - test script. `e886de9f1 `_ - More tools for testing the busgateway. `79f28c4a3 `_ - Use bash correctly. `eaf263f12 `_ - Configurable outgoing high water mark for fedmsg-gateway. `bdc51e171 `_ - Introduce the zmq_linger code to the php mediawiki plugin. `1ff3573b6 `_ - Move initialization inside the mediawiki hooks to reduce the number of calls to fedmsg-config. `f7e1e6b1d `_ - Add fedmsg.textmsg2processor and BaseProcessor.handle_msg methods `05c3b7138 `_ - The new handle_msg method assumes __name__ == msg['topic'].split('.')[0] `ede69d2cd `_ - Make the launcher start up more client threads in the stress testing scripts. `b1300707d `_ - Add post_init_sleep back to the default config. `cd6363692 `_ - Specify IP in the default config. `699836068 `_ - Comment out the stg endpoint in the default config. `1293e7d3a `_ - Refactor the msg2* helpers and make them "public" `166ef94fb `_ - Remove the obsolete BaseProcessor.handle_* methods `0e83c6392 `_ - Update our text processor regex to glob all of the subtopics `df7b5af21 `_ - Move the DefaultProcessor methods into the BaseProcessor `b7df4aa68 `_ - Invalidate the config cache in the test suite `bfbe135b2 `_ - Remove the obsolete BaseProcessor.handle_* methods `529419198 `_ - Update our text processor regex to glob all of the subtopics `0a506d873 `_ - Move the DefaultProcessor methods into the BaseProcessor `bad8c1cf3 `_ - Invalidate the config cache in the test suite `2864aa8b2 `_ - Rename 'Tagger' text processor to 'fedoratagger' to be consistent with the topic `3b7b844ad `_ - Update a docstring `67e8a3534 `_ - Use os.path.join `b51381720 `_ - Remove _listify, as I wrote kitchen.iterutils.iterate which does this too. `aeedefa93 `_ - Pass the config to msg2processor. `70a3b51a8 `_ - (php) handle case where $revision is undefined. `6e95de53a `_ - Don't cause load_config to get called at load time. `ba3fb0752 `_ - Return a tuple of the topic remainder from handle_msg `8207d68d4 `_ - Load the config in the Base text test class `5ef9aca4d `_ - Avoid using the @API_function machinery in test_hub. `1040f20f9 `_ - Pass the config to msg2processor from msg2repr `6cf20d59e `_ - Merge pull request #82 from lmacken/feature/refactored-text-processors `14ec498a1 `_ - Marked things DONE in status table. `459747840 `_ - Merge branch 'develop' of git://github.com/ralphbean/fedmsg into develop `9fabe0997 `_ - Use kitchen iterate in fedmsg-relay. `6b312fee8 `_ 0.5.4 ----- - Remove full text from mediawiki messages to reduce spam. `3c95b1cf6 `_ - Recursively merge dicts in fedmsg.d/. Fixes #74. `38a57910d `_ - Fix missing endpoint test so that it consistently fails. `adbb83b2f `_ - Fix the mediawiki icon `2c80f6ecd `_ - Update the mediawiki tests to check for our new location. `a697ebf58 `_ - Add gravatar support to mediawiki, tagger, and git messages. `f062cdcee `_ - Merge pull request #81 from lmacken/develop `e02db5526 `_ - fedmsg.text entries for tagger rank changes. `28816fc35 `_ - Change default FI endpoint to be correct for stg. `df224f57e `_ - Update manifest for testing under koji/mock. `183f1a355 `_ - Roll our own gravatar for git secondary icons. `56cd63851 `_ fedmsg-0.9.3/fedmsg.egg-info/0000755000175000017500000000000012371202100017627 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/fedmsg.egg-info/PKG-INFO0000644000175000017500000000215212371202100020724 0ustar threebeanthreebean00000000000000Metadata-Version: 1.0 Name: fedmsg Version: 0.9.3 Summary: Fedora Messaging Client API Home-page: https://github.com/fedora-infra/fedmsg/ Author: Ralph Bean Author-email: rbean@redhat.com License: LGPLv2+ Description: Utilities used around Fedora Infrastructure to send and receive messages. Please see ``doc/`` or https://fedmsg.readthedocs.org/ for more info. Build Status ------------ .. |master| image:: https://secure.travis-ci.org/fedora-infra/fedmsg.png?branch=master :alt: Build Status - master branch :target: https://travis-ci.org/#!/fedora-infra/fedmsg .. |develop| image:: https://secure.travis-ci.org/fedora-infra/fedmsg.png?branch=develop :alt: Build Status - develop branch :target: https://travis-ci.org/#!/fedora-infra/fedmsg +----------+-----------+ | Branch | Status | +==========+===========+ | master | |master| | +----------+-----------+ | develop | |develop| | +----------+-----------+ Platform: UNKNOWN fedmsg-0.9.3/fedmsg.egg-info/SOURCES.txt0000644000175000017500000003764612371202100021533 0ustar threebeanthreebean00000000000000CHANGELOG.rst LICENSE MANIFEST.in README.rst logrotate setup.cfg setup.py doc/FAQ.rst doc/commands.rst doc/conf.py doc/config.rst doc/consuming.rst doc/contributing.rst doc/crypto.rst doc/deployment.rst doc/development.rst doc/encoding.rst doc/index.rst doc/meetings.rst doc/meta.rst doc/overview.rst doc/proposal.rst doc/publishing.rst doc/py3status.rst doc/replay.rst doc/requirements.txt doc/status.rst doc/topics.rst doc/topology.rst doc/_static/diagrams.png doc/_static/fedmsg.png doc/_static/fedmsg.xcf doc/_static/reorganize-0mq-overview.png doc/_static/reorganize-amqp-j5.png doc/_static/site.css doc/_static/topology.png doc/_templates/fedmsg-logo.html doc/_templates/githubedit.html doc/_templates/page.html doc/diagrams/README.rst doc/diagrams/proposal.txt doc/diagrams/topology.txt extras/collectd/collection.conf extras/collectd/fedmsg-types.db extras/collectd/fedmsg.conf extras/git-hooks/README.rst extras/git-hooks/post-receive extras/koji/fedmsg_koji.py extras/mediawiki/fedmsg-emit.php extras/stress/launcher.sh extras/stress/mass-sub.py extras/stress/master.sh fedmsg/__init__.py fedmsg/config.py fedmsg/core.py fedmsg/utils.py fedmsg.d/base.py fedmsg.d/endpoints.py fedmsg.d/gateway.py fedmsg.d/ircbot.py fedmsg.d/logging.py fedmsg.d/relay.py fedmsg.d/ssl.py fedmsg.egg-info/PKG-INFO fedmsg.egg-info/SOURCES.txt fedmsg.egg-info/dependency_links.txt fedmsg.egg-info/entry_points.txt fedmsg.egg-info/not-zip-safe fedmsg.egg-info/requires.txt fedmsg.egg-info/top_level.txt fedmsg/commands/__init__.py fedmsg/commands/announce.py fedmsg/commands/collectd.py fedmsg/commands/config.py fedmsg/commands/gateway.py fedmsg/commands/hub.py fedmsg/commands/ircbot.py fedmsg/commands/logger.py fedmsg/commands/relay.py fedmsg/commands/replay.py fedmsg/commands/tail.py fedmsg/commands/trigger.py fedmsg/consumers/__init__.py fedmsg/consumers/dummy.py fedmsg/consumers/gateway.py fedmsg/consumers/ircbot.py fedmsg/consumers/relay.py fedmsg/crypto/__init__.py fedmsg/crypto/gpg.py fedmsg/crypto/x509.py fedmsg/encoding/__init__.py fedmsg/encoding/sqla.py fedmsg/meta/__init__.py fedmsg/meta/announce.py fedmsg/meta/base.py fedmsg/meta/default.py fedmsg/meta/logger.py fedmsg/replay/__init__.py fedmsg/replay/sqlstore.py fedmsg/tests/__init__.py fedmsg/tests/common.py fedmsg/tests/fedmsg-test-config.py fedmsg/tests/test_commands.py fedmsg/tests/test_config.py fedmsg/tests/test_core.py fedmsg/tests/test_crypto_gpg.py fedmsg/tests/test_crypto_switching.py fedmsg/tests/test_crypto_x509.py fedmsg/tests/test_hub.py fedmsg/tests/test_meta.py fedmsg/tests/test_replay.py fedmsg/tests/test_threads.py fedmsg/tests/test_utils.py fedmsg/tests/test_certs/README fedmsg/tests/test_certs/build-and-sign-key fedmsg/tests/test_certs/build-ca fedmsg/tests/test_certs/build-key fedmsg/tests/test_certs/build-key-server fedmsg/tests/test_certs/build-req fedmsg/tests/test_certs/clean-all fedmsg/tests/test_certs/list-crl fedmsg/tests/test_certs/openssl-0.9.6.cnf fedmsg/tests/test_certs/openssl-0.9.8.cnf fedmsg/tests/test_certs/openssl-1.0.0.cnf fedmsg/tests/test_certs/openssl-1.0.0.cnf-old-copy fedmsg/tests/test_certs/pkitool fedmsg/tests/test_certs/rebuild-all-fedmsg-certs fedmsg/tests/test_certs/revoke-full fedmsg/tests/test_certs/sign-req fedmsg/tests/test_certs/vars fedmsg/tests/test_certs/gpg/corrupt.sig fedmsg/tests/test_certs/gpg/pubring.gpg fedmsg/tests/test_certs/gpg/pubring.gpg~ fedmsg/tests/test_certs/gpg/random_seed fedmsg/tests/test_certs/gpg/secring.gpg fedmsg/tests/test_certs/gpg/test_data fedmsg/tests/test_certs/gpg/test_data.sig fedmsg/tests/test_certs/gpg/trustdb.gpg fedmsg/tests/test_certs/keys/01.pem fedmsg/tests/test_certs/keys/02.pem fedmsg/tests/test_certs/keys/03.pem fedmsg/tests/test_certs/keys/04.pem fedmsg/tests/test_certs/keys/05.pem fedmsg/tests/test_certs/keys/06.pem fedmsg/tests/test_certs/keys/07.pem fedmsg/tests/test_certs/keys/08.pem fedmsg/tests/test_certs/keys/09.pem fedmsg/tests/test_certs/keys/0A.pem fedmsg/tests/test_certs/keys/0B.pem fedmsg/tests/test_certs/keys/0C.pem fedmsg/tests/test_certs/keys/0D.pem fedmsg/tests/test_certs/keys/0E.pem fedmsg/tests/test_certs/keys/0F.pem fedmsg/tests/test_certs/keys/10.pem fedmsg/tests/test_certs/keys/11.pem fedmsg/tests/test_certs/keys/12.pem fedmsg/tests/test_certs/keys/13.pem fedmsg/tests/test_certs/keys/14.pem fedmsg/tests/test_certs/keys/15.pem fedmsg/tests/test_certs/keys/16.pem fedmsg/tests/test_certs/keys/17.pem fedmsg/tests/test_certs/keys/18.pem fedmsg/tests/test_certs/keys/19.pem fedmsg/tests/test_certs/keys/1A.pem fedmsg/tests/test_certs/keys/1B.pem fedmsg/tests/test_certs/keys/1C.pem fedmsg/tests/test_certs/keys/1D.pem fedmsg/tests/test_certs/keys/1E.pem fedmsg/tests/test_certs/keys/1F.pem fedmsg/tests/test_certs/keys/20.pem fedmsg/tests/test_certs/keys/21.pem fedmsg/tests/test_certs/keys/22.pem fedmsg/tests/test_certs/keys/23.pem fedmsg/tests/test_certs/keys/24.pem fedmsg/tests/test_certs/keys/25.pem fedmsg/tests/test_certs/keys/26.pem fedmsg/tests/test_certs/keys/27.pem fedmsg/tests/test_certs/keys/28.pem fedmsg/tests/test_certs/keys/29.pem fedmsg/tests/test_certs/keys/2A.pem fedmsg/tests/test_certs/keys/2B.pem fedmsg/tests/test_certs/keys/2C.pem fedmsg/tests/test_certs/keys/2D.pem fedmsg/tests/test_certs/keys/bodhi-app01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/bodhi-app01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/bodhi-app02.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app02.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app02.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/bodhi-app02.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app02.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app02.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/bodhi-app03.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app03.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app03.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/bodhi-app04.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app04.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app04.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/bodhi-app05.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app05.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app05.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/bodhi-app06.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app06.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app06.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/bodhi-app07.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/bodhi-app07.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/bodhi-app07.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/ca.crt fedmsg/tests/test_certs/keys/ca.key fedmsg/tests/test_certs/keys/crl.pem fedmsg/tests/test_certs/keys/dummy-revoked.crt fedmsg/tests/test_certs/keys/dummy-revoked.csr fedmsg/tests/test_certs/keys/dummy-revoked.key fedmsg/tests/test_certs/keys/fas-fas01.dev.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/fas-fas01.dev.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/fas-fas01.dev.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/fas-fas01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/fas-fas01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/fas-fas01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/fas-fas01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/fas-fas01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/fas-fas01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/fedoratagger-packages01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/fedoratagger-packages01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/fedoratagger-packages01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/fedoratagger-packages01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/fedoratagger-packages01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/fedoratagger-packages01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/fedoratagger-packages02.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/fedoratagger-packages02.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/fedoratagger-packages02.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/index.txt fedmsg/tests/test_certs/keys/index.txt.attr fedmsg/tests/test_certs/keys/index.txt.attr.old fedmsg/tests/test_certs/keys/index.txt.old fedmsg/tests/test_certs/keys/mediawiki-app01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/mediawiki-app01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/mediawiki-app02.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app02.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app02.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/mediawiki-app02.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app02.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app02.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/mediawiki-app03.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app03.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app03.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/mediawiki-app04.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app04.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app04.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/mediawiki-app05.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app05.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app05.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/mediawiki-app06.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app06.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app06.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/mediawiki-app07.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/mediawiki-app07.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/mediawiki-app07.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/revoke-test.pem fedmsg/tests/test_certs/keys/scm-pkgs01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/scm-pkgs01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/scm-pkgs01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/scm-pkgs01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/scm-pkgs01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/scm-pkgs01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/serial fedmsg/tests/test_certs/keys/serial.old fedmsg/tests/test_certs/keys/server.crt fedmsg/tests/test_certs/keys/server.csr fedmsg/tests/test_certs/keys/server.key fedmsg/tests/test_certs/keys/shell-app01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-app01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-app02.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app02.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app02.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-app02.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app02.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app02.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-app03.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app03.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app03.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-app04.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app04.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app04.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-app05.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app05.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app05.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-app06.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app06.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app06.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-app07.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-app07.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-app07.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-fas01.dev.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-fas01.dev.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-fas01.dev.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-fas01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-fas01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-fas01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-fas01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-fas01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-fas01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-packages01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-packages01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-packages01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-packages01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-packages01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-packages01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-packages02.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-packages02.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-packages02.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-pkgs01.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-pkgs01.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-pkgs01.phx2.fedoraproject.org.key fedmsg/tests/test_certs/keys/shell-pkgs01.stg.phx2.fedoraproject.org.crt fedmsg/tests/test_certs/keys/shell-pkgs01.stg.phx2.fedoraproject.org.csr fedmsg/tests/test_certs/keys/shell-pkgs01.stg.phx2.fedoraproject.org.key fedmsg/tests/test_certs/tmp/README fedmsg/tests/test_certs/tmp/build-ca fedmsg/tests/test_certs/tmp/build-dh fedmsg/tests/test_certs/tmp/build-inter fedmsg/tests/test_certs/tmp/build-key fedmsg/tests/test_certs/tmp/build-key-pass fedmsg/tests/test_certs/tmp/build-key-pkcs12 fedmsg/tests/test_certs/tmp/build-key-server fedmsg/tests/test_certs/tmp/build-req fedmsg/tests/test_certs/tmp/build-req-pass fedmsg/tests/test_certs/tmp/clean-all fedmsg/tests/test_certs/tmp/file fedmsg/tests/test_certs/tmp/inherit-inter fedmsg/tests/test_certs/tmp/list-crl fedmsg/tests/test_certs/tmp/openssl-0.9.6.cnf fedmsg/tests/test_certs/tmp/openssl-1.0.0.cnf fedmsg/tests/test_certs/tmp/pkitool fedmsg/tests/test_certs/tmp/revoke-full fedmsg/tests/test_certs/tmp/sign-req fedmsg/tests/test_certs/tmp/vars fedmsg/tests/test_certs/tmp/whichopensslcnf fedmsg/text/__init__.py fedmsg/text/announce.py fedmsg/text/base.py fedmsg/text/default.py fedmsg/text/logger.py initsys/systemd/fedmsg-gateway.service initsys/systemd/fedmsg-hub.service initsys/systemd/fedmsg-irc.service initsys/systemd/fedmsg-relay.service initsys/sysv/fedmsg-gateway.init initsys/sysv/fedmsg-hub.init initsys/sysv/fedmsg-irc.init initsys/sysv/fedmsg-relay.init scripts/fedmsg-configfedmsg-0.9.3/fedmsg.egg-info/dependency_links.txt0000644000175000017500000000000112371202100023675 0ustar threebeanthreebean00000000000000 fedmsg-0.9.3/fedmsg.egg-info/requires.txt0000644000175000017500000000007412371202100022230 0ustar threebeanthreebean00000000000000pyzmq kitchen moksha.hub>=1.3.0 requests pygments six psutilfedmsg-0.9.3/fedmsg.egg-info/top_level.txt0000644000175000017500000000000712371202100022356 0ustar threebeanthreebean00000000000000fedmsg fedmsg-0.9.3/fedmsg.egg-info/not-zip-safe0000644000175000017500000000000112326044202022064 0ustar threebeanthreebean00000000000000 fedmsg-0.9.3/fedmsg.egg-info/entry_points.txt0000644000175000017500000000151412371202100023126 0ustar threebeanthreebean00000000000000[moksha.producer] [fedmsg.meta] announce = fedmsg.meta.announce:AnnounceProcessor logger = fedmsg.meta.logger:LoggerProcessor [moksha.consumer] fedmsg-dummy = fedmsg.consumers.dummy:DummyConsumer fedmsg-relay = fedmsg.consumers.relay:RelayConsumer fedmsg-ircbot = fedmsg.consumers.ircbot:IRCBotConsumer fedmsg-gateway = fedmsg.consumers.gateway:GatewayConsumer [console_scripts] fedmsg-tail = fedmsg.commands.tail:tail fedmsg-dg-replay = fedmsg.commands.replay:replay fedmsg-announce = fedmsg.commands.announce:announce fedmsg-irc = fedmsg.commands.ircbot:ircbot fedmsg-gateway = fedmsg.commands.gateway:gateway fedmsg-relay = fedmsg.commands.relay:relay fedmsg-hub = fedmsg.commands.hub:hub fedmsg-collectd = fedmsg.commands.collectd:collectd fedmsg-trigger = fedmsg.commands.trigger:trigger fedmsg-logger = fedmsg.commands.logger:logger fedmsg-0.9.3/initsys/0000755000175000017500000000000012371202100016372 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/initsys/systemd/0000755000175000017500000000000012371202100020062 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/initsys/systemd/fedmsg-relay.service0000644000175000017500000000035212362250750024041 0ustar threebeanthreebean00000000000000[Unit] Description=fedmsg active<->passive relay After=network.target Documentation=https://fedmsg.readthedocs.org/ [Service] ExecStart=/usr/bin/fedmsg-relay Type=simple User=fedmsg Group=fedmsg [Install] WantedBy=multi-user.target fedmsg-0.9.3/initsys/systemd/fedmsg-gateway.service0000644000175000017500000000034612362250750024371 0ustar threebeanthreebean00000000000000[Unit] Description=Outbound fedmsg gateway After=network.target Documentation=https://fedmsg.readthedocs.org/ [Service] ExecStart=/usr/bin/fedmsg-gateway Type=simple User=fedmsg Group=fedmsg [Install] WantedBy=multi-user.target fedmsg-0.9.3/initsys/systemd/fedmsg-irc.service0000644000175000017500000000033512362250750023503 0ustar threebeanthreebean00000000000000[Unit] Description=IRC bot for fedmsg After=network.target Documentation=https://fedmsg.readthedocs.org/ [Service] ExecStart=/usr/bin/fedmsg-irc Type=simple User=fedmsg Group=fedmsg [Install] WantedBy=multi-user.target fedmsg-0.9.3/initsys/systemd/fedmsg-hub.service0000644000175000017500000000035012362250750023501 0ustar threebeanthreebean00000000000000[Unit] Description=Generic fedmsg processing hub After=network.target Documentation=https://fedmsg.readthedocs.org/ [Service] ExecStart=/usr/bin/fedmsg-hub Type=simple User=fedmsg Group=fedmsg [Install] WantedBy=multi-user.target fedmsg-0.9.3/initsys/sysv/0000755000175000017500000000000012371202100017376 5ustar threebeanthreebean00000000000000fedmsg-0.9.3/initsys/sysv/fedmsg-irc.init0000644000175000017500000000325312330204655022322 0ustar threebeanthreebean00000000000000#!/bin/bash # fedmsg-irc - This init script runs the FedMsg IRC bot # # chkconfig: - 25 85 # description: Enabled the fedmsg irc daemon # processname: fedmsg-irc # config: /etc/fedmsg.d/* # pidfile: /var/run/fedmsg/fedmsg-irc.pid ### BEGIN INIT INFO # Provides: fedmsg-irc # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: # Default-Stop: 0 1 6 # Short-Description: start or stop the fedmsg-irc # Description: Starts a fedmsg-hub with the ircbot enabled. ### END INIT INFO # Source function library. . /etc/init.d/functions PROG=fedmsg-irc USER=fedmsg OPTIONS=--daemon PIDFILE=/var/run/fedmsg/$PROG.pid LOCKFILE=${PIDFILE}.lock start() { echo -n "Starting FedMsg IRC bot: " if [ -f $LOCKFILE ]; then echo FedMsg IRC bot already running exit 2; fi if [ ! -d /var/run/fedmsg ]; then mkdir /var/run/fedmsg chown $USER:$USER /var/run/fedmsg fi daemon --user $USER $PROG $OPTIONS RETVAL=$? echo if [ $RETVAL -eq 0 ]; then success else failure fi } stop() { echo -n $"Stopping FedMsg IRC bot: " killproc -p ${PIDFILE} $PROG echo rm -f ${LOCKFILE} RETVAL=$? echo } case "$1" in start) start ;; stop) stop ;; status) if [ -f $PIDFILE ]; then echo $"FedMsg IRC bot is running." RETVAL=0 else echo $"FedMsg IRC bot is not running." RETVAL=3 fi ;; restart) stop start ;; *) echo "Usage: {start|stop|status|reload|restart}" exit 1 ;; esac exit $? fedmsg-0.9.3/initsys/sysv/fedmsg-relay.init0000644000175000017500000000327212330204655022662 0ustar threebeanthreebean00000000000000#!/bin/bash # fedmsg-relay - This init script runs the FedMsg Relay # # chkconfig: - 25 85 # description: Enabled the fedmsg relay daemon # processname: fedmsg-relay # config: /etc/fedmsg.d/* # pidfile: /var/run/fedmsg/fedmsg-relay.pid ### BEGIN INIT INFO # Provides: fedmsg-relay # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: # Default-Stop: 0 1 6 # Short-Description: start or stop the fedmsg-relay # Description: Starts a fedmsg-hub configured to relay special messages. ### END INIT INFO # Source function library. . /etc/init.d/functions PROG=fedmsg-relay USER=fedmsg OPTIONS=--daemon PIDFILE=/var/run/fedmsg/$PROG.pid LOCKFILE=${PIDFILE}.lock start() { echo -n "Starting FedMsg Relay: " if [ -f $LOCKFILE ]; then echo FedMsg Relay already running exit 2; fi if [ ! -d /var/run/fedmsg ]; then mkdir /var/run/fedmsg chown $USER:$USER /var/run/fedmsg fi daemon --user $USER $PROG $OPTIONS RETVAL=$? echo if [ $RETVAL -eq 0 ]; then success else failure fi } stop() { echo -n $"Stopping FedMsg Relay: " killproc -p ${PIDFILE} $PROG echo rm -f ${LOCKFILE} RETVAL=$? echo } case "$1" in start) start ;; stop) stop ;; status) if [ -f $PIDFILE ]; then echo $"FedMsg Relay is running." RETVAL=0 else echo $"FedMsg Relay is not running." RETVAL=3 fi ;; restart) stop start ;; *) echo "Usage: {start|stop|status|reload|restart}" exit 1 ;; esac exit $? fedmsg-0.9.3/initsys/sysv/fedmsg-gateway.init0000644000175000017500000000332612330204655023207 0ustar threebeanthreebean00000000000000#!/bin/bash # fedmsg-gateway - This init script runs the FedMsg Gateway # # chkconfig: - 25 85 # description: Enabled the fedmsg gateway daemon # processname: fedmsg-gateway # config: /etc/fedmsg.d/* # pidfile: /var/run/fedmsg/fedmsg-gateway.pid ### BEGIN INIT INFO # Provides: fedmsg-gateway # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: # Default-Stop: 0 1 6 # Short-Description: start or stop the fedmsg-gateway # Description: Starts a fedmsg-hub configured to gateway special messages. ### END INIT INFO # Source function library. . /etc/init.d/functions PROG=fedmsg-gateway USER=fedmsg OPTIONS=--daemon PIDFILE=/var/run/fedmsg/$PROG.pid LOCKFILE=${PIDFILE}.lock start() { echo -n "Starting FedMsg Gateway: " if [ -f $LOCKFILE ]; then echo FedMsg Gateway already running exit 2; fi if [ ! -d /var/run/fedmsg ]; then mkdir /var/run/fedmsg chown $USER:$USER /var/run/fedmsg fi daemon --user $USER $PROG $OPTIONS RETVAL=$? echo if [ $RETVAL -eq 0 ]; then success else failure fi } stop() { echo -n $"Stopping FedMsg Gateway: " killproc -p ${PIDFILE} $PROG echo rm -f ${LOCKFILE} RETVAL=$? echo } case "$1" in start) start ;; stop) stop ;; status) if [ -f $PIDFILE ]; then echo $"FedMsg Gateway is running." RETVAL=0 else echo $"FedMsg Gateway is not running." RETVAL=3 fi ;; restart) stop start ;; *) echo "Usage: {start|stop|status|reload|restart}" exit 1 ;; esac exit $? fedmsg-0.9.3/initsys/sysv/fedmsg-hub.init0000644000175000017500000000326512330204655022326 0ustar threebeanthreebean00000000000000#!/bin/bash # fedmsg-hub - This init script runs the FedMsg Hub # # chkconfig: - 25 85 # description: Enabled the fedmsg hub daemon # processname: fedmsg-hub # config: /etc/fedmsg.d/* # pidfile: /var/run/fedmsg/fedmsg-hub.pid ### BEGIN INIT INFO # Provides: fedmsg-hub # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: # Default-Stop: 0 1 6 # Short-Description: start or stop the fedmsg-hub # Description: The fedmsg hub loads and begins processing consumers and \ # producers ### END INIT INFO # Source function library. . /etc/init.d/functions PROG=fedmsg-hub USER=fedmsg OPTIONS=--daemon PIDFILE=/var/run/fedmsg/$PROG.pid LOCKFILE=${PIDFILE}.lock start() { echo -n "Starting the FedMsg Hub: " if [ -f $LOCKFILE ]; then echo FedMsg Hub already running exit 2; fi if [ ! -d /var/run/fedmsg ]; then mkdir /var/run/fedmsg chown $USER:$USER /var/run/fedmsg fi daemon --user $USER $PROG $OPTIONS RETVAL=$? echo if [ $RETVAL -eq 0 ]; then success else failure fi } stop() { echo -n $"Stopping the FedMsg Hub: " killproc -p ${PIDFILE} $PROG echo rm -f ${LOCKFILE} RETVAL=$? echo } case "$1" in start) start ;; stop) stop ;; status) if [ -f $PIDFILE ]; then echo $"FedMsg Hub is running." RETVAL=0 else echo $"FedMsg Hub is not running." RETVAL=3 fi ;; restart) stop start ;; *) echo "Usage: {start|stop|status|reload|restart}" exit 1 ;; esac exit $? fedmsg-0.9.3/LICENSE0000644000175000017500000006364212231547317015731 0ustar threebeanthreebean00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! fedmsg-0.9.3/MANIFEST.in0000644000175000017500000000050512231547317016447 0ustar threebeanthreebean00000000000000include LICENSE include README.rst include CHANGELOG.rst include dev_certs include logrotate recursive-include dev_certs * recursive-include fedmsg/tests/test_certs * recursive-include extras * recursive-include doc * recursive-include fedmsg.d *.py exclude fedmsg.d/_tweet-real.py recursive-include initsys * graft scripts