Import chain-of-trust function from @vladdd.

This commit is contained in:
dachshund 2013-08-27 15:13:55 -04:00
parent 1b21791961
commit fd39de6665
38 changed files with 39 additions and 1081 deletions

View file

@ -131,7 +131,7 @@ def update_client(repository_mirror):
# Remove any files from the destination directory that are no longer being
# tracked.
#updater.remove_obsolete_targets(destination_directory)
updater.remove_obsolete_targets(destination_directory)

View file

@ -1,33 +1,36 @@
"""
<Program Name>
simple_pip_integration.py
example_client.py
<Author>
Vladimir Diaz <vladimir.v.diaz@gmail.com>
<Started>
August 1, 2013
September 2012
<Copyright>
See LICENSE for licensing information.
<Purpose>
Example client script demonstrating custom python code one can write for a
PyPI+pip+TUF integration.
Example script demonstrating custom python code a software updater
utilizing The Update Framework may write to securely update files.
The 'basic_client.py' script can be used on the command-line to perform
an update that will download and update all available targets; writing
custom code is not required in this case.
The custom example below demonstrates updating all the targets of a
specified role (i.e., 'targets/
The custom examples below demonstrate:
(1) updating all targets
(2) updating all the targets of a specified role
(3) updating a specific target explicitely named.
"""
import logging
import tuf
import tuf.log
import tuf.client.updater
logger = logging.getLogger('tuf.cient.basic_client')
# Uncomment the line below to enable printing of debugging information.
#tuf.log.set_log_level(logging.DEBUG)
# Set the local repository directory containing the metadata files.
tuf.conf.repository_directory = '.'
@ -51,9 +54,6 @@
# all the targets tracked, and determine which of these targets have been
# updated.
updater.refresh()
#
updater.refresh_targets_metadata_chain(
all_targets = updater.all_targets()
updated_targets = updater.updated_targets(all_targets, destination_directory)
@ -67,3 +67,28 @@
# Remove any files from the destination directory that are no longer being
# tracked.
updater.remove_obsolete_targets(destination_directory)
"""
# Example demonstrating an update that only downloads the targets of
# a specific role (i.e., 'targets/role1')
updater.refresh()
targets_of_role1 = updater.targets_of_role('targets/role1')
updated_targets = updater.updated_targets(targets_of_role1, destination_directory)
for target in updated_targets:
updater.download_target(target, destination_directory)
"""
"""
# Example demonstrating an update that downloads a specific target.
updater.refresh()
target = updater.target('LICENSE.txt')
updated_target = updater.updated_targets([target], destination_directory)
for target in updated_target:
updater.download_target(target, destination_directory)
"""

View file

@ -1,84 +0,0 @@
"""
<Program Name>
example_integration.py
<Author>
Vladimir Diaz <vladimir.v.diaz@gmail.com>
<Started>
August 1, 2013
<Copyright>
See LICENSE for licensing information.
<Purpose>
Example client script outlining custom python code one can write for a
PyPI+pip+TUF integration. It aims to demonstrate efficient retrieval
of a target file and a metadata chain of trust, in a secure manner.
The custom example below demonstrates updating all the targets of a
specified role (i.e., 'targets/packages/A/Alice.txt').
"""
import logging
import tuf.client.updater
# Uncomment the line below to enable printing of debugging information.
tuf.log.set_log_level(logging.DEBUG)
# Set the local repository directory containing the metadata files.
tuf.conf.repository_directory = '.'
# Set the repository mirrors. This dictionary is needed by the Updater
# class of updater.py. The client will download metadata and target
# files from any one of these mirrors.
repository_mirrors = {'mirror1': {'url_prefix': 'http://localhost:8001',
'metadata_path': 'metadata',
'targets_path': 'targets',
'confined_target_dirs': ['']}}
# Create the Upater object using the updater name 'tuf-example'
# and the repository mirrors defined above.
updater = tuf.client.updater.Updater('tuf-example', repository_mirrors)
# Set the local destination directory to save the target files.
destination_directory = './targets'
# Refresh the repository's top-level roles, store the target information for
# all the targets of the 'Alice' project, and determine which of these targets
# have been updated. First, refresh top-level roles...
updater.refresh()
# The 'release.txt' file may be inspected to retreive our desired role, or
# a dictionary that links project names to project roles.
# For example: {'Alice': 'targets/packages/A/Alice'}
alice_role = 'targets/packages/A/Alice'
# Before we can download the metadata for 'alice_role', the chain of trust
# must be built. At the moment, the client has only downloaded/updated
# the metadata for the top-level roles.
# Download: 'targets/packages.txt', 'targets/packages/A.txt',
# 'targets/packages/A/Alice.txt'. In other words, we only fetch the minimum
# required to get a list of targets that the 'Alice' project
# has signed. Calling updater.all_targets() or updater.target() causes an
# update of all the metadata on the repository, which might be inefficient
# for a repository like PyPI.
updater.refresh_targets_metadata_chain(alice_role)
targets_of_alice = updater.targets_of_role(alice_role)
updated_targets = updater.updated_targets(targets_of_alice, destination_directory)
# The pip software updater might request multiple targets in one update
# cycle (i.e.,
# $ pip install Alice
# fetches 'simple/Alice/index.html', 'alice-v0.1.tar.gz', ...)
# As a simple example here, download a single target file arbitrarily
# chosen, and save it locally.
for updated_target in updated_targets:
if updated_target['filepath'] == 'packages/A/Alice/alice-v0.1.tar.gz':
updater.download_target(updated_target, destination_directory)
# Remove any files from the destination directory that are no longer being
# tracked.
updater.remove_obsolete_targets(destination_directory)

View file

@ -1,90 +0,0 @@
"""
<Program Name>
example_integration.py
<Author>
Vladimir Diaz <vladimir.v.diaz@gmail.com>
<Started>
August 1, 2013
<Copyright>
See LICENSE for licensing information.
<Purpose>
Example client script outlining custom python code one can write for a
PyPI+pip+TUF integration. It aims to demonstrate efficient retrieval
of a target file and a metadata chain of trust, in a secure manner.
The custom example below demonstrates updating all the targets of a
specified role (i.e., 'targets/packages/A/Alice.txt').
"""
import logging
import tuf.client.updater
# Uncomment the line below to enable printing of debugging information.
tuf.log.set_log_level(logging.DEBUG)
# Set the local repository directory containing the metadata files.
tuf.conf.repository_directory = '.'
# Set the repository mirrors. This dictionary is needed by the Updater
# class of updater.py. The client will download metadata and target
# files from any one of these mirrors.
repository_mirrors = {'mirror1': {'url_prefix': 'http://localhost:8001',
'metadata_path': 'metadata',
'targets_path': 'targets',
'confined_target_dirs': ['']}}
# Create the Upater object using the updater name 'tuf-example'
# and the repository mirrors defined above.
updater = tuf.client.updater.Updater('tuf-example', repository_mirrors)
# Set the local destination directory to save the target files.
destination_directory = './targets'
# The single target file that the client wishes to update/install.
alice_package = 'packages/A/Alice/alice-v2.0.tar.gz'
message = 'Example that updates '+repr(alice_package)+' and downloads the '+\
'mimimum metadata to set the required chain of trust.\n'
print message
# Refresh the repository's top-level roles, store the target information for
# all the targets of the 'Alice' project, and determine which of these targets
# have been updated. First, refresh top-level roles...
updater.refresh()
# The 'release.txt' file may be inspected to retreive our desired role, or
# a dictionary that links project names to project roles.
# For example: {'Alice': 'targets/packages/A/Alice'}
alice_role = 'targets/packages/A/Alice'
# Before we can download the metadata for 'alice_role', the chain of trust
# must be built. At the moment, the client has only downloaded/updated
# the metadata for the top-level roles.
# Download: 'targets/packages.txt', 'targets/packages/A.txt',
# 'targets/packages/A/Alice.txt'. In other words, we only fetch the minimum
# required to get a list of targets that the 'Alice' project
# has signed. Calling updater.all_targets() or updater.target() causes an
# update of all the metadata on the repository, which might be inefficient
# for a repository like PyPI.
updater.refresh_targets_metadata_chain(alice_role)
targets_of_alice = updater.targets_of_role(alice_role)
updated_targets = updater.updated_targets(targets_of_alice, destination_directory)
# The pip software updater might request multiple targets in one update
# cycle (i.e.,
# $ pip install Alice
# fetches 'simple/Alice/index.html', 'alice-v0.1.tar.gz', ...)
# As a simple example here, download a single target file arbitrarily
# chosen, and save it locally.
for updated_target in updated_targets:
if updated_target['filepath'] == alice_package:
updater.download_target(updated_target, destination_directory)
# Remove any files from the destination directory that are no longer being
# tracked.
updater.remove_obsolete_targets(destination_directory)

View file

@ -1,58 +0,0 @@
{
"signatures": [
{
"keyid": "9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9",
"method": "evp",
"sig": "adb041550a26327056b17409c59c2294930bcee1dc88008a9b458d828da673e2da4ae3c40257dfa51a25cd2cd23189fd1753546fd441879f275e515b433919e0403478bc2a7b7d9e455283f742fe5d059097be55eb2d705123194f31b13cb7d2a96421e5b7fb09df2f0a5d4245676b71c4630fd20ee29f962b3d327eb3362cd5e2f104b3a036d9c305817df955e19c49f3878cf3e65915c8a542adfd057f62522c1eca75cba513c81adb14994152934ecb4de1fb707d1aca4cc0f2b5ecb09e6645cb6f27f0769c8aeeff7f5728a910af9d310737c17e6b1cd611b07d70ee80de1457b13f54102ec5c58fdcf75470fe4db41c18f93f18a92f9929b8a9693e6e96b6231fc63705f47e05e079259e1eff17234060870685868da555d0bb05546f26d77ff7f091c3bd1a3e77633f2f5505597f8126a2130cacaee9a119c2915b48a0b08ff2152495462119b6a4ca05d302629bb7f7da60346a8cdd12f2820a00af6d1f3debffaf5052c2d31afa9c3fce3f82dbd139fcd0cd5062bede2c77c5e19407"
}
],
"signed": {
"_type": "Release",
"expires": "2014-08-01 16:19:08 UTC",
"meta": {
"root.txt": {
"hashes": {
"sha256": "2e496d43eb877fc725dd3bd616da0c1e018057982d3c8acf8906a4104680feb1"
},
"length": 4793
},
"targets.txt": {
"hashes": {
"sha256": "c5cbeeaaa617fa9ecf282ed4ed3051ecba2d8f9535f148e14103c6d6ed6bfd39"
},
"length": 2260
},
"targets/packages.txt": {
"hashes": {
"sha256": "324aff11e6488e3619f8a291dc94f82faf60ab00ce67443ba32997bd0d1ad0cb"
},
"length": 2325
},
"targets/packages/A.txt": {
"hashes": {
"sha256": "0af576b49df40cc310ba314a82dc264202ec74d4238eb526d85230aacf9d2282"
},
"length": 2123
},
"targets/packages/A/Alice.txt": {
"hashes": {
"sha256": "49d0adb568d9323161f987087894df88cc0eb45ad2e4b7972b017915899226af"
},
"length": 1377
},
"targets/packages/B.txt": {
"hashes": {
"sha256": "e3618668fe88e9fa99cb305e24d8c78ed3083270bb3de8bbc42dbf4234f2e894"
},
"length": 2119
},
"targets/packages/B/Bob.txt": {
"hashes": {
"sha256": "3fb4ac73a78e66408b6192e28aa3b02e8180793a64fd99e49842b4a4ad45b7e9"
},
"length": 1369
}
},
"version": 2
}
}

View file

@ -1,70 +0,0 @@
{
"signatures": [
{
"keyid": "c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b",
"method": "evp",
"sig": "83448b51098091a562d9074dc14e02af5a6f18fcc18ff0dd0d709d0d1a597fbe9c96d2a077acffdc85be0357f76c46b1d2cbb579ad376458a88b2e00330b4028361c337593c96b7c2eec10dc337c7652d9e83d7c2dca7e59230199d2e6e5d3f0f1a38f09d305b47954f552ecb45df5c247ffa60b3b15198bc17a17d9198e688289ec70e3043cad1c1ac9405ad81d1af5135cf961f1a45d60f08d00c4e1713722711bee4864655a495f6e105020702ffea947fe3288358dffa46fa8d9c4c47fb7b3fd8a47b2371a0ffa78bce885b2ddb36b75ca6f6fea807e236593b882a7b1fc6c0fe43eb4b6709b060e08fb3e6f5a56fea6a5524130d01b461f1d6c2e3b1c2ef8784190245568062ec888af1fee0740b81ca0c99b775396b421f507581257277ba1e8609528ffef0ef5c9c205b63874e2c37b5dabb738cf5597e0c39010b8041a87b00030f69217e41e03376d1899c25d0d66d9e936b9308709eecc9862273a91e42301f6254f501bc10806a8aced547667678c39790598579dcb79b064b074"
}
],
"signed": {
"_type": "Root",
"expires": "2014-07-31 15:21:53 UTC",
"keys": {
"76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAxyi2M6UtfeITuiu4kbWZ\nOU5CRScab9Z8eWy9Weff/IiSYD47uRhnseT84ls50yCDzaUMlrCSG4Kd+AdAfcVl\nmsFCnRC5HHacFF9EEPSDud9L+4LTgqM1fP4vWfv8ZZ1sXI/5Npeo/D3bcC9NmcfR\nBMCzaQl1NEoYK+QVMcqVVImoWeLEtmU52u96Y4FZv06FodhpHPVvKUmJFnXe/ikM\nLe5sTCP0QKLtv+q1bfZ84KBkE50QfDpTF1bqiDeuCtb/3yNb91gkpPspuWjn9icK\nFCc/D5FpYSkVnWCoPzYsuVcQzIPFV2Zr8L1gvSvPOPY7SJulk+jri2T1kZw/rbDe\nA9T/I1yG36/8IXv9JYA8yiMR4cblFqi00gj1Q3NrelBdYc27t8GDNP2D2H4wMw3P\nnTmmfJQ5WpR5ZbjVHy/OU5YCpeJ77sdBITaSVn5IWLYumko+vJohOoordMBfV/jZ\nTVVeaz0OCp9sPs46xKVN+m109/NNejS90gLIKPKDSfPrAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAuvReIoGpKvK0rwmkgccg\nmv8sTtEBolT02THaxO+6+gSPO/509msi/M3UNHsGNda1gccdwRMTsR/C9lCKC9Mp\nZ+JcOUl70SkL1lf4QlttWEDyDgDg1M7RPfcMZnq+eo/BPqGOxmbeNxKS2tqNfpQQ\nOqvSb7MMeII/mitunWo+UbJE/No9dimueFAjgHwQfH3rJCMnjfL5OT15UipHICCV\n/x6Rypc47kyOIfAvGMBnPT+sSapu+tboGPQf4kYwDpQVBPrJuGLYbgFvLAP/JKoi\ndHwXKeOAYP6FSioKcXbOspVd7a6FCUHQtEX8g158WOb28Ggo3eeXJx4Yb6ZW4WhD\no1jHNyELE2n1h42FETUNiESF3WDbfGZX8XINy+PXmVWGsY0YTdFOcSmw5k4fZ2Dp\nD57R7GQanMBBkpB/J5dVYvdP/NLTHeueBRFDJAFM+HRozbTpi+pFTcKV0dITLh43\nQrvSE7ZK2ktW1Zo5aJuhVClxga3teM6N4Hm3wEv1mfqBAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0BLhIsIORHPXuTU1CPSj\n34jQVNs3jXfpEfDIoYQcLPrNoz5icGWlg3H7YFtGSGOIOzJbyMlQR3iyGu7IYSW7\nuyJRX8OJ6rkbLcAg3z4QXZf6Y8isQYQGBiPb/j/LKGpGs6GA0wDqVfcCUJGtz04k\n5P4oPmJZjiQO2uMyQKYkJDWXllAgkY/SkuOUHyk/knE8EHIoNCwqCAVVnKc/gg/O\nL2I6mwkyes6eXQDRdwRK0z1P72ebzAgKdshhU8Jx4S1W3BTdX4CZ0TqBKxiNkhTi\nIWkZHM5hijX7NbCUNTIL4MUSDGga/quqs3kSMCM3lOd37MLiTDXHcCZoF09w6cgy\njsZyZZR7PBgpQjQ4EjgKstrAForp7ph7dF/BAP4Fz3uf9JBhdJ3LaIT/0et0BA/J\n52TxMT84ngzS+yWobqdrOK9xVaNOZTS0j3ScWpBKRCDR1E+llUJlkjphdD6Og8K2\ntFVKwCTYm3qfwHd2ulllVzbOOntTnq/ppcQjtTO2yYSVAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": {
"release": {
"keyids": [
"9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9"
],
"threshold": 1
},
"root": {
"keyids": [
"c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b"
],
"threshold": 1
},
"targets": {
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"threshold": 1
},
"timestamp": {
"keyids": [
"76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22"
],
"threshold": 1
}
},
"version": 1
}
}

View file

@ -1,45 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "89a80bef74459020b690187315ff0b3ecae376c68a5305ca08d29151fc3f5047385da8c70d1965d9c47bda9dce4ab8a2c83a8c04792d097491555bc884a8a833e644c0d85b27338154b861c7f829221f3e0d3170b3414a7922ff37cbb5223a7dafd95e8eb5bc4b2bcdcbcb72533751ebe4a6adb441d4389d0f55ad9a68beac98442aac953c0a6e531f45f78891ad15c72e54dda57e673d60d9936278d60f89ababcbc811eda9ba770b1a5cb222ff4e15f18da323b01e49e03ffbdfea207047d2543baa458978fc14644716ce92b9d112e732538d14002d5db5aa7143ee6eddf463b6e96f9504f87b393e8c340bfb5f425c05af454bc67711daabd412e96a295563b9171d7623f08a87a449f8e594e66e68e49f302e639ad523ce1baebe458afe07136030b949c5ba8114f975bcf1462486cc115a50a27263270cb63c0bcbe9e4ebc8171d9453e279086309668ac2d538b665c64888b43806a5bb97207fd91a02f4634c723da81dff84225eec4439c0acdb893410e34fd62343108d7b7055b59e"
}
],
"signed": {
"_type": "Targets",
"delegations": {
"keys": {
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": [
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages",
"paths": [
"packages/"
],
"threshold": 1
}
]
},
"expires": "2013-10-31 22:49:03 UTC",
"targets": {
"helloworld.py": {
"hashes": {
"sha256": "14d9f7904b16af5b3cd64285eb349bdce11dd3688d6e330ab7da87eb37512941"
},
"length": 18
}
},
"version": 2
}
}

