diff --git a/scripts/config.pl b/scripts/config.pl
index 84ec38e..04a9a74 100755
--- a/scripts/config.pl
+++ b/scripts/config.pl
@@ -7,12 +7,13 @@
 # Purpose
 #
 # Comments and uncomments #define lines in the given header file and optionally
-# sets their value. This is to provide scripting control of what preprocessor
-# symbols, and therefore what build time configuration flags are set in the
-# 'config.h' file.
+# sets their value or can get the value. This is to provide scripting control of
+# what preprocessor symbols, and therefore what build time configuration flags
+# are set in the 'config.h' file.
 #
 # Usage: config.pl [-f <file> | --file <file>] [-o | --force]
-#                   [set <symbol> <value> | unset <symbol> | full | realfull]
+#                   [set <symbol> <value> | unset <symbol> | get <symbol> |
+#                       full | realfull]
 #
 # Full usage description provided below.
 #
@@ -43,18 +44,23 @@
 my $config_file = "include/mbedtls/config.h";
 my $usage = <<EOU;
 $0 [-f <file> | --file <file>] [-o | --force]
-                   [set <symbol> <value> | unset <symbol> | full | realfull]
+                   [set <symbol> <value> | unset <symbol> | get <symbol> |
+                        full | realfull]
 
 Commands
-    set <symbol> [<value]   - Uncomments or adds a #define for the <symnol> to
+    set <symbol> [<value>]  - Uncomments or adds a #define for the <symbol> to
                               the configuration file, and optionally making it
                               of <value>.
                               If the symbol isn't present in the file an error
                               is returned.
-    unset <symbol>          - Comments out any #define present in the
-                              configuration file.
+    unset <symbol>          - Comments out the #define for the given symbol if
+                              present in the configuration file.
+    get <symbol>            - Finds the #define for the given symbol, returning
+                              an exitcode of 0 if the symbol is found, and -1 if
+                              not. The value of the symbol is output if one is
+                              specified in the configuration file.
     full                    - Uncomments all #define's in the configuration file
-                              excluding some reserved symbols, until the 
+                              excluding some reserved symbols, until the
                               'Module configuration options' section
     realfull                - Uncomments all #define's with no exclusions
 
@@ -122,7 +128,7 @@
             die $usage if @ARGV;
 
         }
-        elsif ($action eq "unset") {
+        elsif ($action eq "unset" || $action eq "get") {
             die $usage unless @ARGV;
             $name = shift;
 
@@ -195,6 +201,11 @@
             $line .= "\n";
             $done = 1;
         }
+    } elsif (!$done && $action eq "get") {
+        if ($line =~ /^\s*#define\s*$name\s*(.*)\s*\b/) {
+            $value = $1;
+            $done = 1;
+        }
     }
 
     print $config_write $line;
@@ -214,6 +225,15 @@
 
 close $config_write;
 
+if ($action eq "get" && $done) {
+    if ($value ne '') {
+        print $value;
+    }
+    exit 0;
+} else {
+    exit -1;
+}
+
 if ($action eq "full" && !$done) {
     die "Configuration section was not found in $config_file\n";
 
