Index: generic/tls.c
==================================================================
--- generic/tls.c
+++ generic/tls.c
@@ -238,11 +238,11 @@
     State *statePtr = (State*)arg;
     Tcl_Interp *interp	= statePtr->interp;
     Tcl_Obj *cmdPtr;
     char *ver, *type;
     BIO *bio;
-    char buffer[15000];
+    char buffer[30000];
     buffer[0] = 0;
 
     dprintf("Called");
 
     if (statePtr->callback == (Tcl_Obj*)NULL)

Index: generic/tlsInfo.c
==================================================================
--- generic/tlsInfo.c
+++ generic/tlsInfo.c
@@ -945,11 +945,11 @@
 
     dprintf("Called");
 
     /* Validate arg count */
     if (objc != 2) {
-	Tcl_WrongNumArgs(interp, 1, objv, "provider");
+	Tcl_WrongNumArgs(interp, 1, objv, "name");
 	return TCL_ERROR;
     }
 
     name = Tcl_GetStringFromObj(objv[1], NULL);
     if (!OSSL_PROVIDER_try_load(NULL, (const char *) name, 1)) {

Index: tests/info.csv
==================================================================
--- tests/info.csv
+++ tests/info.csv
@@ -76,11 +76,17 @@
 command,# Test show version,,,,,,,,,
 Version,All,,,::tls::version,,glob,*,,,
 Version,OpenSSL,OpenSSL,,::tls::version,,glob,OpenSSL*,,,
 ,,,,,,,,,,
 command,# Error Cases,,,,,,,,,
-Error Cases,Cipher Too many args,,,::tls::cipher too many args,,,"wrong # args: should be ""::tls::cipher ?name?""",,,1
-Error Cases,Digests Too many args,,,::tls::digests too many args,,,"wrong # args: should be ""::tls::digests ?name?""",,,1
-Error Cases,MACs Too many args,,,::tls::macs too many args,,,"wrong # args: should be ""::tls::macs ?name?""",,,1
-Error Cases,Pkeys Too many args,,,::tls::pkeys too many args,,,"wrong # args: should be ""::tls::pkeys ?name?""",,,1
-Error Cases,Protocols Too many args,,,::tls::protocols too many args,,,"wrong # args: should be ""::tls::protocols""",,,1
-Error Cases,Version Too many args,,,::tls::version too many args,,,"wrong # args: should be ""::tls::version""",,,1
+Error Cases,Cipher too many args,,,::tls::cipher too many args,,,"wrong # args: should be ""::tls::cipher ?name?""",,,1
+Error Cases,Digests too many args,,,::tls::digests too many args,,,"wrong # args: should be ""::tls::digests ?name?""",,,1
+Error Cases,MACs too many args,,,::tls::macs too many args,,,"wrong # args: should be ""::tls::macs ?name?""",,,1
+Error Cases,Pkeys too many args,,,::tls::pkeys too many args,,,"wrong # args: should be ""::tls::pkeys ?name?""",,,1
+Error Cases,Protocols too many args,,,::tls::protocols too many args,,,"wrong # args: should be ""::tls::protocols""",,,1
+Error Cases,Version too many args,,,::tls::version too many args,,,"wrong # args: should be ""::tls::version""",,,1
+,,,,,,,,,,
+command,# Provider command,,,,,,,,,
+Provider,Provider too few args,new_api,,::tls::provider,,,"wrong # args: should be ""::tls:provider name""",,,1
+Provider,Provider too few args,new_api,,::tls::provider too many args,,,"wrong # args: should be ""::tls:provider name""",,,1
+Provider,Provider invalid arg,new_api,,::tls::provider invalid,,,could not load the shared library,,,1
+Provider,Provider legacy provider,new_api,,::tls::provider legacy,,,,,,

Index: tests/info.test
==================================================================
--- tests/info.test
+++ tests/info.test
@@ -210,32 +210,51 @@
     } -match {glob} -result {OpenSSL*}
 
 # Error Cases
 
 
-test Error_Cases-13.1 {Cipher Too many args} -body {
+test Error_Cases-13.1 {Cipher too many args} -body {
 	::tls::cipher too many args
     } -result {wrong # args: should be "::tls::cipher ?name?"} -returnCodes {1}
 
-test Error_Cases-13.2 {Digests Too many args} -body {
+test Error_Cases-13.2 {Digests too many args} -body {
 	::tls::digests too many args
     } -result {wrong # args: should be "::tls::digests ?name?"} -returnCodes {1}
 
-test Error_Cases-13.3 {MACs Too many args} -body {
+test Error_Cases-13.3 {MACs too many args} -body {
 	::tls::macs too many args
     } -result {wrong # args: should be "::tls::macs ?name?"} -returnCodes {1}
 
-test Error_Cases-13.4 {Pkeys Too many args} -body {
+test Error_Cases-13.4 {Pkeys too many args} -body {
 	::tls::pkeys too many args
     } -result {wrong # args: should be "::tls::pkeys ?name?"} -returnCodes {1}
 
-test Error_Cases-13.5 {Protocols Too many args} -body {
+test Error_Cases-13.5 {Protocols too many args} -body {
 	::tls::protocols too many args
     } -result {wrong # args: should be "::tls::protocols"} -returnCodes {1}
 
-test Error_Cases-13.6 {Version Too many args} -body {
+test Error_Cases-13.6 {Version too many args} -body {
 	::tls::version too many args
     } -result {wrong # args: should be "::tls::version"} -returnCodes {1}
+
+# Provider command
+
+
+test Provider-14.1 {Provider too few args} -constraints {new_api} -body {
+	::tls::provider
+    } -result {wrong # args: should be "::tls:provider name"} -returnCodes {1}
+
+test Provider-14.2 {Provider too few args} -constraints {new_api} -body {
+	::tls::provider too many args
+    } -result {wrong # args: should be "::tls:provider name"} -returnCodes {1}
+
+test Provider-14.3 {Provider invalid arg} -constraints {new_api} -body {
+	::tls::provider invalid
+    } -result {could not load the shared library} -returnCodes {1}
+
+test Provider-14.4 {Provider legacy provider} -constraints {new_api} -body {
+	::tls::provider legacy
+    }
 
 # Cleanup
 ::tcltest::cleanupTests
 return