View file

@ -1,48 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "028e6e6c93e3973bdbc295a5e96fb9d67926dc5a67b3127a77d3dbdd55e1b87bf82183e64f3e0ce133d0cf75b64a0c80f432c91c95bcd583af073473e991c7bc2a12cce0290b17232d82f010268eeb1192a242a14aa992b9b6036fff5dcf3fe5a2fcc0d15d9ca6aee54ca2a053779889968eac11c160fed1056b2ad0092f69deac9d286657b64a92f0b9182bdfee32930117b83baf729bd494b259d60a3ebd54c0a154ba87d710f9f8ab5ef6cfd563dffe346ef6bcb6551c5323f5c68839089a3ea65926c0fa159c43272d1323fd521b403dbe88d7213955e3c121328eb816db3521e059fc37b2e88741f517747344ce9b5520693061848b627077db692ab44afc1cab484270aa826339b1181862b461433b79d066cfb289fdd5f91b4e193bbdf5053d33e93b615e40ade38d7c74d8d3da8ae2df4fbaf4792a867cf08ba182666f465d0a0723058eebbec94b1c9e9f46560e05a45d58fdf98e5b5362077d63f00b0c8cf5ca00f60ef3ef5b2559a1c129eca3422a228aac3fa6882b368bfc233c"
}
],
"signed": {
"_type": "Targets",
"delegations": {
"keys": {
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": [
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages/A",
"paths": [
"packages/A/"
],
"threshold": 1
},
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages/B",
"paths": [
"packages/B/"
],
"threshold": 1
}
]
},
"expires": "2014-08-01 15:37:45 UTC",
"targets": {},
"version": 3
}
}

