diff --git a/iat-verifier/dev_scripts/generate-sample-iat.py b/iat-verifier/dev_scripts/generate-sample-iat.py
index 5b5c56f..5c9d35b 100755
--- a/iat-verifier/dev_scripts/generate-sample-iat.py
+++ b/iat-verifier/dev_scripts/generate-sample-iat.py
@@ -20,6 +20,7 @@
 from iatverifier.verifiers import BootSeedClaim, SWComponentsClaim, SWComponentTypeClaim
 from iatverifier.verifiers import SignerIdClaim, SwComponentVersionClaim
 from iatverifier.verifiers import MeasurementValueClaim, MeasurementDescriptionClaim
+from iatverifier.psa_iot_profile1_token_verifier import PSAIoTProfile1TokenVerifier
 
 # First byte indicates "GUID"
 GUID = b'\x01' + struct.pack('QQQQ', 0x0001020304050607, 0x08090A0B0C0D0E0F,
@@ -87,7 +88,8 @@
 
     sk = SigningKey.from_pem(open(keyfile, 'rb').read())
     token = cbor2.dumps(token_map)
-    signed_token = sign_eat(token, sk)
+    verifier = PSAIoTProfile1TokenVerifier.get_verifier()
+    signed_token = sign_eat(token, verifier, sk)
 
     with open(outfile, 'wb') as wfh:
         wfh.write(signed_token)
diff --git a/iat-verifier/iatverifier/util.py b/iat-verifier/iatverifier/util.py
index aa4e0ba..45bce73 100644
--- a/iat-verifier/iatverifier/util.py
+++ b/iat-verifier/iatverifier/util.py
@@ -20,18 +20,18 @@
 
 _logger = logging.getLogger("util")
 
-def sign_eat(token, key=None):
+def sign_eat(token, verifier, key=None):
     signed_msg = Sign1Message()
     signed_msg.payload = token
     if key:
         signed_msg.key = key
-        signed_msg.signature = signed_msg.compute_signature()
+        signed_msg.signature = signed_msg.compute_signature(alg=verifier.cose_alg)
     return signed_msg.encode()
 
 
 def hmac_eat(token, verifier, key=None):
     hmac_msg = Mac0Message(payload=token, key=key)
-    hmac_msg.compute_auth_tag(verifier.cose_alg)
+    hmac_msg.compute_auth_tag(alg=verifier.cose_alg)
     return hmac_msg.encode()
 
 
@@ -59,7 +59,7 @@
     if verifier.method == AttestationTokenVerifier.SIGN_METHOD_RAW:
         signed_token = token
     elif verifier.method == AttestationTokenVerifier.SIGN_METHOD_SIGN1:
-        signed_token = sign_eat(token, signing_key)
+        signed_token = sign_eat(token, verifier, signing_key)
     elif verifier.method == AttestationTokenVerifier.SIGN_METHOD_MAC0:
         signed_token = hmac_eat(token, verifier, signing_key)
     else:
