{
"info": {
"author": "Andrey Kislyuk",
"author_email": "kislyuk@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "Keymaker: Lightweight SSH key management on AWS EC2\n===================================================\n\nKeymaker is **the missing link between SSH and IAM accounts on Amazon AWS**. It's a stateless synchronization engine\nthat securely manages the process of SSH public key sharing and verification, user and group synchronization, and home\ndirectory sharing (via optional `EFS `_ integration). You, the AWS account administrator,\ndefine or import user and group identities in IAM, and instances in your account dynamically retrieve and use those\nidentities to authenticate your users. Keymaker is the modern, minimalistic alternative to **LDAP** or **Active\nDirectory** authentication.\n\nInstallation\n------------\nRun ``pip install keymaker``.\n\nOn instances that accept SSH logins:\n\n- Run ``keymaker install``.\n- Ensure processes launched by sshd have the IAM permissions ``iam:GetSSHPublicKey``, ``iam:ListSSHPublicKeys``, \n ``iam:GetUser``, ``iam:ListGroups``, ``iam:GetGroup``, ``iam:ListGroupsForUser``, ``iam:GetRole``,\n and ``sts:GetCallerIdentity``. The easiest way to do this is by running \n ``keymaker configure --instance-iam-role INSTANCE_ROLE``\n as a privileged IAM user, which will create and attach a\n Keymaker IAM policy to the role ``INSTANCE_ROLE`` (which you should then assign, via an IAM Instance Profile, to any\n instances you launch). You can also manually configure these permissions, or attach the IAMReadOnlyAccess managed\n policy.\n\nKeymaker requires OpenSSH v6.2+, provided by Ubuntu 14.04+ and RHEL7+.\n\nUsage\n-----\nRun ``keymaker`` with no arguments to get usage information. In client mode (running on a computer that you will connect\nfrom), you can run ``keymaker ``, where subcommand is::\n\n upload_key Upload public SSH key for a user. Run this command for each user who will be accessing EC2 hosts.\n list_keys Get public SSH keys for a given or current IAM/SSH user.\n disable_key Disable a given public SSH key for a given or current IAM/SSH user.\n enable_key Enable a given public SSH key for a given or current IAM/SSH user.\n delete_key Delete a given public SSH key for a given or current IAM/SSH user.\n configure Perform administrative configuration tasks on the current AWS account.\n\nUse ``keymaker --help`` to get a full description and list of options for each command.\n\nPrinciple of operation\n----------------------\n\nAmazon Web Services `IAM `_ user accounts provide the ability to add SSH public keys to\ntheir metadata (up to 5 keys can be added; individual keys can be disabled). Keymaker uses this metadata to authenticate\nSSH logins. Keymaker provides an integrated way for a user to upload their public SSH key to their IAM account\nwith ``keymaker upload_key``.\n\nRun ``keymaker install`` on instances that you want your users to connect to. This installs three components:\n\n* An ``AuthorizedKeysCommand`` sshd configuration directive, which acts as a login event hook and dynamically retrieves\n public SSH keys from IAM for the user logging in, using the default `boto3 `_\n credentials (which default to the instance's IAM role credentials).\n\n* A ``pam_exec`` PAM configuration directive, which causes sshd to call ``keymaker-create-account-for-iam-user`` early\n in the login process. This script detects if a Linux user account does not exist for the authenticating principal but\n an authorized IAM account exists with the same name, and creates the account on demand. The UID of the account is\n computed from a hash of the user's SSH key, making it stable across instances that run Keymaker.\n\n* A `cron job `_ that runs on your instance once an hour and synchronizes IAM group\n membership information. Only IAM groups whose names start with a configurable prefix (by default, ``keymaker_*``) are\n synchronized as Linux groups.\n\nAs a result, users who connect to your instances over SSH are given access based on information centralized in your AWS\naccount. Users must have an active IAM account with active matching SSH public keys in order for authentication to\nsucceed. Users' UIDs and group memberships are also synchronized across your instances, so any UID-based checks or\ngroup-based privileges remain current as well.\n\nCross-account authentication\n----------------------------\n\nSome AWS security models put IAM users in one AWS account, and resources (EC2 instances, S3 buckets, etc.) in a family of other\nfederated AWS accounts (for example, a dev account and a prod account). Users then assume roles in those federated accounts,\nsubject to their permissions, with `sts:AssumeRole `_. \nWhen users connect via SSH to instances running in federated accounts, Keymaker can be instructed to look up the user identity\nand SSH public key in the other AWS account (called the \"ID resolver\" account).\n\nKeymaker expects to find this configuration information by introspecting the instance's own IAM role description. The\ndescription is expected to contain a list of space-separated config tokens, for example,\n``keymaker_id_resolver_account=123456789012 keymaker_id_resolver_iam_role=id_resolver``. For ``sts:AssumeRole`` to work, the\nrole ``id_resolver`` in account 123456789012 is expected to have a trust policy allowing the instance's IAM role to\nperform sts:AssumeRole on ``id_resolver``.\n\nRun the following command in the ID resolver account (that contains the IAM users) to apply this configuration automatically:\n``keymaker configure --instance-iam-role arn:aws:iam::987654321098:role/INSTANCE_ROLE --cross-account-profile AWS_CLI_PROFILE_NAME``.\nHere, 987654321098 is the account ID of the federated account where EC2 instances will run, and AWS_CLI_PROFILE_NAME\nis the name of the `AWS CLI role profile `_ that you\nhave set up to access the federated account.\n\nRequiring IAM group membership\n------------------------------\n\nGroup membership is asserted if the instance's IAM role description contains the config token\n``keymaker_require_iam_group=prod_ssh_users``. The user logging in is then required to be a member of the\n**prod_ssh_users** IAM group. Apply this configuration automatically by running\n``keymaker configure --require-iam-group IAM_GROUP_NAME``.\n\nSecurity considerations\n-----------------------\nIntegrating IAM user identities with Unix user identities has implications for your security threat model. With Keymaker, a\nprincipal with the ability to set SSH public keys on an IAM user account can impersonate that user when logging in to an EC2\ninstance. As an example, this can expand the scope of a compromised AWS secret key. You can mitigate this threat with an IAM\npolicy restricting access to the\n`UploadSSHPublicKey `_ method.\n\nFAQ\n---\n\n**Does running Keymaker require root access?**\n\nThe answer depends on what you mean by \"running Keymaker\".\n\n- To install keymaker into the sshd config and crontab (keymaker install), you need access to those daemons' config files, which normally means you need root access.\n- The keymaker authorization hook (runs when sshd logs you in) does not need root access.\n- None of the client-side commands (listed under \"Usage\" above) need root access.\n\nEFS integration\n---------------\nEmail kislyuk@gmail.com for details on the EFS integration.\n\nAuthors\n-------\n* Andrey Kislyuk\n\nLinks\n-----\n* `Project home page (GitHub) `_\n* `Documentation (Read the Docs) `_\n* `Package distribution (PyPI) `_\n\nBugs\n~~~~\nPlease report bugs, issues, feature requests, etc. on `GitHub `_.\n\nLicense\n-------\nLicensed under the terms of the `Apache License, Version 2.0 `_.\n\n.. image:: https://travis-ci.org/kislyuk/keymaker.svg\n :target: https://travis-ci.org/kislyuk/keymaker\n.. image:: https://coveralls.io/repos/kislyuk/keymaker/badge.svg?branch=master\n :target: https://coveralls.io/r/kislyuk/keymaker?branch=master\n.. image:: https://img.shields.io/pypi/v/keymaker.svg\n :target: https://pypi.python.org/pypi/keymaker\n.. image:: https://img.shields.io/pypi/l/keymaker.svg\n :target: https://pypi.python.org/pypi/keymaker\n.. image:: https://readthedocs.org/projects/keymaker/badge/?version=latest\n :target: https://keymaker.readthedocs.io/\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/kislyuk/keymaker",
"keywords": "",
"license": "Apache Software License",
"maintainer": "",
"maintainer_email": "",
"name": "keymaker",
"package_url": "https://pypi.org/project/keymaker/",
"platform": "MacOS X",
"project_url": "https://pypi.org/project/keymaker/",
"project_urls": {
"Homepage": "https://github.com/kislyuk/keymaker"
},
"release_url": "https://pypi.org/project/keymaker/1.1.0/",
"requires_dist": [
"boto3 (>=1.4.2)",
"argcomplete (>=1.8.1)"
],
"requires_python": "",
"summary": "Lightweight SSH key management on AWS EC2",
"version": "1.1.0",
"yanked": false,
"yanked_reason": null
},
"last_serial": 6031223,
"releases": {
"0.0.1": [],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "b22cb3fc67bdafc2f9e668c1b6ad8e91",
"sha256": "73bfaf7a9c5b22706ea73c38df5f4e7f8ac65656ed01b860b96fb190f6cd98a3"
},
"downloads": -1,
"filename": "keymaker-0.0.2.tar.gz",
"has_sig": true,
"md5_digest": "b22cb3fc67bdafc2f9e668c1b6ad8e91",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6661,
"upload_time": "2016-03-06T17:04:24",
"upload_time_iso_8601": "2016-03-06T17:04:24.290232Z",
"url": "https://files.pythonhosted.org/packages/fd/43/5efb93ac4149c894f5a26ea0245d677e6528ab4cc00ea6d6f70d2f231ae5/keymaker-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "83e5e69903cfd519ffd2281b8a1bcf7c",
"sha256": "1d27d568b3b95e69bc0e3d6b739b45a759d39a01d093207920d274f38f6c7eb4"
},
"downloads": -1,
"filename": "keymaker-0.0.3-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "83e5e69903cfd519ffd2281b8a1bcf7c",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10425,
"upload_time": "2016-03-06T17:38:48",
"upload_time_iso_8601": "2016-03-06T17:38:48.104952Z",
"url": "https://files.pythonhosted.org/packages/bc/dc/2a5c7ac1f311410143bec2cea73f4966983701184af1267bfce00ee4b0a8/keymaker-0.0.3-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "7a06dc710e94273a545fef30af75f3b2",
"sha256": "70800cba7a465435d10044cd40603282718ac08773a2cc1bb954dc306aa9c0e3"
},
"downloads": -1,
"filename": "keymaker-0.0.3.tar.gz",
"has_sig": true,
"md5_digest": "7a06dc710e94273a545fef30af75f3b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7896,
"upload_time": "2016-03-06T17:38:40",
"upload_time_iso_8601": "2016-03-06T17:38:40.217414Z",
"url": "https://files.pythonhosted.org/packages/cd/96/032b6a3e0b468c9d863ac30a669736ccd000185c2dd4b7f86fa98c7c76e8/keymaker-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.4": [
{
"comment_text": "",
"digests": {
"md5": "fffcf5845794ba85452d39df630fe46c",
"sha256": "f49b768b40974f24704f9cbefe50b4b944c94938b9d26a7a4e9d449eb5ccce5e"
},
"downloads": -1,
"filename": "keymaker-0.0.4-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "fffcf5845794ba85452d39df630fe46c",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10429,
"upload_time": "2016-03-06T18:37:29",
"upload_time_iso_8601": "2016-03-06T18:37:29.531891Z",
"url": "https://files.pythonhosted.org/packages/50/e2/a060b49591aa319847a19f5d12814027d72ea13adeced57b3477830f838c/keymaker-0.0.4-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "a6362baee3452906d85a847f2cfcb2ec",
"sha256": "bfec09532add394f17b2833068493a851cb16530fa800e5113b488f294d89c1d"
},
"downloads": -1,
"filename": "keymaker-0.0.4.tar.gz",
"has_sig": true,
"md5_digest": "a6362baee3452906d85a847f2cfcb2ec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7903,
"upload_time": "2016-03-06T18:37:17",
"upload_time_iso_8601": "2016-03-06T18:37:17.044169Z",
"url": "https://files.pythonhosted.org/packages/6e/01/7db06cb2a12aa3fa8d0a4304837d79eb27fd66a465f3b4e3ea509bf7e9d6/keymaker-0.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.5": [
{
"comment_text": "",
"digests": {
"md5": "8b87d3883a3c721188a566bf527c34d5",
"sha256": "cb9a30d78dd0180731db9c5850b8e962ecaccec009c5d18e7740b8ec00f0262e"
},
"downloads": -1,
"filename": "keymaker-0.0.5-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "8b87d3883a3c721188a566bf527c34d5",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10469,
"upload_time": "2016-03-06T22:47:09",
"upload_time_iso_8601": "2016-03-06T22:47:09.227589Z",
"url": "https://files.pythonhosted.org/packages/65/49/5960c77b24eeaaa2d6fdf9e6b6c46976a193ce56ce8b69dcc0b212292838/keymaker-0.0.5-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "3f4e84ebe18eb27aa918c4d3ce23733a",
"sha256": "f9a3ba70fc90e70c2368e1bff3faa4b895b228fa25cb9dec640d698d88365a9b"
},
"downloads": -1,
"filename": "keymaker-0.0.5.tar.gz",
"has_sig": true,
"md5_digest": "3f4e84ebe18eb27aa918c4d3ce23733a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7943,
"upload_time": "2016-03-06T22:46:56",
"upload_time_iso_8601": "2016-03-06T22:46:56.866882Z",
"url": "https://files.pythonhosted.org/packages/41/9c/c88cba93413b35514a1183d0106b1eee911b896df92eeffe187a778aaea8/keymaker-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.6": [
{
"comment_text": "",
"digests": {
"md5": "8eff8c1949d6f9d94dad7e6ef43eefc8",
"sha256": "99b2bb147b45ca489e4f5f7679bfa3b4fee77e30faed16a9a65033c74e321b4a"
},
"downloads": -1,
"filename": "keymaker-0.0.6-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "8eff8c1949d6f9d94dad7e6ef43eefc8",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10535,
"upload_time": "2016-03-06T22:51:47",
"upload_time_iso_8601": "2016-03-06T22:51:47.383837Z",
"url": "https://files.pythonhosted.org/packages/81/48/892d7667ce191fc7f1e05c9fe133573fa223b013cc24bf7e8a07d30028fd/keymaker-0.0.6-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "d00743b6c6350153e15453dfb0079f83",
"sha256": "aea729995ffe0755603e8058a203a298d9af22db8c0a1c63969d1e785cf8542b"
},
"downloads": -1,
"filename": "keymaker-0.0.6.tar.gz",
"has_sig": true,
"md5_digest": "d00743b6c6350153e15453dfb0079f83",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7995,
"upload_time": "2016-03-06T22:51:39",
"upload_time_iso_8601": "2016-03-06T22:51:39.893878Z",
"url": "https://files.pythonhosted.org/packages/f0/b7/82ec0476380c0a9c4df8b89c55f237c028572f9300558728bb84167f39de/keymaker-0.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.7": [
{
"comment_text": "",
"digests": {
"md5": "8eaf1a287fe7d29ab34ea037957ef8ff",
"sha256": "7022f53e2270b75edf84098f938e9f8729c621c783e589b99222264b2567f8bf"
},
"downloads": -1,
"filename": "keymaker-0.0.7-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "8eaf1a287fe7d29ab34ea037957ef8ff",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10638,
"upload_time": "2016-03-06T22:57:37",
"upload_time_iso_8601": "2016-03-06T22:57:37.800834Z",
"url": "https://files.pythonhosted.org/packages/c9/ef/e95b718cd7803613b58989c4699f3fc13ebee5ca41f13d22b639242558b7/keymaker-0.0.7-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "31f083d0b11cf92ab339ff03f7dbf9e1",
"sha256": "efc5c5092d3603af4136e76ea85302d2be1f31d5acafa56ed3787024dcfebfa3"
},
"downloads": -1,
"filename": "keymaker-0.0.7.tar.gz",
"has_sig": true,
"md5_digest": "31f083d0b11cf92ab339ff03f7dbf9e1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8081,
"upload_time": "2016-03-06T22:57:29",
"upload_time_iso_8601": "2016-03-06T22:57:29.340958Z",
"url": "https://files.pythonhosted.org/packages/73/e9/4cb37f0c251f5e6d1259b22cf3b65ee70bf8088b4aeb863211d7f7787528/keymaker-0.0.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.8": [
{
"comment_text": "",
"digests": {
"md5": "19dffb775472903c77cec37dc546ff83",
"sha256": "a41d0e98b138f651e0061172660ee803f7014bc46ab266e499bb96ed5ac0637a"
},
"downloads": -1,
"filename": "keymaker-0.0.8-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "19dffb775472903c77cec37dc546ff83",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10640,
"upload_time": "2016-03-06T23:01:45",
"upload_time_iso_8601": "2016-03-06T23:01:45.216097Z",
"url": "https://files.pythonhosted.org/packages/e9/e7/09a68c8c057c450d1f659b2f98ded742590480296216d89a087c74f8233b/keymaker-0.0.8-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "b3474ed811498e21da974f47eabc8164",
"sha256": "e7b18d87821c800f4d08e4037a45486f0a4f24e421967464673c402b51a75ec5"
},
"downloads": -1,
"filename": "keymaker-0.0.8.tar.gz",
"has_sig": true,
"md5_digest": "b3474ed811498e21da974f47eabc8164",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8083,
"upload_time": "2016-03-06T23:01:14",
"upload_time_iso_8601": "2016-03-06T23:01:14.459019Z",
"url": "https://files.pythonhosted.org/packages/49/b6/953c5247ff8f8ba95b451d26edd80c83a2257f916f57bbd3c8fe45bf8039/keymaker-0.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "abb24fc61411bdc0a5b7bb916de63b46",
"sha256": "9147a2bf71356afb3f5090c5e855df329ec1754ff655c45fa6833c7a0e77da8c"
},
"downloads": -1,
"filename": "keymaker-0.1.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "abb24fc61411bdc0a5b7bb916de63b46",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10839,
"upload_time": "2016-03-07T00:04:57",
"upload_time_iso_8601": "2016-03-07T00:04:57.620545Z",
"url": "https://files.pythonhosted.org/packages/36/7d/a0e7440f81712ea160f8e41898b1d8ed85918f8c9946d6b4b8c89dbc4517/keymaker-0.1.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "42ee3645d4d13da239b2e517f7b1adf8",
"sha256": "1f0c12b48ffc52614a1bb9af6f51489d6f937e4ea164aa97550ebb0c0fd738b5"
},
"downloads": -1,
"filename": "keymaker-0.1.0.tar.gz",
"has_sig": true,
"md5_digest": "42ee3645d4d13da239b2e517f7b1adf8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8269,
"upload_time": "2016-03-07T00:04:49",
"upload_time_iso_8601": "2016-03-07T00:04:49.373935Z",
"url": "https://files.pythonhosted.org/packages/5a/c8/f745762653d5791826026f8f59cfd6a8258e37c3585e8a1899772c36fcb7/keymaker-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "cd0cc4b2079b47436895b3d8b39a7822",
"sha256": "825c497fe120bf19ec053f4ea332d3a13a94a5b5b9a80d956458e8db0ce47625"
},
"downloads": -1,
"filename": "keymaker-0.1.1-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "cd0cc4b2079b47436895b3d8b39a7822",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10841,
"upload_time": "2016-03-07T00:09:46",
"upload_time_iso_8601": "2016-03-07T00:09:46.092830Z",
"url": "https://files.pythonhosted.org/packages/f7/01/e7613a33e5b94b66274f37dc00380349d61fc2be9cbf6271e8c731bce760/keymaker-0.1.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "afa10ed296174c4b1b03739dad97ea17",
"sha256": "c9a709cdd3d349686167ab91ea84908fb268109f8cc0ec68e67d4a40a09ee755"
},
"downloads": -1,
"filename": "keymaker-0.1.1.tar.gz",
"has_sig": true,
"md5_digest": "afa10ed296174c4b1b03739dad97ea17",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8270,
"upload_time": "2016-03-07T00:08:56",
"upload_time_iso_8601": "2016-03-07T00:08:56.516975Z",
"url": "https://files.pythonhosted.org/packages/b1/4d/3b1a6e128508d3b9ab4a1f0fd28496c1d1c61dc63a8ba7ca6c31eaf1566b/keymaker-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "2d3b358aeec2443ef52a58055fb5f260",
"sha256": "2a8229efd300c9ad4c3b1256bf16ed029c855f5c211987829aef793f2a9de21a"
},
"downloads": -1,
"filename": "keymaker-0.1.2.tar.gz",
"has_sig": true,
"md5_digest": "2d3b358aeec2443ef52a58055fb5f260",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8276,
"upload_time": "2016-03-07T00:10:34",
"upload_time_iso_8601": "2016-03-07T00:10:34.050545Z",
"url": "https://files.pythonhosted.org/packages/7d/84/9cdd5b54d81ea48ce2ecd933ac4e323982da0df5e6b73645decd7a687414/keymaker-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "16b33e4e67256162a18787bbb04b66a7",
"sha256": "13154b5c52689435f102bd7777201fd1e470c7b327a74fa8900253ac1f983284"
},
"downloads": -1,
"filename": "keymaker-0.1.3.tar.gz",
"has_sig": true,
"md5_digest": "16b33e4e67256162a18787bbb04b66a7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8535,
"upload_time": "2016-03-07T00:37:49",
"upload_time_iso_8601": "2016-03-07T00:37:49.919699Z",
"url": "https://files.pythonhosted.org/packages/b1/f5/9a8552f1bf65befa25ac4c277d783f83ea0dfdf5c27f1f06c7ae582b2dd3/keymaker-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "d7e6e1b6e60ca6d00ce1940c4baf51d4",
"sha256": "1f8488f80fae6ccc1ee92ee7f65dba1c9599b7aca3573d33c67036ecf5c386c4"
},
"downloads": -1,
"filename": "keymaker-0.1.4.tar.gz",
"has_sig": true,
"md5_digest": "d7e6e1b6e60ca6d00ce1940c4baf51d4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8546,
"upload_time": "2016-03-07T02:48:48",
"upload_time_iso_8601": "2016-03-07T02:48:48.795381Z",
"url": "https://files.pythonhosted.org/packages/60/b0/273d0801179bae61cb39dad4472d57828947b2086031be8ec6f3b86923d4/keymaker-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.5": [
{
"comment_text": "",
"digests": {
"md5": "d691a41287ea68f7f09ff37c3906a652",
"sha256": "ef64205a50c08d9d38e5efbe6fbab17a98bd1cb720d35a4620f862c7d7229076"
},
"downloads": -1,
"filename": "keymaker-0.1.5.tar.gz",
"has_sig": true,
"md5_digest": "d691a41287ea68f7f09ff37c3906a652",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8547,
"upload_time": "2016-03-07T02:50:07",
"upload_time_iso_8601": "2016-03-07T02:50:07.631515Z",
"url": "https://files.pythonhosted.org/packages/14/ba/06bd8f56c71f89406b24aeffcd32e4b856736d32414e9c9e0bf1c16d3526/keymaker-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.6": [
{
"comment_text": "",
"digests": {
"md5": "f2b7cd477ec733dcaea01ab4892d159d",
"sha256": "41c558a25a3a2ee4f8c325d8a0443f6c3f4fc5d752106130f067bea50d930320"
},
"downloads": -1,
"filename": "keymaker-0.1.6.tar.gz",
"has_sig": true,
"md5_digest": "f2b7cd477ec733dcaea01ab4892d159d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8539,
"upload_time": "2016-03-07T02:57:22",
"upload_time_iso_8601": "2016-03-07T02:57:22.074885Z",
"url": "https://files.pythonhosted.org/packages/06/9d/d26a5368aaed439420c898a46c48c26fed7634f75192d793fe55aa5db6e8/keymaker-0.1.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.7": [
{
"comment_text": "",
"digests": {
"md5": "2090cab93c930004eb8230d2849595f0",
"sha256": "96070a6f26dd7000d89aec1cdd03497b32ccba59b79bf14a38e82b6c939445bc"
},
"downloads": -1,
"filename": "keymaker-0.1.7.tar.gz",
"has_sig": true,
"md5_digest": "2090cab93c930004eb8230d2849595f0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8544,
"upload_time": "2016-03-07T03:03:01",
"upload_time_iso_8601": "2016-03-07T03:03:01.339598Z",
"url": "https://files.pythonhosted.org/packages/33/29/695f1996eeae912e69f856e69ea1605a0f8104cbda90efa6e8f5831c5015/keymaker-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.1.8": [
{
"comment_text": "",
"digests": {
"md5": "5a335dab15b7cedb35efc5e30988c9ed",
"sha256": "8d47dd4880c9039d460afb38b23f9c28f00826df072c4dd119b2e9cd332e7051"
},
"downloads": -1,
"filename": "keymaker-0.1.8.tar.gz",
"has_sig": true,
"md5_digest": "5a335dab15b7cedb35efc5e30988c9ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8741,
"upload_time": "2016-03-07T17:16:27",
"upload_time_iso_8601": "2016-03-07T17:16:27.987327Z",
"url": "https://files.pythonhosted.org/packages/f7/93/d5c61dee6a4b2623ec8a3f3a6e673c4ae18cff8baf89f1bdd9760ed00be3/keymaker-0.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "6775ef566736ebb428c4b4c80124ad0e",
"sha256": "3aba6727ca68cc6420bd5ed9a041f1869b32f9ccf5e0096c01248abe35762e27"
},
"downloads": -1,
"filename": "keymaker-0.2.0.tar.gz",
"has_sig": true,
"md5_digest": "6775ef566736ebb428c4b4c80124ad0e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8938,
"upload_time": "2016-03-09T16:35:52",
"upload_time_iso_8601": "2016-03-09T16:35:52.512714Z",
"url": "https://files.pythonhosted.org/packages/f0/5f/35e7b5c0d4f587bd419aec515cef6c59f770f66cea6067502c2ea48fab82/keymaker-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "c2ad5fabab44e5a4fdcc480ca756bf6c",
"sha256": "9381451a64e60f29cdea58ad7d4a5ba3004511b9632ec136140efeb7499e68ca"
},
"downloads": -1,
"filename": "keymaker-0.2.1.tar.gz",
"has_sig": true,
"md5_digest": "c2ad5fabab44e5a4fdcc480ca756bf6c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9348,
"upload_time": "2016-03-23T20:32:09",
"upload_time_iso_8601": "2016-03-23T20:32:09.858607Z",
"url": "https://files.pythonhosted.org/packages/de/a8/dd967823ad92801fe75229c0c8a3c10655f008b49f17c10252c692df11b3/keymaker-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.3": [
{
"comment_text": "",
"digests": {
"md5": "145ec9b6a5c927e9ec3916ba083f0a6c",
"sha256": "7cc087ce7cf202e94f7d985e84c2117a50279a6ce27976f2019a7801ff18baf9"
},
"downloads": -1,
"filename": "keymaker-0.3.3-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "145ec9b6a5c927e9ec3916ba083f0a6c",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 13518,
"upload_time": "2016-09-25T13:37:53",
"upload_time_iso_8601": "2016-09-25T13:37:53.882341Z",
"url": "https://files.pythonhosted.org/packages/0e/4a/878bf4a8d16aeaf0247b5e164ca1596de394c424e65c50a614acb1246dba/keymaker-0.3.3-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "82ae5471cd1ee625556478f3ab2eb849",
"sha256": "dbfcd6248d3efc241e6058a0bfae959bec5caaa3f7c2f7163ec4385fa75441f3"
},
"downloads": -1,
"filename": "keymaker-0.3.3.tar.gz",
"has_sig": true,
"md5_digest": "82ae5471cd1ee625556478f3ab2eb849",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10041,
"upload_time": "2016-09-25T13:37:49",
"upload_time_iso_8601": "2016-09-25T13:37:49.273449Z",
"url": "https://files.pythonhosted.org/packages/42/4f/1780b5f14d593c2bd2b18dbd6582f1d598e304e4a9bed07bc96a30ddd0a0/keymaker-0.3.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4.2": [
{
"comment_text": "",
"digests": {
"md5": "e3092702ee00d6025bf2fd61178c1f9f",
"sha256": "8d63736289dc6110cacc9919ed9ecc98c5106bec383bb9d0d0f37b8da5d438ed"
},
"downloads": -1,
"filename": "keymaker-0.4.2-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "e3092702ee00d6025bf2fd61178c1f9f",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 13678,
"upload_time": "2017-02-27T15:37:08",
"upload_time_iso_8601": "2017-02-27T15:37:08.345147Z",
"url": "https://files.pythonhosted.org/packages/c0/61/3ef8939f07abbb69957be80d51adad8b22a9fea2f16b595394338a41bda5/keymaker-0.4.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "f6447623d55e95eeb8e0512d190b97c5",
"sha256": "87b5845e95e67565f20abb628fdbed40ef26babbbd5617140101fceb28896207"
},
"downloads": -1,
"filename": "keymaker-0.4.2.tar.gz",
"has_sig": true,
"md5_digest": "f6447623d55e95eeb8e0512d190b97c5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10123,
"upload_time": "2017-02-27T15:37:03",
"upload_time_iso_8601": "2017-02-27T15:37:03.249504Z",
"url": "https://files.pythonhosted.org/packages/4e/d1/a5074e6b05dcf63ec05c01379e9fd5e179cd1f9b6eb3f461d52182c52055/keymaker-0.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4.3": [
{
"comment_text": "",
"digests": {
"md5": "6db84773a21d30285b05153e74a110a9",
"sha256": "393f49b1c3f08751a7af6e4bd9d11b1709a35b9ba085a203f12354ef82a217e4"
},
"downloads": -1,
"filename": "keymaker-0.4.3-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "6db84773a21d30285b05153e74a110a9",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 14204,
"upload_time": "2017-05-26T00:21:55",
"upload_time_iso_8601": "2017-05-26T00:21:55.235599Z",
"url": "https://files.pythonhosted.org/packages/ab/ad/d0633129b35f8f74d2f1d21df6e13bd2389b7590380b0b1a28f07beee108/keymaker-0.4.3-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "cc2c145bfbd4524846a9d88448564c99",
"sha256": "6ef30b79c9a1113ae8d7caee433251f1c8657a23a5b1d8ff1987349ca4a57590"
},
"downloads": -1,
"filename": "keymaker-0.4.3.tar.gz",
"has_sig": true,
"md5_digest": "cc2c145bfbd4524846a9d88448564c99",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10461,
"upload_time": "2017-05-26T00:21:52",
"upload_time_iso_8601": "2017-05-26T00:21:52.986461Z",
"url": "https://files.pythonhosted.org/packages/b4/b5/8cd84ff0475c799a535711979fe8a7ab9fd7246bf43d74f7dd8becd25e76/keymaker-0.4.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "34aeaf4bb21039c6529af1d3d5ce14f4",
"sha256": "89e12cb4ffed161b302282797a5eec3b2aea440786a32fceb17f3a4ed4131fe1"
},
"downloads": -1,
"filename": "keymaker-0.5.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "34aeaf4bb21039c6529af1d3d5ce14f4",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 14857,
"upload_time": "2017-12-21T18:38:04",
"upload_time_iso_8601": "2017-12-21T18:38:04.239166Z",
"url": "https://files.pythonhosted.org/packages/f7/93/fec5b705a665e7b163786119b237f7bef2fb57eb98692caa3f8e070753ef/keymaker-0.5.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "9031bceb9e10ba47e9cc2a047ddf70e8",
"sha256": "d9e80f9269155aba38fba6da15b051f4bdcafa1896230af0892d633879b9582a"
},
"downloads": -1,
"filename": "keymaker-0.5.0.tar.gz",
"has_sig": true,
"md5_digest": "9031bceb9e10ba47e9cc2a047ddf70e8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11046,
"upload_time": "2017-12-21T18:38:01",
"upload_time_iso_8601": "2017-12-21T18:38:01.887378Z",
"url": "https://files.pythonhosted.org/packages/fe/f3/ae1916a1fdfce31a491157b6ea739851b7b7e2a36bde339427651c7ab531/keymaker-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "a7bec773c54b21d99e37aac547ddaf8b",
"sha256": "560e91509f4b936d7d9033237fbf1367452e68c666ee3bdec65400a8219a516d"
},
"downloads": -1,
"filename": "keymaker-0.5.1-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "a7bec773c54b21d99e37aac547ddaf8b",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 18792,
"upload_time": "2018-02-05T16:47:25",
"upload_time_iso_8601": "2018-02-05T16:47:25.079069Z",
"url": "https://files.pythonhosted.org/packages/fe/95/f3e610f167da4fe4f41b14ef4cb73059828d82b4a46ec7112d54ba96eea0/keymaker-0.5.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "74bfb59e3daf6ec54b2144c0cc097f2d",
"sha256": "2624154eac463f79e0f4d54f6915c0c55a28593e7fffc3d14be103cfb4c2dd5e"
},
"downloads": -1,
"filename": "keymaker-0.5.1.tar.gz",
"has_sig": true,
"md5_digest": "74bfb59e3daf6ec54b2144c0cc097f2d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13875,
"upload_time": "2018-02-05T16:47:22",
"upload_time_iso_8601": "2018-02-05T16:47:22.438782Z",
"url": "https://files.pythonhosted.org/packages/01/96/c2a2d43d1191a5b4e251ab44bb33f4fcce7e3634e6d5c29ed92afcf58f7e/keymaker-0.5.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "98d9ee2d75ab7d7210193f5d5052055e",
"sha256": "0e6f29b4a5ad0f6c989289b77f96314e346271a21eeb54c490d99c12b6a0e994"
},
"downloads": -1,
"filename": "keymaker-0.5.2-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "98d9ee2d75ab7d7210193f5d5052055e",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19186,
"upload_time": "2018-03-26T18:21:12",
"upload_time_iso_8601": "2018-03-26T18:21:12.142738Z",
"url": "https://files.pythonhosted.org/packages/05/2e/d267becf0250e75c835a2b174780ae7d659408aec46a263a56f39f0ecccb/keymaker-0.5.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "7baf6770b49ca1a2ea7c57ab492c3760",
"sha256": "8da30aaf7c33f3756d368f0ed4abaff846bbf2aae0075f6c7cd338dc90996406"
},
"downloads": -1,
"filename": "keymaker-0.5.2.tar.gz",
"has_sig": true,
"md5_digest": "7baf6770b49ca1a2ea7c57ab492c3760",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14191,
"upload_time": "2018-03-26T18:21:10",
"upload_time_iso_8601": "2018-03-26T18:21:10.458101Z",
"url": "https://files.pythonhosted.org/packages/f4/0a/56f7820ff9a40d31a0bd4cefb0050bb9369ae478035ba8cdc8ac8d28e161/keymaker-0.5.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.5.3": [
{
"comment_text": "",
"digests": {
"md5": "b2314e41fb21adfcde74e25209d81ae5",
"sha256": "26a4662675f740d6f3b319d6af201fa8c11a8df5e2260286c2d19ceb9e7dbe0e"
},
"downloads": -1,
"filename": "keymaker-0.5.3-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "b2314e41fb21adfcde74e25209d81ae5",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19069,
"upload_time": "2018-04-06T00:57:42",
"upload_time_iso_8601": "2018-04-06T00:57:42.035850Z",
"url": "https://files.pythonhosted.org/packages/b4/6c/680d8c6f8321350a7f8d871549e7a16fc1ca4720315944ad75e850d60751/keymaker-0.5.3-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "d3b4affd7c6985ee7a69199e8061c7d0",
"sha256": "214becbdd847ad8613588b62ef482fec45953502c7bfeb773efe56e2a73a523a"
},
"downloads": -1,
"filename": "keymaker-0.5.3.tar.gz",
"has_sig": true,
"md5_digest": "d3b4affd7c6985ee7a69199e8061c7d0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14115,
"upload_time": "2018-04-06T00:57:40",
"upload_time_iso_8601": "2018-04-06T00:57:40.174388Z",
"url": "https://files.pythonhosted.org/packages/04/58/4e994510b0c59770734cb17ba8b9f4fe5008a9c8bd989241eb395910b2f5/keymaker-0.5.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "d3b60967cae6a249041ecf3ad71fe304",
"sha256": "02822014c52111afc7244a40cc87639363f95da653745113fa2755e2243bfdd3"
},
"downloads": -1,
"filename": "keymaker-1.0.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "d3b60967cae6a249041ecf3ad71fe304",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19067,
"upload_time": "2018-04-06T01:13:32",
"upload_time_iso_8601": "2018-04-06T01:13:32.020331Z",
"url": "https://files.pythonhosted.org/packages/09/7e/2a823d7dcfd9323b132b1fecb4f4ba19ab3cb3c56ee7b6644eaacf76644e/keymaker-1.0.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "fc847b2914763261ff25f268b3767161",
"sha256": "3acb1730f54b00284fa2698034338bb9d8ab54d4bbd0d1ab7f0849d622ff07f2"
},
"downloads": -1,
"filename": "keymaker-1.0.0.tar.gz",
"has_sig": true,
"md5_digest": "fc847b2914763261ff25f268b3767161",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14107,
"upload_time": "2018-04-06T01:13:30",
"upload_time_iso_8601": "2018-04-06T01:13:30.173809Z",
"url": "https://files.pythonhosted.org/packages/03/55/765837cda1d34433fb8573d4126993d1aad5a1f327b3b8aa0e84bff414c8/keymaker-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "1bbbd7e7f074a4f47dd3ba88236b0ecd",
"sha256": "fc658d3ee3db7c84070ae84ae59f23125ddb9dc161a6be6d6de8866b4ba5cb40"
},
"downloads": -1,
"filename": "keymaker-1.0.1-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "1bbbd7e7f074a4f47dd3ba88236b0ecd",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19151,
"upload_time": "2018-04-12T19:57:54",
"upload_time_iso_8601": "2018-04-12T19:57:54.253956Z",
"url": "https://files.pythonhosted.org/packages/ee/68/f8dedc88ca5da5a971e573030b14175360ee72adea77db01abff2080251b/keymaker-1.0.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "93ad63e174d9cb0f5e7801bd4cb74c9a",
"sha256": "5e825e0f65364494452705e1582888c558591c30fd82e61803cea5ea0991e5a4"
},
"downloads": -1,
"filename": "keymaker-1.0.1.tar.gz",
"has_sig": true,
"md5_digest": "93ad63e174d9cb0f5e7801bd4cb74c9a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14167,
"upload_time": "2018-04-12T19:57:52",
"upload_time_iso_8601": "2018-04-12T19:57:52.663310Z",
"url": "https://files.pythonhosted.org/packages/c0/9c/9961b7b0c47b120616fb236c621a731368f0f38547eb9d8513344f68a61b/keymaker-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.2": [
{
"comment_text": "",
"digests": {
"md5": "bb56da4fb0cecbc16965bc3123d54bd3",
"sha256": "733cc3e26dced911f5cd12ac9eb555bbc7fbef273ad37741ea146f8ee170394a"
},
"downloads": -1,
"filename": "keymaker-1.0.2-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "bb56da4fb0cecbc16965bc3123d54bd3",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19176,
"upload_time": "2018-04-12T20:03:23",
"upload_time_iso_8601": "2018-04-12T20:03:23.920697Z",
"url": "https://files.pythonhosted.org/packages/19/b0/0783d7ce9ad126060c0588e82bdec1b7ca3c7f3a6345cddbc87ccf2515dd/keymaker-1.0.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "6a8f66c3ab9725f1e27470266a165ccb",
"sha256": "84693e44177b1314e20dd44373e09a6ce88c8c7b3561d951cd291b728b6f0a8f"
},
"downloads": -1,
"filename": "keymaker-1.0.2.tar.gz",
"has_sig": true,
"md5_digest": "6a8f66c3ab9725f1e27470266a165ccb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14189,
"upload_time": "2018-04-12T20:03:22",
"upload_time_iso_8601": "2018-04-12T20:03:22.241521Z",
"url": "https://files.pythonhosted.org/packages/24/a4/ea21bebbcd0348ee289565e6410999bc0fcc6e99282d2046be938484701a/keymaker-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.3": [
{
"comment_text": "",
"digests": {
"md5": "c2479bb25801893f5eeb98bdd4b8a3d6",
"sha256": "a468f988d69af4cbe7c4d79740612d7f7e4195a234a6b1fa8b38304681917df9"
},
"downloads": -1,
"filename": "keymaker-1.0.3-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "c2479bb25801893f5eeb98bdd4b8a3d6",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19143,
"upload_time": "2018-04-13T23:02:32",
"upload_time_iso_8601": "2018-04-13T23:02:32.193053Z",
"url": "https://files.pythonhosted.org/packages/9b/41/f3c4f1ad95f0d457832cc22ff694c2dad4bfe28d953580af81ba9d3ea850/keymaker-1.0.3-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "2f0455427440aa9f8ff8fa3f540b5dc4",
"sha256": "8d0942185b6967b8ef35fdb00118d91ca38dd4ed7e2c2f9e9e2f22eab875e227"
},
"downloads": -1,
"filename": "keymaker-1.0.3.tar.gz",
"has_sig": true,
"md5_digest": "2f0455427440aa9f8ff8fa3f540b5dc4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14179,
"upload_time": "2018-04-13T23:02:30",
"upload_time_iso_8601": "2018-04-13T23:02:30.074189Z",
"url": "https://files.pythonhosted.org/packages/85/42/a57a8f8f61325bffeac8fabff7c44d31a1e2b5333a8e38416bb9607b8c23/keymaker-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.4": [
{
"comment_text": "",
"digests": {
"md5": "09c38a2aa80d8fb051d0ff306c26929a",
"sha256": "22319ef46725e00f43d8af50fb25017e585ed8e731cf9b605c84b38928b6bb41"
},
"downloads": -1,
"filename": "keymaker-1.0.4-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "09c38a2aa80d8fb051d0ff306c26929a",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19301,
"upload_time": "2018-05-18T16:35:30",
"upload_time_iso_8601": "2018-05-18T16:35:30.452871Z",
"url": "https://files.pythonhosted.org/packages/51/d4/1889a78c139f06137a946b0a745afdaf0a3161f45cc2c2feac3ff2b2ede0/keymaker-1.0.4-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "afcf2a8c93c5743da14706c52d92d0e1",
"sha256": "ecc1ba6e515d55f037413cd8eced1434a702fc6a80beb3bdd4011e51a6810e0b"
},
"downloads": -1,
"filename": "keymaker-1.0.4.tar.gz",
"has_sig": true,
"md5_digest": "afcf2a8c93c5743da14706c52d92d0e1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14312,
"upload_time": "2018-05-18T16:35:28",
"upload_time_iso_8601": "2018-05-18T16:35:28.894806Z",
"url": "https://files.pythonhosted.org/packages/58/fa/998a9fea007be1aa784de5e519e806f51d51bec9cc5b8416eba5180e46d4/keymaker-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.5": [
{
"comment_text": "",
"digests": {
"md5": "a747e4f462ef2ca9828abd46e9e9aacb",
"sha256": "eb69d6d6588ad37af3d798df50d4c476b47d5315bc8fa08ca301321606a3d3d2"
},
"downloads": -1,
"filename": "keymaker-1.0.5-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "a747e4f462ef2ca9828abd46e9e9aacb",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19303,
"upload_time": "2018-05-21T17:54:30",
"upload_time_iso_8601": "2018-05-21T17:54:30.252290Z",
"url": "https://files.pythonhosted.org/packages/47/3f/657302050db24cb97003cb856324d0e680bae25cb253fb18c8fc51604553/keymaker-1.0.5-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "1dbc40b6de904d1a92a8691a40fc097a",
"sha256": "915b639f18c055460aa6ea282adf5e554d351946f720e49d87ae7c546af88e08"
},
"downloads": -1,
"filename": "keymaker-1.0.5.tar.gz",
"has_sig": true,
"md5_digest": "1dbc40b6de904d1a92a8691a40fc097a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14325,
"upload_time": "2018-05-21T17:54:28",
"upload_time_iso_8601": "2018-05-21T17:54:28.229805Z",
"url": "https://files.pythonhosted.org/packages/48/24/dd4e625f41590cc333b472908b780795d2789dc51a19ae8f3007b082a077/keymaker-1.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.6": [
{
"comment_text": "",
"digests": {
"md5": "a2b048c0eb46114222928fe953f1250c",
"sha256": "af57d47641e3f40726ad988f859862f16a1e3c9de9e7894852f3eac2720b89c9"
},
"downloads": -1,
"filename": "keymaker-1.0.6-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "a2b048c0eb46114222928fe953f1250c",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19438,
"upload_time": "2018-05-26T01:04:17",
"upload_time_iso_8601": "2018-05-26T01:04:17.915299Z",
"url": "https://files.pythonhosted.org/packages/84/93/098a98562e8730021725de2cb9d7f626cc7960ab32fc855bffdb4e253a26/keymaker-1.0.6-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "0ae44454914f88d2cf9ff3c63b9b7360",
"sha256": "6b13433b400aaed5fdbf957b605c5e57e79510558374ac8b98b35d97b2689214"
},
"downloads": -1,
"filename": "keymaker-1.0.6.tar.gz",
"has_sig": true,
"md5_digest": "0ae44454914f88d2cf9ff3c63b9b7360",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14457,
"upload_time": "2018-05-26T01:04:12",
"upload_time_iso_8601": "2018-05-26T01:04:12.457111Z",
"url": "https://files.pythonhosted.org/packages/24/4f/c116bb2e76f2df0abf5a92ec439080698a6a35afb2950773c8add4776da8/keymaker-1.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.7": [
{
"comment_text": "",
"digests": {
"md5": "bf6729a347b2bc29b5094c3c13d3b2ea",
"sha256": "babd9be351bbe794d15b4275ccf93e58ef1be923b485efb0330db73ace39f8b9"
},
"downloads": -1,
"filename": "keymaker-1.0.7-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "bf6729a347b2bc29b5094c3c13d3b2ea",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 15384,
"upload_time": "2018-07-16T15:58:26",
"upload_time_iso_8601": "2018-07-16T15:58:26.491950Z",
"url": "https://files.pythonhosted.org/packages/4c/9b/0b01917d1f104da20bd25b473871be2f9eb1080e494527b81b677a99f569/keymaker-1.0.7-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "aecc6cba880ce1f64fbe9e9a7b84a405",
"sha256": "2ba5d76745d5b055585203f70f8668643b134b50eedc67d964962bda987c9db9"
},
"downloads": -1,
"filename": "keymaker-1.0.7.tar.gz",
"has_sig": true,
"md5_digest": "aecc6cba880ce1f64fbe9e9a7b84a405",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14482,
"upload_time": "2018-07-16T15:58:24",
"upload_time_iso_8601": "2018-07-16T15:58:24.353405Z",
"url": "https://files.pythonhosted.org/packages/a0/bd/96f0f7ef30e2f4b3a65bcf30d8e933eb5f6298e1450e717e724959b6a498/keymaker-1.0.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.8": [
{
"comment_text": "",
"digests": {
"md5": "537573183dc8f6500c338d653421648b",
"sha256": "f9ca8f3f324d74facb5dd0839843002f37494581c6b53e01eac1f36da065cdfc"
},
"downloads": -1,
"filename": "keymaker-1.0.8-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "537573183dc8f6500c338d653421648b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19591,
"upload_time": "2019-01-22T17:12:31",
"upload_time_iso_8601": "2019-01-22T17:12:31.314107Z",
"url": "https://files.pythonhosted.org/packages/e1/00/7c5eab6ffa16c186ff48957620ff893b9aa4879bce7f8e1323277f434189/keymaker-1.0.8-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "ea5353bf0930bcd167ad480dc50a61c0",
"sha256": "88211fa37849e94b1f10649aeb5914e1a4fe7c4838ce46bde52f76395fba36cf"
},
"downloads": -1,
"filename": "keymaker-1.0.8.tar.gz",
"has_sig": true,
"md5_digest": "ea5353bf0930bcd167ad480dc50a61c0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16958,
"upload_time": "2019-01-22T17:12:33",
"upload_time_iso_8601": "2019-01-22T17:12:33.647657Z",
"url": "https://files.pythonhosted.org/packages/dc/5d/5a9fe79c433a806db0ddcf36ab1e7e95f4841a0517710e9fe5a3f81595dd/keymaker-1.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.9": [
{
"comment_text": "",
"digests": {
"md5": "11cf781dbd905562751c7d1193a494f8",
"sha256": "d7408c3e10e03b9f67eebec5c31c8e07dcead4bcd75f91edb2d6ebb6571a76dd"
},
"downloads": -1,
"filename": "keymaker-1.0.9-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "11cf781dbd905562751c7d1193a494f8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19961,
"upload_time": "2019-07-10T19:02:36",
"upload_time_iso_8601": "2019-07-10T19:02:36.899115Z",
"url": "https://files.pythonhosted.org/packages/d2/96/e746f1243937ed01e7bc8433c5944de01ce14924f2be6debe06213e406cc/keymaker-1.0.9-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "de1ed287df294a89ac8656617dcccd71",
"sha256": "3b61821f9077d11bdd44e1e6d81006f4df4b52b56dd211c9e32061e2923e4956"
},
"downloads": -1,
"filename": "keymaker-1.0.9.tar.gz",
"has_sig": true,
"md5_digest": "de1ed287df294a89ac8656617dcccd71",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18199,
"upload_time": "2019-07-10T19:02:39",
"upload_time_iso_8601": "2019-07-10T19:02:39.172673Z",
"url": "https://files.pythonhosted.org/packages/07/24/60dfa817a4b5162ed79244582b4eed16c73d85cd2de29ffc29ad3e6a5726/keymaker-1.0.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "5daf66cbe4463e7e54a26820c3a4ab0c",
"sha256": "b21b024cfb4c63b3d051c188b469f0b214511bcb304d00d1cb5d7aca3f677bd6"
},
"downloads": -1,
"filename": "keymaker-1.1.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "5daf66cbe4463e7e54a26820c3a4ab0c",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 20385,
"upload_time": "2019-10-25T18:43:57",
"upload_time_iso_8601": "2019-10-25T18:43:57.437657Z",
"url": "https://files.pythonhosted.org/packages/d2/f7/502e7cff6d4f032b2a6d489ba8e6275bc69269bb67c876ddbacf3a9f2a0a/keymaker-1.1.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "0a3ec08f4768eaa1d3a0ac71cd703fe0",
"sha256": "5cb6ee67384fec8c60aef6c95b54ed3ffaaa20c9a69fa36323e01adeca3563a2"
},
"downloads": -1,
"filename": "keymaker-1.1.0.tar.gz",
"has_sig": true,
"md5_digest": "0a3ec08f4768eaa1d3a0ac71cd703fe0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18304,
"upload_time": "2019-10-25T18:43:59",
"upload_time_iso_8601": "2019-10-25T18:43:59.485066Z",
"url": "https://files.pythonhosted.org/packages/57/ff/1acfa9a2a0b68744407131892a4906c8fa8128f8c956dd19b9f101ebc15f/keymaker-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "5daf66cbe4463e7e54a26820c3a4ab0c",
"sha256": "b21b024cfb4c63b3d051c188b469f0b214511bcb304d00d1cb5d7aca3f677bd6"
},
"downloads": -1,
"filename": "keymaker-1.1.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "5daf66cbe4463e7e54a26820c3a4ab0c",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 20385,
"upload_time": "2019-10-25T18:43:57",
"upload_time_iso_8601": "2019-10-25T18:43:57.437657Z",
"url": "https://files.pythonhosted.org/packages/d2/f7/502e7cff6d4f032b2a6d489ba8e6275bc69269bb67c876ddbacf3a9f2a0a/keymaker-1.1.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "0a3ec08f4768eaa1d3a0ac71cd703fe0",
"sha256": "5cb6ee67384fec8c60aef6c95b54ed3ffaaa20c9a69fa36323e01adeca3563a2"
},
"downloads": -1,
"filename": "keymaker-1.1.0.tar.gz",
"has_sig": true,
"md5_digest": "0a3ec08f4768eaa1d3a0ac71cd703fe0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18304,
"upload_time": "2019-10-25T18:43:59",
"upload_time_iso_8601": "2019-10-25T18:43:59.485066Z",
"url": "https://files.pythonhosted.org/packages/57/ff/1acfa9a2a0b68744407131892a4906c8fa8128f8c956dd19b9f101ebc15f/keymaker-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"vulnerabilities": []
}