View file

@ -1,38 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "69be32d77d781bb48f0518dafade5fb0a166d9ad82340a3a20f7630165d69d8ab0f8e753fd490c4c8727968539a4285db94bf73317a83672a177576ebb8091ec8ed34334893a683dad990ddd2ef7f0b1c034ed581b11ff12a30d78e31bb3c16918464a91128b3151eafab427b316134e17106ebaaee9ab78d39673beb4d08fd5aeac506e485e9e71903886ec1adb9a69dd1855b98aec2e7d48e361ec5b92ea728d4d8ba3bb16e84dd36cbef88bfbb8ecb39d9e1b20544a678062af312447b302803592da00f68846d68f6c05dbb5e7419dca5b07e8d43aa5a9b1a3a0e8386c815c665160062c7b4760761d05c683ddf18e398816120cc7860574ac98b9fd3ef74018210b454b765bb4dfe45163b348f44fc1c804ae69fc1a13d7e71a03d0af724838ab959da6828e990e604cb563a00724e6b4deb7e8ca13275bbfc89185d1cd71d3fb2c11692b5785801632bd1e54d60d73b5817dd654217cdc0850df5527f04ae8ba053e9a040a7bd0de740629640354895bf6399ca9672f432d507b4ced82"
}
],
"signed": {
"_type": "Targets",
"delegations": {
"keys": {
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": [
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages/A/Alice",
"paths": [
"packages/A/Alice/"
],
"threshold": 1
}
]
},
"expires": "2014-08-01 15:45:01 UTC",
"targets": {},
"version": 2
}
}

View file

@ -1,28 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "b55953980cc35017cf6deb2681380880f14b216d261c18e45bf4ebecbda0c6cc07e49607dac81639037008f8cc328ecd7f2c5858d454861b3bfd3f2209c24067164edf0af14c5f4564c9244f7c423825c7e162df618159e3c376f1c6ed4fb56e97b3d7fd3da59724c706e6f86b1ccfae1896ed6f792b76517cb87be92fc6336f892191c2dc3f55511c15cd787157af26489f2e8fc011507dcae5f4f7b314fd1c7a97c7fc8d91559d92e8615bfde318acea99bef2c4906c92c0d6e97ce3ae27c6e7ad5a232809f05fda1f6f5241fea5dfe2b86a00a57859c3b5322ad22cd7ebb5d71c3b8014de5a866068e9eb77ff9d0bdc3599b0de18f0f6f1a3546f03989e02346dc81b36601eda373814401381bf97709a7545ef448c9d3eaf1f80fedf5a959042d700ba7ebd060c4348cac3452258823039d06871d90c5fbf22e2572abda908a1f9160856db4bcd5b152a35ef81dd977f13aabec7d4fa05499a5969e03841e088dd29239795d4a2927616e210200ce3dfa82a4c250775c33c18035e5aa62a"
}
],
"signed": {
"_type": "Targets",
"expires": "2014-08-01 15:46:53 UTC",
"targets": {
"packages/A/Alice/alice-v1.0.tar.gz": {
"hashes": {
"sha256": "21ecfb59295a055b39003e6b9a63b4aa7b3724458a7c663b00ee6cf69fc09e68"
},
"length": 15
},
"packages/A/Alice/alice-v2.0.tar.gz": {
"hashes": {
"sha256": "21ecfb59295a055b39003e6b9a63b4aa7b3724458a7c663b00ee6cf69fc09e68"
},
"length": 15
}
},
"version": 1
}
}

View file

