diff --git a/scripts/imgtool/keys/general.py b/scripts/imgtool/keys/general.py
index 033a70f..0393a9a 100644
--- a/scripts/imgtool/keys/general.py
+++ b/scripts/imgtool/keys/general.py
@@ -8,7 +8,18 @@
 
 
 class KeyClass(object):
-    def _emit(self, header, trailer, encoded_bytes, indent, file=sys.stdout, len_format=None):
+    def _emit(self, header, trailer, encoded_bytes, indent, file=sys.stdout,
+              len_format=None):
+        if file and file is not sys.stdout:
+            with open(file, 'w') as file:
+                self._emit_to_output(header, trailer, encoded_bytes, indent,
+                                     file, len_format)
+        else:
+            self._emit_to_output(header, trailer, encoded_bytes, indent,
+                                 sys.stdout, len_format)
+
+    def _emit_to_output(self, header, trailer, encoded_bytes, indent, file,
+                        len_format):
         print(AUTOGEN_MESSAGE, file=file)
         print(header, end='', file=file)
         for count, b in enumerate(encoded_bytes):
@@ -39,7 +50,11 @@
                 file=file)
 
     def emit_public_pem(self, file=sys.stdout):
-        print(str(self.get_public_pem(), 'utf-8'), file=file, end='')
+        if file and file is not sys.stdout:
+            with open(file, 'w') as file:
+                print(str(self.get_public_pem(), 'utf-8'), file=file, end='')
+        else:
+            print(str(self.get_public_pem(), 'utf-8'), file=sys.stdout, end='')
 
     def emit_private(self, minimal, format, file=sys.stdout):
         self._emit(
