# Path: securesystemslib/gpg/rsa.py
# CRYPTO = True
# NO_CRYPTO_MSG = 'RSA key support for GPG requires the cryptography library'
#   CRYPTO = False
# def create_pubkey(pubkey_info):
# def get_pubkey_params(data):
# def get_signature_params(data):
# def verify_signature(signature_object, pubkey_info, content,
#     hash_algorithm_id):
# 
# Path: securesystemslib/gpg/dsa.py
# CRYPTO = True
# NO_CRYPTO_MSG = 'DSA key support for GPG requires the cryptography library'
#   CRYPTO = False
# def create_pubkey(pubkey_info):
# def get_pubkey_params(data):
# def get_signature_params(data):
# def verify_signature(signature_object, pubkey_info, content,
#     hash_algorithm_id):
# 
# Path: securesystemslib/gpg/eddsa.py
# CRYPTO = True
# NO_CRYPTO_MSG = 'EdDSA key support for GPG requires the cryptography library'
#   CRYPTO = False
# ED25519_PUBLIC_KEY_OID = bytearray.fromhex("2B 06 01 04 01 DA 47 0F 01")
# ED25519_PUBLIC_KEY_LENGTH = 33
# ED25519_PUBLIC_KEY_PREFIX = 0x40
# ED25519_SIG_LENGTH = 64
# def get_pubkey_params(data):
# def get_signature_params(data):
# def create_pubkey(pubkey_info):
# def verify_signature(signature_object, pubkey_info, content,
#     hash_algorithm_id):


from securesystemslib.gpg import rsa
from securesystemslib.gpg import dsa
from securesystemslib.gpg import eddsa
<Author>
  Santiago Torres-Arias <santiago@nyu.edu>

<Started>
  Jan 15, 2020

<Copyright>
  See LICENSE for licensing information.

<Purpose>
  Provides links from signatures/algorithms to modules implementing
  the signature verification and key parsing.
"""


# See section 9.1. (public-key algorithms) of RFC4880 (-bis8)
SUPPORTED_SIGNATURE_ALGORITHMS = {
    0x01: {
      "type":"rsa",
      "method": "pgp+rsa-pkcsv1.5",
      "handler": rsa
    },
    0x11: {
      "type": "dsa",
      "method": "pgp+dsa-fips-180-2",
      "handler": dsa
    },
    0x16: {
      "type": "eddsa",
      "method": "pgp+eddsa-ed25519",

# Path: securesystemslib/gpg/rsa.py
# CRYPTO = True
# NO_CRYPTO_MSG = 'RSA key support for GPG requires the cryptography library'
#   CRYPTO = False
# def create_pubkey(pubkey_info):
# def get_pubkey_params(data):
# def get_signature_params(data):
# def verify_signature(signature_object, pubkey_info, content,
#     hash_algorithm_id):
# 
# Path: securesystemslib/gpg/dsa.py
# CRYPTO = True
# NO_CRYPTO_MSG = 'DSA key support for GPG requires the cryptography library'
#   CRYPTO = False
# def create_pubkey(pubkey_info):
# def get_pubkey_params(data):
# def get_signature_params(data):
# def verify_signature(signature_object, pubkey_info, content,
#     hash_algorithm_id):
# 
# Path: securesystemslib/gpg/eddsa.py
# CRYPTO = True
# NO_CRYPTO_MSG = 'EdDSA key support for GPG requires the cryptography library'
#   CRYPTO = False
# ED25519_PUBLIC_KEY_OID = bytearray.fromhex("2B 06 01 04 01 DA 47 0F 01")
# ED25519_PUBLIC_KEY_LENGTH = 33
# ED25519_PUBLIC_KEY_PREFIX = 0x40
# ED25519_SIG_LENGTH = 64
# def get_pubkey_params(data):
# def get_signature_params(data):
# def create_pubkey(pubkey_info):
# def verify_signature(signature_object, pubkey_info, content,
#     hash_algorithm_id):


# Path: securesystemslib/gpg/handlers.py
from securesystemslib.gpg import rsa
from securesystemslib.gpg import dsa
from securesystemslib.gpg import eddsa

<Author>
  Santiago Torres-Arias <santiago@nyu.edu>

<Started>
  Jan 15, 2020

<Copyright>
  See LICENSE for licensing information.

<Purpose>
  Provides links from signatures/algorithms to modules implementing
  the signature verification and key parsing.
"""


# See section 9.1. (public-key algorithms) of RFC4880 (-bis8)
SUPPORTED_SIGNATURE_ALGORITHMS = {
    0x01: {
      "type":"rsa",
      "method": "pgp+rsa-pkcsv1.5",
      "handler": rsa
    },
    0x11: {
      "type": "dsa",
      "method": "pgp+dsa-fips-180-2",
      "handler": dsa
    },
    0x16: {
      "type": "eddsa",
      "method": "pgp+eddsa-ed25519",

      "handler": eddsa