@ -1,22 +0,0 @@
{
"signatures": [
{
"keyid": "76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22",
"method": "evp",
"sig": "9d09a61312b76ab8ec6f16b1bd9800769c306898c92df7a05bdd3a7bfe30747b187dab13427853957c3b21c1dc93519c290564f7703f4b07529fc64ff0e75d91569471bc112ab07d6253475489a07971384bcab10150c69d10c91960b75f7aa04b2c230eecc299b0e174278146bf3ab070841a1ff7ff15c7ad056eb020c29785b3ff432e2029c7bb56cdc36933204ce52e7dd32d5a7b9349b3f00d0da65a3423dadb4d74cf9abb91c29533c6d09b81811b1d3aed04988af0795ffa62fa409ada0a92a72d1f04f89caead224aa734aeb664fdb62a04b6045e8d749e015a5c40df81e275472e681722ed7afcf2556295eeb2463fbb36b055cc8581c9d8457d66c67b400627ab42d4619e8d6f881c66dda74385de451a5cbb967821255f7b211a03e34dc836b42e73d1588ac2ed5395f3e1c0ff281c84a9298d895cbf1b748ad19705a3ee26151eb08bb51df0210acca69b6a358390b223201e588d9c750f60238c6144a264f07e0631305566c1d41a07432800e226caaba2481882ffdeb177c657"
}
],
"signed": {
"_type": "Timestamp",
"expires": "2014-08-01 16:19:39 UTC",
"meta": {
"release.txt": {
"hashes": {
"sha256": "f22f2f12fad9069b2fb569d9e9273a95b015fe2d8f3937addfed3dc1e48d86de"
},
"length": 2152
}
},
"version": 2
}
}

View file

@ -1,28 +0,0 @@
{
"signatures": [
{
"keyid": "9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9",
"method": "evp",
"sig": "30f6cd75b4aab91ef4be4e4c10a46feeed25993b29ebb33f5c792b93dbf9fd03900cee41740876636ee2e415944f318b9197c23eec60d1d722923c7391d5f24669738e86931753177d10d8a712b39d329fa1ed2d8840f58a6297e9d0a6ed3c264f01cafc8ad6ae05f6bb57d848dfdabd67e0f48effece56009d4e93e4ed328b0f431bc2301c839bde6d3aac334957c470e10664249e156faee0a1b34237c775b7e22ce2d240a32e25abe661aa1cba63d933c016fe88b37587cf516dd92dbd8cf836708c2e51aef42e632a333b6b579bde49429771e8b50df160d642c2d05785120b14f2614491426dfee98fb4a4ac87f47daaa05cb3d54b06f7a3de7d0c54643b3dfec72fa89f9c04b20542705a13e6a6c9ffe7b1ad80b8895465f7cd35e8b8a589ccc7a51fda6fa1d2e31942aa3a81b2659d5d799a6ec3e6c68b61df35c47d62a8ba3982886902d61b8d822c709e98102a9f01b65476620dd59bf6027bd11e9db874801268cdc709ebdee69b2f1f5bfd74d95c76f4d8e377ce5b3f17a59f94a"
}
],
"signed": {
"_type": "Release",
"expires": "2013-08-08 15:21:53 UTC",
"meta": {
"root.txt": {
"hashes": {
"sha256": "2e496d43eb877fc725dd3bd616da0c1e018057982d3c8acf8906a4104680feb1"
},
"length": 4793
},
"targets.txt": {
"hashes": {
"sha256": "44214fdc4a2642e7e929257cbc7f1049120637ee16a8478e8028c110d1350696"
},
"length": 1183
}
},
"version": 1
}
}

View file

@ -1,70 +0,0 @@
{
"signatures": [
{
"keyid": "c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b",
"method": "evp",
"sig": "83448b51098091a562d9074dc14e02af5a6f18fcc18ff0dd0d709d0d1a597fbe9c96d2a077acffdc85be0357f76c46b1d2cbb579ad376458a88b2e00330b4028361c337593c96b7c2eec10dc337c7652d9e83d7c2dca7e59230199d2e6e5d3f0f1a38f09d305b47954f552ecb45df5c247ffa60b3b15198bc17a17d9198e688289ec70e3043cad1c1ac9405ad81d1af5135cf961f1a45d60f08d00c4e1713722711bee4864655a495f6e105020702ffea947fe3288358dffa46fa8d9c4c47fb7b3fd8a47b2371a0ffa78bce885b2ddb36b75ca6f6fea807e236593b882a7b1fc6c0fe43eb4b6709b060e08fb3e6f5a56fea6a5524130d01b461f1d6c2e3b1c2ef8784190245568062ec888af1fee0740b81ca0c99b775396b421f507581257277ba1e8609528ffef0ef5c9c205b63874e2c37b5dabb738cf5597e0c39010b8041a87b00030f69217e41e03376d1899c25d0d66d9e936b9308709eecc9862273a91e42301f6254f501bc10806a8aced547667678c39790598579dcb79b064b074"
}
],
"signed": {
"_type": "Root",
"expires": "2014-07-31 15:21:53 UTC",
"keys": {
"76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAxyi2M6UtfeITuiu4kbWZ\nOU5CRScab9Z8eWy9Weff/IiSYD47uRhnseT84ls50yCDzaUMlrCSG4Kd+AdAfcVl\nmsFCnRC5HHacFF9EEPSDud9L+4LTgqM1fP4vWfv8ZZ1sXI/5Npeo/D3bcC9NmcfR\nBMCzaQl1NEoYK+QVMcqVVImoWeLEtmU52u96Y4FZv06FodhpHPVvKUmJFnXe/ikM\nLe5sTCP0QKLtv+q1bfZ84KBkE50QfDpTF1bqiDeuCtb/3yNb91gkpPspuWjn9icK\nFCc/D5FpYSkVnWCoPzYsuVcQzIPFV2Zr8L1gvSvPOPY7SJulk+jri2T1kZw/rbDe\nA9T/I1yG36/8IXv9JYA8yiMR4cblFqi00gj1Q3NrelBdYc27t8GDNP2D2H4wMw3P\nnTmmfJQ5WpR5ZbjVHy/OU5YCpeJ77sdBITaSVn5IWLYumko+vJohOoordMBfV/jZ\nTVVeaz0OCp9sPs46xKVN+m109/NNejS90gLIKPKDSfPrAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAuvReIoGpKvK0rwmkgccg\nmv8sTtEBolT02THaxO+6+gSPO/509msi/M3UNHsGNda1gccdwRMTsR/C9lCKC9Mp\nZ+JcOUl70SkL1lf4QlttWEDyDgDg1M7RPfcMZnq+eo/BPqGOxmbeNxKS2tqNfpQQ\nOqvSb7MMeII/mitunWo+UbJE/No9dimueFAjgHwQfH3rJCMnjfL5OT15UipHICCV\n/x6Rypc47kyOIfAvGMBnPT+sSapu+tboGPQf4kYwDpQVBPrJuGLYbgFvLAP/JKoi\ndHwXKeOAYP6FSioKcXbOspVd7a6FCUHQtEX8g158WOb28Ggo3eeXJx4Yb6ZW4WhD\no1jHNyELE2n1h42FETUNiESF3WDbfGZX8XINy+PXmVWGsY0YTdFOcSmw5k4fZ2Dp\nD57R7GQanMBBkpB/J5dVYvdP/NLTHeueBRFDJAFM+HRozbTpi+pFTcKV0dITLh43\nQrvSE7ZK2ktW1Zo5aJuhVClxga3teM6N4Hm3wEv1mfqBAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0BLhIsIORHPXuTU1CPSj\n34jQVNs3jXfpEfDIoYQcLPrNoz5icGWlg3H7YFtGSGOIOzJbyMlQR3iyGu7IYSW7\nuyJRX8OJ6rkbLcAg3z4QXZf6Y8isQYQGBiPb/j/LKGpGs6GA0wDqVfcCUJGtz04k\n5P4oPmJZjiQO2uMyQKYkJDWXllAgkY/SkuOUHyk/knE8EHIoNCwqCAVVnKc/gg/O\nL2I6mwkyes6eXQDRdwRK0z1P72ebzAgKdshhU8Jx4S1W3BTdX4CZ0TqBKxiNkhTi\nIWkZHM5hijX7NbCUNTIL4MUSDGga/quqs3kSMCM3lOd37MLiTDXHcCZoF09w6cgy\njsZyZZR7PBgpQjQ4EjgKstrAForp7ph7dF/BAP4Fz3uf9JBhdJ3LaIT/0et0BA/J\n52TxMT84ngzS+yWobqdrOK9xVaNOZTS0j3ScWpBKRCDR1E+llUJlkjphdD6Og8K2\ntFVKwCTYm3qfwHd2ulllVzbOOntTnq/ppcQjtTO2yYSVAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": {
"release": {
"keyids": [
"9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9"
],
"threshold": 1
},
"root": {
"keyids": [
"c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b"
],
"threshold": 1
},
"targets": {
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"threshold": 1
},
"timestamp": {
"keyids": [
"76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22"
],
"threshold": 1
}
},
"version": 1
}
}

View file

@ -1,22 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "131fe09bff13d343f40e22fc735ff9593b73006177791be400fc4efdc0a87dce8767b49e144acb69097b5377afa87628693a70e19b43c1793043805b43fe112a273e72c095e3b0d2d9df16c07f8035879ce549759d353394c3a09cf0587844d2cf2ad6446c4e2bee14c242167d5706541aeead6fad657c81d6b8948d3a5a2537d7016efa5ab5ce595c898ee5f8b807519f01bd70f479763df0fd4d16427959e1ea1dc674dbaeae6c8917bcf42fd0162534610119751729f030f744bdf5734bd0561aae4dc33e1f1166d3aca17a5cb9efd31344ba99c172fffc0b0055f34c77ff3228a87bd3f94f5f31d069ab92ae3f4d22248e11e86d2f4607b7f6b4d0e59855ba2b76eb9ad6fff6ed895f38dd01a204983f9048db4ebfe5e0fa902880ce2a64ccb5d74f98d4a58d515b3873b3e15914be5ef2e7a81d5d95b180de6b8335c994d4e0e4d3ec329b9de37a5e2ffa4b22d4a93250c4d764a353de1dbf48bb5ed4c7ae727901276da7dfc34ab4502fd8898b8d5f713eb0c2057f06a75b35a08a13cb"
}
],
"signed": {
"_type": "Targets",
"expires": "2013-10-31 22:49:03 UTC",
"targets": {
"helloworld.py": {
"hashes": {
"sha256": "14d9f7904b16af5b3cd64285eb349bdce11dd3688d6e330ab7da87eb37512941"
},
"length": 18
}
},
"version": 1
}
}

View file

@ -1,22 +0,0 @@
{
"signatures": [
{
"keyid": "76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22",
"method": "evp",
"sig": "9d09a61312b76ab8ec6f16b1bd9800769c306898c92df7a05bdd3a7bfe30747b187dab13427853957c3b21c1dc93519c290564f7703f4b07529fc64ff0e75d91569471bc112ab07d6253475489a07971384bcab10150c69d10c91960b75f7aa04b2c230eecc299b0e174278146bf3ab070841a1ff7ff15c7ad056eb020c29785b3ff432e2029c7bb56cdc36933204ce52e7dd32d5a7b9349b3f00d0da65a3423dadb4d74cf9abb91c29533c6d09b81811b1d3aed04988af0795ffa62fa409ada0a92a72d1f04f89caead224aa734aeb664fdb62a04b6045e8d749e015a5c40df81e275472e681722ed7afcf2556295eeb2463fbb36b055cc8581c9d8457d66c67b400627ab42d4619e8d6f881c66dda74385de451a5cbb967821255f7b211a03e34dc836b42e73d1588ac2ed5395f3e1c0ff281c84a9298d895cbf1b748ad19705a3ee26151eb08bb51df0210acca69b6a358390b223201e588d9c750f60238c6144a264f07e0631305566c1d41a07432800e226caaba2481882ffdeb177c657"
}
],
"signed": {
"_type": "Timestamp",
"expires": "2014-08-01 16:19:39 UTC",
"meta": {
"release.txt": {
"hashes": {
"sha256": "f22f2f12fad9069b2fb569d9e9273a95b015fe2d8f3937addfed3dc1e48d86de"
},
"length": 2152
}
},
"version": 2
}
}

View file

@ -1,23 +0,0 @@
$ python -B example_integration.py
Example that updates 'packages/A/Alice/alice-v2.0.tar.gz' and downloads the mimimum metadata to set the required chain of trust.
[2013-08-01 17:15:45,651 UTC] [tuf.download] [INFO][download_url_to_tempfileobj:362@download.py] Downloading: http://localhost:8001/metadata/timestamp.txt
[2013-08-01 17:15:45,657 UTC] [tuf] [INFO][_update_metadata_if_changed:847@updater.py] Metadata 'release.txt' has changed.
[2013-08-01 17:15:45,657 UTC] [tuf.download] [INFO][download_url_to_tempfileobj:362@download.py] Downloading: http://localhost:8001/metadata/release.txt
[2013-08-01 17:15:45,659 UTC] [tuf.download] [INFO][_check_hashes:221@download.py] The file's sha256 hash is correct: f22f2f12fad9069b2fb569d9e9273a95b015fe2d8f3937addfed3dc1e48d86de
[2013-08-01 17:15:45,662 UTC] [tuf] [INFO][_update_metadata_if_changed:847@updater.py] Metadata 'targets.txt' has changed.
[2013-08-01 17:15:45,662 UTC] [tuf.download] [INFO][download_url_to_tempfileobj:362@download.py] Downloading: http://localhost:8001/metadata/targets.txt
[2013-08-01 17:15:45,664 UTC] [tuf.download] [INFO][_check_hashes:221@download.py] The file's sha256 hash is correct: c5cbeeaaa617fa9ecf282ed4ed3051ecba2d8f9535f148e14103c6d6ed6bfd39
[2013-08-01 17:15:45,671 UTC] [tuf] [INFO][refresh_targets_metadata_chain:1384@updater.py] Minimum metadata to download to set chain of trust: ['targets', 'targets/packages', 'targets/packages/A'].
[2013-08-01 17:15:45,672 UTC] [tuf] [INFO][_update_metadata_if_changed:847@updater.py] Metadata 'targets/packages.txt' has changed.
[2013-08-01 17:15:45,672 UTC] [tuf.download] [INFO][download_url_to_tempfileobj:362@download.py] Downloading: http://localhost:8001/metadata/targets/packages.txt
[2013-08-01 17:15:45,674 UTC] [tuf.download] [INFO][_check_hashes:221@download.py] The file's sha256 hash is correct: 324aff11e6488e3619f8a291dc94f82faf60ab00ce67443ba32997bd0d1ad0cb
[2013-08-01 17:15:45,678 UTC] [tuf] [INFO][_update_metadata_if_changed:847@updater.py] Metadata 'targets/packages/A.txt' has changed.
[2013-08-01 17:15:45,678 UTC] [tuf.download] [INFO][download_url_to_tempfileobj:362@download.py] Downloading: http://localhost:8001/metadata/targets/packages/A.txt
[2013-08-01 17:15:45,680 UTC] [tuf.download] [INFO][_check_hashes:221@download.py] The file's sha256 hash is correct: 0af576b49df40cc310ba314a82dc264202ec74d4238eb526d85230aacf9d2282
[2013-08-01 17:15:45,684 UTC] [tuf] [INFO][_update_metadata_if_changed:847@updater.py] Metadata u'targets/packages/A/Alice.txt' has changed.
[2013-08-01 17:15:45,684 UTC] [tuf.download] [INFO][download_url_to_tempfileobj:362@download.py] Downloading: http://localhost:8001/metadata/targets/packages/A/Alice.txt
[2013-08-01 17:15:45,686 UTC] [tuf.download] [INFO][_check_hashes:221@download.py] The file's sha256 hash is correct: 49d0adb568d9323161f987087894df88cc0eb45ad2e4b7972b017915899226af
[2013-08-01 17:15:45,689 UTC] [tuf.download] [INFO][download_url_to_tempfileobj:362@download.py] Downloading: http://localhost:8001/targets/packages/A/Alice/alice-v2.0.tar.gz
[2013-08-01 17:15:45,696 UTC] [tuf.download] [INFO][_check_hashes:221@download.py] The file's sha256 hash is correct: 21ecfb59295a055b39003e6b9a63b4aa7b3724458a7c663b00ee6cf69fc09e68

