You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.0 KiB

  1. from .. import random_tokens
  2. try:
  3. from jwcrypto import jwk
  4. except ImportError:
  5. pass
  6. def init_keys(IrConfigParameter):
  7. keys = {
  8. "galicea_openid_connect.authorization_code_jwk": lambda: jwk.JWK.generate(
  9. kty="oct",
  10. size=256,
  11. kid=random_tokens.alpha_numeric(16),
  12. use="sig",
  13. alg="HS256",
  14. ).export(),
  15. "galicea_openid_connect.id_token_jwk": lambda: jwk.JWK.generate(
  16. kty="RSA",
  17. size=2054,
  18. kid=random_tokens.alpha_numeric(16),
  19. use="sig",
  20. alg="RS256",
  21. ).export(),
  22. }
  23. for key, gen in keys.iteritems():
  24. if not IrConfigParameter.search([("key", "=", key)]):
  25. IrConfigParameter.create(
  26. {
  27. "key": key,
  28. "value": gen(),
  29. "group_ids": [
  30. (4, IrConfigParameter.env.ref("base.group_erp_manager").id)
  31. ],
  32. }
  33. )