rfc8708.py 978 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # This file is being contributed to pyasn1-modules software.
  2. #
  3. # Created by Russ Housley
  4. #
  5. # Copyright (c) 2020, Vigil Security, LLC
  6. # License: http://snmplabs.com/pyasn1/license.html
  7. #
  8. # HSS/LMS Hash-based Signature Algorithm for CMS
  9. #
  10. # ASN.1 source from:
  11. # https://www.rfc-editor.org/rfc/rfc8708.txt
  12. from pyasn1.type import univ
  13. from pyasn1_modules import rfc5280
  14. # Object Identifiers
  15. id_alg_hss_lms_hashsig = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.17')
  16. id_alg_mts_hashsig = id_alg_hss_lms_hashsig
  17. # Signature Algorithm Identifier
  18. sa_HSS_LMS_HashSig = rfc5280.AlgorithmIdentifier()
  19. sa_HSS_LMS_HashSig['algorithm'] = id_alg_hss_lms_hashsig
  20. # sa_HSS_LMS_HashSig['parameters'] is alway absent
  21. # Public Key
  22. class HSS_LMS_HashSig_PublicKey(univ.OctetString):
  23. pass
  24. pk_HSS_LMS_HashSig = rfc5280.SubjectPublicKeyInfo()
  25. pk_HSS_LMS_HashSig['algorithm'] = sa_HSS_LMS_HashSig
  26. # pk_HSS_LMS_HashSig['parameters'] CONTAINS a DER-encoded HSS_LMS_HashSig_PublicKey