View file

@ -1,10 +0,0 @@
$ python -m SimpleHTTPServer 8001
Serving HTTP on 0.0.0.0 port 8001 ...
localhost.localdomain - - [01/Aug/2013 13:15:45] "GET /metadata/timestamp.txt HTTP/1.1" 200 -
localhost.localdomain - - [01/Aug/2013 13:15:45] "GET /metadata/release.txt HTTP/1.1" 200 -
localhost.localdomain - - [01/Aug/2013 13:15:45] "GET /metadata/targets.txt HTTP/1.1" 200 -
localhost.localdomain - - [01/Aug/2013 13:15:45] "GET /metadata/targets/packages.txt HTTP/1.1" 200 -
localhost.localdomain - - [01/Aug/2013 13:15:45] "GET /metadata/targets/packages/A.txt HTTP/1.1" 200 -
localhost.localdomain - - [01/Aug/2013 13:15:45] "GET /metadata/targets/packages/A/Alice.txt HTTP/1.1" 200 -
localhost.localdomain - - [01/Aug/2013 13:15:45] "GET /targets/packages/A/Alice/alice-v2.0.tar.gz HTTP/1.1" 200 -

View file

@ -1 +0,0 @@
Alice was here

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
print hello world

View file

@ -1,23 +0,0 @@
[expiration]
days = 364
years = 0
minutes = 0
hours = 0
seconds = 0
[release]
keyids = 9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9
threshold = 1
[timestamp]
keyids = 76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22
threshold = 1
[root]
keyids = c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b
threshold = 1
[targets]
keyids = 845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b
threshold = 1

View file

@ -1,58 +0,0 @@
{
"signatures": [
{
"keyid": "9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9",
"method": "evp",
"sig": "adb041550a26327056b17409c59c2294930bcee1dc88008a9b458d828da673e2da4ae3c40257dfa51a25cd2cd23189fd1753546fd441879f275e515b433919e0403478bc2a7b7d9e455283f742fe5d059097be55eb2d705123194f31b13cb7d2a96421e5b7fb09df2f0a5d4245676b71c4630fd20ee29f962b3d327eb3362cd5e2f104b3a036d9c305817df955e19c49f3878cf3e65915c8a542adfd057f62522c1eca75cba513c81adb14994152934ecb4de1fb707d1aca4cc0f2b5ecb09e6645cb6f27f0769c8aeeff7f5728a910af9d310737c17e6b1cd611b07d70ee80de1457b13f54102ec5c58fdcf75470fe4db41c18f93f18a92f9929b8a9693e6e96b6231fc63705f47e05e079259e1eff17234060870685868da555d0bb05546f26d77ff7f091c3bd1a3e77633f2f5505597f8126a2130cacaee9a119c2915b48a0b08ff2152495462119b6a4ca05d302629bb7f7da60346a8cdd12f2820a00af6d1f3debffaf5052c2d31afa9c3fce3f82dbd139fcd0cd5062bede2c77c5e19407"
}
],
"signed": {
"_type": "Release",
"expires": "2014-08-01 16:19:08 UTC",
"meta": {
"root.txt": {
"hashes": {
"sha256": "2e496d43eb877fc725dd3bd616da0c1e018057982d3c8acf8906a4104680feb1"
},
"length": 4793
},
"targets.txt": {
"hashes": {
"sha256": "c5cbeeaaa617fa9ecf282ed4ed3051ecba2d8f9535f148e14103c6d6ed6bfd39"
},
"length": 2260
},
"targets/packages.txt": {
"hashes": {
"sha256": "324aff11e6488e3619f8a291dc94f82faf60ab00ce67443ba32997bd0d1ad0cb"
},
"length": 2325
},
"targets/packages/A.txt": {
"hashes": {
"sha256": "0af576b49df40cc310ba314a82dc264202ec74d4238eb526d85230aacf9d2282"
},
"length": 2123
},
"targets/packages/A/Alice.txt": {
"hashes": {
"sha256": "49d0adb568d9323161f987087894df88cc0eb45ad2e4b7972b017915899226af"
},
"length": 1377
},
"targets/packages/B.txt": {
"hashes": {
"sha256": "e3618668fe88e9fa99cb305e24d8c78ed3083270bb3de8bbc42dbf4234f2e894"
},
"length": 2119
},
"targets/packages/B/Bob.txt": {
"hashes": {
"sha256": "3fb4ac73a78e66408b6192e28aa3b02e8180793a64fd99e49842b4a4ad45b7e9"
},
"length": 1369
}
},
"version": 2
}
}

View file

@ -1,70 +0,0 @@
{
"signatures": [
{
"keyid": "c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b",
"method": "evp",
"sig": "83448b51098091a562d9074dc14e02af5a6f18fcc18ff0dd0d709d0d1a597fbe9c96d2a077acffdc85be0357f76c46b1d2cbb579ad376458a88b2e00330b4028361c337593c96b7c2eec10dc337c7652d9e83d7c2dca7e59230199d2e6e5d3f0f1a38f09d305b47954f552ecb45df5c247ffa60b3b15198bc17a17d9198e688289ec70e3043cad1c1ac9405ad81d1af5135cf961f1a45d60f08d00c4e1713722711bee4864655a495f6e105020702ffea947fe3288358dffa46fa8d9c4c47fb7b3fd8a47b2371a0ffa78bce885b2ddb36b75ca6f6fea807e236593b882a7b1fc6c0fe43eb4b6709b060e08fb3e6f5a56fea6a5524130d01b461f1d6c2e3b1c2ef8784190245568062ec888af1fee0740b81ca0c99b775396b421f507581257277ba1e8609528ffef0ef5c9c205b63874e2c37b5dabb738cf5597e0c39010b8041a87b00030f69217e41e03376d1899c25d0d66d9e936b9308709eecc9862273a91e42301f6254f501bc10806a8aced547667678c39790598579dcb79b064b074"
}
],
"signed": {
"_type": "Root",
"expires": "2014-07-31 15:21:53 UTC",
"keys": {
"76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAxyi2M6UtfeITuiu4kbWZ\nOU5CRScab9Z8eWy9Weff/IiSYD47uRhnseT84ls50yCDzaUMlrCSG4Kd+AdAfcVl\nmsFCnRC5HHacFF9EEPSDud9L+4LTgqM1fP4vWfv8ZZ1sXI/5Npeo/D3bcC9NmcfR\nBMCzaQl1NEoYK+QVMcqVVImoWeLEtmU52u96Y4FZv06FodhpHPVvKUmJFnXe/ikM\nLe5sTCP0QKLtv+q1bfZ84KBkE50QfDpTF1bqiDeuCtb/3yNb91gkpPspuWjn9icK\nFCc/D5FpYSkVnWCoPzYsuVcQzIPFV2Zr8L1gvSvPOPY7SJulk+jri2T1kZw/rbDe\nA9T/I1yG36/8IXv9JYA8yiMR4cblFqi00gj1Q3NrelBdYc27t8GDNP2D2H4wMw3P\nnTmmfJQ5WpR5ZbjVHy/OU5YCpeJ77sdBITaSVn5IWLYumko+vJohOoordMBfV/jZ\nTVVeaz0OCp9sPs46xKVN+m109/NNejS90gLIKPKDSfPrAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAuvReIoGpKvK0rwmkgccg\nmv8sTtEBolT02THaxO+6+gSPO/509msi/M3UNHsGNda1gccdwRMTsR/C9lCKC9Mp\nZ+JcOUl70SkL1lf4QlttWEDyDgDg1M7RPfcMZnq+eo/BPqGOxmbeNxKS2tqNfpQQ\nOqvSb7MMeII/mitunWo+UbJE/No9dimueFAjgHwQfH3rJCMnjfL5OT15UipHICCV\n/x6Rypc47kyOIfAvGMBnPT+sSapu+tboGPQf4kYwDpQVBPrJuGLYbgFvLAP/JKoi\ndHwXKeOAYP6FSioKcXbOspVd7a6FCUHQtEX8g158WOb28Ggo3eeXJx4Yb6ZW4WhD\no1jHNyELE2n1h42FETUNiESF3WDbfGZX8XINy+PXmVWGsY0YTdFOcSmw5k4fZ2Dp\nD57R7GQanMBBkpB/J5dVYvdP/NLTHeueBRFDJAFM+HRozbTpi+pFTcKV0dITLh43\nQrvSE7ZK2ktW1Zo5aJuhVClxga3teM6N4Hm3wEv1mfqBAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
},
"c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0BLhIsIORHPXuTU1CPSj\n34jQVNs3jXfpEfDIoYQcLPrNoz5icGWlg3H7YFtGSGOIOzJbyMlQR3iyGu7IYSW7\nuyJRX8OJ6rkbLcAg3z4QXZf6Y8isQYQGBiPb/j/LKGpGs6GA0wDqVfcCUJGtz04k\n5P4oPmJZjiQO2uMyQKYkJDWXllAgkY/SkuOUHyk/knE8EHIoNCwqCAVVnKc/gg/O\nL2I6mwkyes6eXQDRdwRK0z1P72ebzAgKdshhU8Jx4S1W3BTdX4CZ0TqBKxiNkhTi\nIWkZHM5hijX7NbCUNTIL4MUSDGga/quqs3kSMCM3lOd37MLiTDXHcCZoF09w6cgy\njsZyZZR7PBgpQjQ4EjgKstrAForp7ph7dF/BAP4Fz3uf9JBhdJ3LaIT/0et0BA/J\n52TxMT84ngzS+yWobqdrOK9xVaNOZTS0j3ScWpBKRCDR1E+llUJlkjphdD6Og8K2\ntFVKwCTYm3qfwHd2ulllVzbOOntTnq/ppcQjtTO2yYSVAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": {
"release": {
"keyids": [
"9a0933bdae0a2c387f086ecd2d79d8e59d7bce66aa21bf1de9b5069c30369dc9"
],
"threshold": 1
},
"root": {
"keyids": [
"c05b95f47865866ebe22fcb76595b05fcc77a2bf145ca3d7302ce7868cbaed7b"
],
"threshold": 1
},
"targets": {
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"threshold": 1
},
"timestamp": {
"keyids": [
"76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22"
],
"threshold": 1
}
},
"version": 1
}
}

