def generate_ed25519_key(scheme='<STR_LIT>'):
<EOL>securesystemslib.formats.ED25519_SIG_SCHEMA.check_match(scheme)<EOL>ed25519_key = {}<EOL>keytype = '<STR_LIT>'<EOL>public = None<EOL>private = None<EOL>public, private =securesystemslib.ed25519_keys.generate_public_and_private()<EOL>key_value = {'<STR_LIT>': binascii.hexlify(public).decode(),<EOL>'<STR_LIT>': '<STR_LIT>'}<EOL>keyid = _get_keyid(keytype, scheme, key_value)<EOL>key_value['<STR_LIT>'] = binascii.hexlify(private).decode()<EOL>ed25519_key['<STR_LIT>'] = keytype<EOL>ed25519_key['<STR_LIT>'] = scheme<EOL>ed25519_key['<STR_LIT>'] = keyid<EOL>ed25519_key['<STR_LIT>'] = securesystemslib.settings.HASH_ALGORITHMS<EOL>ed25519_key['<STR_LIT>'] = key_value<EOL>return ed25519_key<EOL>
<Purpose>
  Generate public and private ED25519 keys, both of length 32-bytes, although
  they are hexlified to 64 bytes.  In addition, a keyid identifier generated
  for the returned ED25519 object.  The object returned conforms to
  'securesystemslib.formats.ED25519KEY_SCHEMA' and has the form:

  {'keytype': 'ed25519',
   'scheme': 'ed25519',
   'keyid': 'f30a0870d026980100c0573bd557394f8c1bbd6...',
   'keyval': {'public': '9ccf3f02b17f82febf5dd3bab878b767d8408...',
              'private': 'ab310eae0e229a0eceee3947b6e0205dfab3...'}}

  >>> ed25519_key = generate_ed25519_key()
  >>> securesystemslib.formats.ED25519KEY_SCHEMA.matches(ed25519_key)
  True
  >>> len(ed25519_key['keyval']['public'])
  64
  >>> len(ed25519_key['keyval']['private'])
  64

<Arguments>
  scheme:
    The signature scheme used by the generated Ed25519 key.

<Exceptions>
  None.

<Side Effects>
  The ED25519 keys are generated by calling either the optimized pure Python
  implementation of ed25519, or the ed25519 routines provided by 'pynacl'.

<Returns>
  A dictionary containing the ED25519 keys and other identifying information.
  Conforms to 'securesystemslib.formats.ED25519KEY_SCHEMA'.