Browse Source

Fix demos/pem-info.c to properly display different CFB modes

Also, make CMake build it.
Richard Levitte 1 year ago
parent
commit
2026e2865d
2 changed files with 14 additions and 3 deletions
  1. 11 2
      demos/CMakeLists.txt
  2. 3 1
      demos/pem-info.c

+ 11 - 2
demos/CMakeLists.txt

@@ -2,7 +2,7 @@
 # Options
 # Options
 #-----------------------------------------------------------------------------
 #-----------------------------------------------------------------------------
 option(BUILD_USEFUL_DEMOS "Build useful demos (hashsum)" FALSE)
 option(BUILD_USEFUL_DEMOS "Build useful demos (hashsum)" FALSE)
-option(BUILD_USABLE_DEMOS "Build usable demos (ltcrypt sizes constants)" FALSE)
+option(BUILD_USABLE_DEMOS "Build usable demos (ltcrypt sizes constants pem-info)" FALSE)
 
 
 #-----------------------------------------------------------------------------
 #-----------------------------------------------------------------------------
 # Useful demos
 # Useful demos
@@ -38,7 +38,7 @@ endif()
 
 
 if(BUILD_USABLE_DEMOS)
 if(BUILD_USABLE_DEMOS)
 
 
-    list(APPEND ALL_DEMOS_TARGETS ltcrypt sizes constants)
+    list(APPEND ALL_DEMOS_TARGETS ltcrypt sizes constants pem-info)
 
 
     # ltcrypt
     # ltcrypt
     add_executable(ltcrypt
     add_executable(ltcrypt
@@ -67,6 +67,15 @@ if(BUILD_USABLE_DEMOS)
         ${PROJECT_NAME}
         ${PROJECT_NAME}
     )
     )
 
 
+    # pem-info
+    add_executable(pem-info
+        ${CMAKE_CURRENT_SOURCE_DIR}/pem-info.c
+    )
+
+    target_link_libraries(pem-info PRIVATE
+        ${PROJECT_NAME}
+    )
+
 endif()
 endif()
 
 
 #-----------------------------------------------------------------------------
 #-----------------------------------------------------------------------------

+ 3 - 1
demos/pem-info.c

@@ -49,6 +49,8 @@ static const struct {
    { cm_none,   "none",   },
    { cm_none,   "none",   },
    { cm_cbc,    "CBC",    },
    { cm_cbc,    "CBC",    },
    { cm_cfb,    "CFB",    },
    { cm_cfb,    "CFB",    },
+   { cm_cfb1,   "CFB1",   },
+   { cm_cfb8,   "CFB8",   },
    { cm_ctr,    "CTR",    },
    { cm_ctr,    "CTR",    },
    { cm_ofb,    "OFB",    },
    { cm_ofb,    "OFB",    },
    { cm_stream, "STREAM", },
    { cm_stream, "STREAM", },
@@ -58,7 +60,7 @@ static const struct {
 static const char *s_map_mode(enum cipher_mode mode)
 static const char *s_map_mode(enum cipher_mode mode)
 {
 {
    size_t n;
    size_t n;
-   mode &= cm_modes;
+   mode &= cm_modes | cm_1bit | cm_8bit;
    for (n = 0; n < sizeof(cipher_mode_map)/sizeof(cipher_mode_map[0]); ++n) {
    for (n = 0; n < sizeof(cipher_mode_map)/sizeof(cipher_mode_map[0]); ++n) {
       if (cipher_mode_map[n].mode == mode)
       if (cipher_mode_map[n].mode == mode)
          return cipher_mode_map[n].name;
          return cipher_mode_map[n].name;