View file

@ -1,45 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "89a80bef74459020b690187315ff0b3ecae376c68a5305ca08d29151fc3f5047385da8c70d1965d9c47bda9dce4ab8a2c83a8c04792d097491555bc884a8a833e644c0d85b27338154b861c7f829221f3e0d3170b3414a7922ff37cbb5223a7dafd95e8eb5bc4b2bcdcbcb72533751ebe4a6adb441d4389d0f55ad9a68beac98442aac953c0a6e531f45f78891ad15c72e54dda57e673d60d9936278d60f89ababcbc811eda9ba770b1a5cb222ff4e15f18da323b01e49e03ffbdfea207047d2543baa458978fc14644716ce92b9d112e732538d14002d5db5aa7143ee6eddf463b6e96f9504f87b393e8c340bfb5f425c05af454bc67711daabd412e96a295563b9171d7623f08a87a449f8e594e66e68e49f302e639ad523ce1baebe458afe07136030b949c5ba8114f975bcf1462486cc115a50a27263270cb63c0bcbe9e4ebc8171d9453e279086309668ac2d538b665c64888b43806a5bb97207fd91a02f4634c723da81dff84225eec4439c0acdb893410e34fd62343108d7b7055b59e"
}
],
"signed": {
"_type": "Targets",
"delegations": {
"keys": {
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": [
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages",
"paths": [
"packages/"
],
"threshold": 1
}
]
},
"expires": "2013-10-31 22:49:03 UTC",
"targets": {
"helloworld.py": {
"hashes": {
"sha256": "14d9f7904b16af5b3cd64285eb349bdce11dd3688d6e330ab7da87eb37512941"
},
"length": 18
}
},
"version": 2
}
}

View file

@ -1,48 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "028e6e6c93e3973bdbc295a5e96fb9d67926dc5a67b3127a77d3dbdd55e1b87bf82183e64f3e0ce133d0cf75b64a0c80f432c91c95bcd583af073473e991c7bc2a12cce0290b17232d82f010268eeb1192a242a14aa992b9b6036fff5dcf3fe5a2fcc0d15d9ca6aee54ca2a053779889968eac11c160fed1056b2ad0092f69deac9d286657b64a92f0b9182bdfee32930117b83baf729bd494b259d60a3ebd54c0a154ba87d710f9f8ab5ef6cfd563dffe346ef6bcb6551c5323f5c68839089a3ea65926c0fa159c43272d1323fd521b403dbe88d7213955e3c121328eb816db3521e059fc37b2e88741f517747344ce9b5520693061848b627077db692ab44afc1cab484270aa826339b1181862b461433b79d066cfb289fdd5f91b4e193bbdf5053d33e93b615e40ade38d7c74d8d3da8ae2df4fbaf4792a867cf08ba182666f465d0a0723058eebbec94b1c9e9f46560e05a45d58fdf98e5b5362077d63f00b0c8cf5ca00f60ef3ef5b2559a1c129eca3422a228aac3fa6882b368bfc233c"
}
],
"signed": {
"_type": "Targets",
"delegations": {
"keys": {
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": [
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages/A",
"paths": [
"packages/A/"
],
"threshold": 1
},
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages/B",
"paths": [
"packages/B/"
],
"threshold": 1
}
]
},
"expires": "2014-08-01 15:37:45 UTC",
"targets": {},
"version": 3
}
}

View file

@ -1,38 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "69be32d77d781bb48f0518dafade5fb0a166d9ad82340a3a20f7630165d69d8ab0f8e753fd490c4c8727968539a4285db94bf73317a83672a177576ebb8091ec8ed34334893a683dad990ddd2ef7f0b1c034ed581b11ff12a30d78e31bb3c16918464a91128b3151eafab427b316134e17106ebaaee9ab78d39673beb4d08fd5aeac506e485e9e71903886ec1adb9a69dd1855b98aec2e7d48e361ec5b92ea728d4d8ba3bb16e84dd36cbef88bfbb8ecb39d9e1b20544a678062af312447b302803592da00f68846d68f6c05dbb5e7419dca5b07e8d43aa5a9b1a3a0e8386c815c665160062c7b4760761d05c683ddf18e398816120cc7860574ac98b9fd3ef74018210b454b765bb4dfe45163b348f44fc1c804ae69fc1a13d7e71a03d0af724838ab959da6828e990e604cb563a00724e6b4deb7e8ca13275bbfc89185d1cd71d3fb2c11692b5785801632bd1e54d60d73b5817dd654217cdc0850df5527f04ae8ba053e9a040a7bd0de740629640354895bf6399ca9672f432d507b4ced82"
}
],
"signed": {
"_type": "Targets",
"delegations": {
"keys": {
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": [
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages/A/Alice",
"paths": [
"packages/A/Alice/"
],
"threshold": 1
}
]
},
"expires": "2014-08-01 15:45:01 UTC",
"targets": {},
"version": 2
}
}

View file

