From 36fe6a0206c51de907c2aa14afe70629f4e88d02 Mon Sep 17 00:00:00 2001
From: Jennifer Richards <jennifer@staff.ietf.org>
Date: Fri, 19 May 2023 14:57:27 -0300
Subject: [PATCH] fix: Store nomcom private key in session as str

bytes are incompatible with JSONSerializer
---
 ietf/nomcom/factories.py | 2 +-
 ietf/nomcom/utils.py     | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/ietf/nomcom/factories.py b/ietf/nomcom/factories.py
index 8ef4e07fa..6fd6819b0 100644
--- a/ietf/nomcom/factories.py
+++ b/ietf/nomcom/factories.py
@@ -66,7 +66,7 @@ Tdb0MiLc+r/zvx8oXtgDjDUa
 
 def provide_private_key_to_test_client(testcase):
     session = testcase.client.session
-    session['NOMCOM_PRIVATE_KEY_%s'%testcase.nc.year()] = key
+    session['NOMCOM_PRIVATE_KEY_%s'%testcase.nc.year()] = key.decode("utf8")
     session.save()
 
 def nomcom_kwargs_for_year(year=None, *args, **kwargs):
diff --git a/ietf/nomcom/utils.py b/ietf/nomcom/utils.py
index 4c91bfd1d..5cc41f820 100644
--- a/ietf/nomcom/utils.py
+++ b/ietf/nomcom/utils.py
@@ -183,7 +183,7 @@ def retrieve_nomcom_private_key(request, year):
             settings.OPENSSL_COMMAND,
             command_line_safe_secret(settings.NOMCOM_APP_SECRET)
         ),
-        private_key
+        private_key.encode("utf8")
     )
     if code != 0:
         log("openssl error: %s:\n  Error %s: %s" %(command, code, error))        
@@ -205,8 +205,8 @@ def store_nomcom_private_key(request, year, private_key):
         if code != 0:
             log("openssl error: %s:\n  Error %s: %s" %(command, code, error))        
         if error and error!=b"*** WARNING : deprecated key derivation used.\nUsing -iter or -pbkdf2 would be better.\n":
-            out = ''
-        request.session['NOMCOM_PRIVATE_KEY_%s' % year] = out
+            out = b''
+        request.session['NOMCOM_PRIVATE_KEY_%s' % year] = out.decode("utf8")
 
 
 def validate_private_key(key):