diff --git a/scripts/imgtool/image.py b/scripts/imgtool/image.py
index d722efd..67f4a30 100644
--- a/scripts/imgtool/image.py
+++ b/scripts/imgtool/image.py
@@ -317,8 +317,7 @@
 
     def create(self, key, public_key_format, enckey, dependencies=None,
                sw_type=None, custom_tlvs=None, encrypt_keylen=128, clear=False,
-               fixed_sig=None, pub_key=None, vector_to_sign=None,
-               use_legacy_tlv=False):
+               fixed_sig=None, pub_key=None, vector_to_sign=None):
         self.enckey = enckey
 
         # Check what hashing algorithm should be used
@@ -483,18 +482,10 @@
                 else:
                     print(os.path.basename(__file__) + ": sign the digest")
                     sig = key.sign_digest(digest)
-                # only ecdsa256 has legacy tlv type
-                if use_legacy_tlv and isinstance(key, ecdsa.ECDSA256P1):
-                    tlv.add(key.legacy_sig_tlv(), sig)
-                else:
-                    tlv.add(key.sig_tlv(), sig)
+                tlv.add(key.sig_tlv(), sig)
                 self.signature = sig
             elif fixed_sig is not None and key is None:
-                if use_legacy_tlv and isinstance(pub_key,
-                                                 ecdsa.ECDSA256P1Public):
-                    tlv.add(pub_key.legacy_sig_tlv(), fixed_sig['value'])
-                else:
-                    tlv.add(pub_key.sig_tlv(), fixed_sig['value'])
+                tlv.add(pub_key.sig_tlv(), fixed_sig['value'])
                 self.signature = fixed_sig['value']
             else:
                 raise click.UsageError("Can not sign using key and provide fixed-signature at the same time")