@ -1,28 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "b55953980cc35017cf6deb2681380880f14b216d261c18e45bf4ebecbda0c6cc07e49607dac81639037008f8cc328ecd7f2c5858d454861b3bfd3f2209c24067164edf0af14c5f4564c9244f7c423825c7e162df618159e3c376f1c6ed4fb56e97b3d7fd3da59724c706e6f86b1ccfae1896ed6f792b76517cb87be92fc6336f892191c2dc3f55511c15cd787157af26489f2e8fc011507dcae5f4f7b314fd1c7a97c7fc8d91559d92e8615bfde318acea99bef2c4906c92c0d6e97ce3ae27c6e7ad5a232809f05fda1f6f5241fea5dfe2b86a00a57859c3b5322ad22cd7ebb5d71c3b8014de5a866068e9eb77ff9d0bdc3599b0de18f0f6f1a3546f03989e02346dc81b36601eda373814401381bf97709a7545ef448c9d3eaf1f80fedf5a959042d700ba7ebd060c4348cac3452258823039d06871d90c5fbf22e2572abda908a1f9160856db4bcd5b152a35ef81dd977f13aabec7d4fa05499a5969e03841e088dd29239795d4a2927616e210200ce3dfa82a4c250775c33c18035e5aa62a"
}
],
"signed": {
"_type": "Targets",
"expires": "2014-08-01 15:46:53 UTC",
"targets": {
"packages/A/Alice/alice-v1.0.tar.gz": {
"hashes": {
"sha256": "21ecfb59295a055b39003e6b9a63b4aa7b3724458a7c663b00ee6cf69fc09e68"
},
"length": 15
},
"packages/A/Alice/alice-v2.0.tar.gz": {
"hashes": {
"sha256": "21ecfb59295a055b39003e6b9a63b4aa7b3724458a7c663b00ee6cf69fc09e68"
},
"length": 15
}
},
"version": 1
}
}

View file

@ -1,38 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "6be3f064c985d60a1ab0ede575b8f86ff55f4bbbe457d30e330ae53ef4377751793282639d914c66028620f7d0076f73ae7ebf816cf1c98d77e765f1c76d64bebe79fb759d7307146458e206725fee8c9371f755cb49a59bd06458a5f214797175dbd6a745c290f968c43d15a8bb993cac6b02860a9e6fc351a083e72ea63a3298f138db25cb0441946ef88f09a3e4b3dfdd88622f79f3d3bdbc9d1f280a160e0e5a6a80dab324a7764b7f8951a0fd75a071f2b0e71a0a2914559bf1c2c7272dba42e5d171d36323afe98bf1eb48773c6a6ea23af941eb79a707be607b3e6a096ad330b6009db637460139e6aef0891455aa8e7b6c8953a409841357a43dd6b93e66c308d96ab80822d37eee2cd24c928f46f353957764dfd3c01a19aadc8c8d61d7f335d3d45cb6c28efae840ce3cc9324afcd4501a254a2283b0beaf4b590cb498ba3615244acf3a64b09fc216601222de8abb22b7c9e042b63e840c52c0cc31482c46e3a31e21d3267676249f0f7468b754748dfc6d83190d05b735343b88"
}
],
"signed": {
"_type": "Targets",
"delegations": {
"keys": {
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b": {
"keytype": "rsa",
"keyval": {
"private": "",
"public": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0HjJD27+MwJ6xCPS4TrT\ntehsJQZDz2W10/ZixTWI0x9k6fXwvd18wqGLwz+vS13ow6SrUHBYXwBO/5Pblpgu\nN2mE/CWPzQ59vaVvcT3yb8gKqrtqcaT4tYSumzJzBNocDTik2Tyx2g0VincnDPAa\nVnsrkk9zmh+f1WMffaT4w2cu82NRTCoVVB43bk1UyjHQD0+moDb9UL2lQk2pBdMZ\n+PaChhMtgzf1mlmOicnb/OZgJK5uJfq6umv5oO4Io0tzEF/6xnj+6CsQWwMhiQpK\nZHNsGO+f/WE/SFOXd9C+Ljnu9JsqWIPAYJG9x8PCNY4sZhv+cBYDwqTav/NmcwtZ\nfaw0RTuKQBwD8C2syS2LdU14H5koWY8H6+TQVQp0JnddzTsO2PRrbB/whQpYwN3L\nY9Q+H5/AurrlIjv/HehoPRHceeBrlRNiqF0OKraYQicI/pPcfH/UcHvp/GsGxTMd\nwEIEszVoDK579WtJtDvK1CZPISeJ7RDxspG2Shz6ID8vAgMBAAE=\n-----END PUBLIC KEY-----\n"
}
}
},
"roles": [
{
"keyids": [
"845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b"
],
"name": "targets/packages/B/Bob",
"paths": [
"packages/B/Bob/"
],
"threshold": 1
}
]
},
"expires": "2014-08-01 15:48:49 UTC",
"targets": {},
"version": 2
}
}

View file

@ -1,28 +0,0 @@
{
"signatures": [
{
"keyid": "845dc45bcd742df57d984dbaa46a959623950923470897b6230ae859bbffad6b",
"method": "evp",
"sig": "a15f0ec1c526228eb47847309571e4b4c3ee69202727420ad3472beec9e1c8dd17143215e9a98b9150eb9aa710e053661a64fc8a21ae2c0860d41eb765f9c5571a922e7a969ec501283fd1e811f15921151a584abba9f7d96a5a80191616e0047c60529fab7bd6d8a8bf963d32981e875cbd1909295abf1aaf84b420ca24b934a78adadb41c5e58b31abc3162a0f4310acca29a582e80c65da54f2a48c585b8c5191311905c6885832f898f995ac1e6594be4cffd9a681fbb09fbac3fefde9fa9ebd44cbcffa183f1c9e7219e031c47cd02edc53dec61a4ada8e9c9e20a57956526fd963bbc22bba4bc3c9b3fd962e8d220e27ae83164348840cd1333817d3931387f6d1a2badb24b88013f50350481bfdd2a61f50af840a2f26d861c2526e92f9607aa13ffec8276c36fb473cad0ef6e431ce6091e4e07df2ba4e2233247466ca0f2c4f0245c72ae153b95b288fd15194cdb836887fa37c62e4ad0eeb4f48367be8662a84ffab639c734f6c5d0c4429042bb43aad3e978806489a3a12bb4c3e"
}
],
"signed": {
"_type": "Targets",
"expires": "2014-08-01 15:49:51 UTC",
"targets": {
"packages/B/Bob/bob-v1.0.tar.gz": {
"hashes": {
"sha256": "fa0b862231b81ff78cb1f431531c819354519e32f351c9b2109534ac5e9b1f07"
},
"length": 13
},
"packages/B/Bob/bob-v2.0.tar.gz": {
"hashes": {
"sha256": "fa0b862231b81ff78cb1f431531c819354519e32f351c9b2109534ac5e9b1f07"
},
"length": 13
}
},
"version": 1
}
}

View file

@ -1,22 +0,0 @@
{
"signatures": [
{
"keyid": "76caaafb5aabc062ea4b4efaf17a998acff6667678f60a72de9491f6df404a22",
"method": "evp",
"sig": "9d09a61312b76ab8ec6f16b1bd9800769c306898c92df7a05bdd3a7bfe30747b187dab13427853957c3b21c1dc93519c290564f7703f4b07529fc64ff0e75d91569471bc112ab07d6253475489a07971384bcab10150c69d10c91960b75f7aa04b2c230eecc299b0e174278146bf3ab070841a1ff7ff15c7ad056eb020c29785b3ff432e2029c7bb56cdc36933204ce52e7dd32d5a7b9349b3f00d0da65a3423dadb4d74cf9abb91c29533c6d09b81811b1d3aed04988af0795ffa62fa409ada0a92a72d1f04f89caead224aa734aeb664fdb62a04b6045e8d749e015a5c40df81e275472e681722ed7afcf2556295eeb2463fbb36b055cc8581c9d8457d66c67b400627ab42d4619e8d6f881c66dda74385de451a5cbb967821255f7b211a03e34dc836b42e73d1588ac2ed5395f3e1c0ff281c84a9298d895cbf1b748ad19705a3ee26151eb08bb51df0210acca69b6a358390b223201e588d9c750f60238c6144a264f07e0631305566c1d41a07432800e226caaba2481882ffdeb177c657"
}
],
"signed": {
"_type": "Timestamp",
"expires": "2014-08-01 16:19:39 UTC",
"meta": {
"release.txt": {
"hashes": {
"sha256": "f22f2f12fad9069b2fb569d9e9273a95b015fe2d8f3937addfed3dc1e48d86de"
},
"length": 2152
}
},
"version": 2
}
}

View file

@ -1 +0,0 @@
print hello world

View file

@ -1 +0,0 @@
Alice was here

View file

@ -1 +0,0 @@
Alice was here

View file

@ -1 +0,0 @@
Bob was here

View file

@ -1 +0,0 @@
Bob was here