diff --git a/Projects/VC15.0/xsec/xsec_lib/xsec_lib.vcxproj b/Projects/VC15.0/xsec/xsec_lib/xsec_lib.vcxproj
index 687ecfb..cf24ea1 100644
--- a/Projects/VC15.0/xsec/xsec_lib/xsec_lib.vcxproj
+++ b/Projects/VC15.0/xsec/xsec_lib/xsec_lib.vcxproj
@@ -504,6 +504,7 @@
     <ClCompile Include="..\..\..\..\xsec\enc\OpenSSL\OpenSSLCryptoSymmetricKey.cpp" />
     <ClCompile Include="..\..\..\..\xsec\enc\OpenSSL\OpenSSLCryptoX509.cpp" />
     <ClCompile Include="..\..\..\..\xsec\enc\XSCrypt\XSCryptCryptoBase64.cpp" />
+    <ClCompile Include="..\..\..\..\xsec\transformers\TXFMChar.cpp" />
     <ClCompile Include="..\..\..\..\xsec\transformers\TXFMHash.cpp" />
     <ClCompile Include="..\..\..\..\xsec\utils\winutils\XSECSOAPRequestorSimpleWin32.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Minimal|Win32'">true</ExcludedFromBuild>
@@ -663,6 +664,7 @@
     <ClInclude Include="..\..\..\..\xsec\enc\OpenSSL\OpenSSLCryptoX509.hpp" />
     <ClInclude Include="..\..\..\..\xsec\enc\XSCrypt\XSCryptCryptoBase64.hpp" />
     <ClInclude Include="..\..\..\..\xsec\framework\XSECVersion.hpp" />
+    <ClInclude Include="..\..\..\..\xsec\transformers\TXFMChar.hpp" />
     <ClInclude Include="..\..\..\..\xsec\transformers\TXFMHash.hpp" />
     <ClInclude Include="..\..\..\..\xsec\utils\XSECAlgorithmSupport.hpp" />
     <ClInclude Include="..\..\..\..\xsec\utils\XSECAutoPtr.hpp" />
diff --git a/Projects/VC15.0/xsec/xsec_lib/xsec_lib.vcxproj.filters b/Projects/VC15.0/xsec/xsec_lib/xsec_lib.vcxproj.filters
index 95de2b7..35252f5 100644
--- a/Projects/VC15.0/xsec/xsec_lib/xsec_lib.vcxproj.filters
+++ b/Projects/VC15.0/xsec/xsec_lib/xsec_lib.vcxproj.filters
@@ -430,6 +430,9 @@
     <ClCompile Include="..\..\..\..\xsec\utils\XSECXPathNodeList.cpp">
       <Filter>utils</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\xsec\transformers\TXFMChar.cpp">
+      <Filter>transformers</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\..\xsec\dsig\DSIGAlgorithmHandlerDefault.hpp">
@@ -1050,6 +1053,9 @@
     <ClInclude Include="..\..\..\..\xsec\framework\resource.h">
       <Filter>framework</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\xsec\transformers\TXFMChar.hpp">
+      <Filter>transformers</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Filter Include="dsig">
diff --git a/xsec/Makefile.am b/xsec/Makefile.am
index 597872a..1f00ee4 100644
--- a/xsec/Makefile.am
+++ b/xsec/Makefile.am
@@ -245,6 +245,7 @@
   transformers/TXFMOutputFile.hpp \
   transformers/TXFMURL.hpp \
   transformers/TXFMBase.hpp \
+  transformers/TXFMChar.hpp \
   transformers/TXFMCipher.hpp \
   transformers/TXFMEnvelope.hpp \
   transformers/TXFMChain.hpp \
@@ -445,7 +446,8 @@
   transformers/TXFMXPath.cpp \
   transformers/TXFMXSL.cpp \
   transformers/TXFMDocObject.cpp \
-  transformers/TXFMConcatChains.cpp
+  transformers/TXFMConcatChains.cpp \
+  transformers/TXFMChar.cpp
 
 # Utility files.  Note we don't worry about checking
 # if the UNIX stuff is necessary - we just assume that
diff --git a/xsec/transformers/TXFMChar.cpp b/xsec/transformers/TXFMChar.cpp
new file mode 100644
index 0000000..ae22bd1
--- /dev/null
+++ b/xsec/transformers/TXFMChar.cpp
@@ -0,0 +1,122 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/*
+ * XSEC
+ *
+ * TXFMChar := Class that takes an input static buffer to start a transform pipe
+ *
+ */
+
+#include <xsec/transformers/TXFMChar.hpp>
+
+XERCES_CPP_NAMESPACE_USE
+
+// General includes 
+
+#include <memory.h>
+
+TXFMChar::TXFMChar(DOMDocument *doc) : TXFMBase(doc) {
+
+	toOutput = 0;
+}
+
+
+TXFMChar::~TXFMChar() {
+
+}
+
+// Methods to set the inputs
+
+void TXFMChar::setInput(TXFMBase *newInput) {
+
+	// We're the start of the actual data pipe, but we need to track
+    // the pointer for chain disposal.
+    input = newInput;
+
+	return;
+}
+
+void TXFMChar::setInput(const char* in) {
+
+	// Assume this is a string
+
+	buf = in;
+	toOutput = in ? strlen(in) : 0;
+	sbs = toOutput;
+
+}
+
+void TXFMChar::setInput(const char* in, unsigned int bSize) {
+
+	// Assume this is a string
+
+	buf = in;
+	if (bSize > (in ? strlen(in) : 0))
+		toOutput = in ? strlen(in) : 0;
+	else
+		toOutput = bSize;
+	sbs = toOutput;
+
+}
+
+
+// Methods to get tranform output type and input requirement
+
+TXFMBase::ioType TXFMChar::getInputType() const {
+	return TXFMBase::BYTE_STREAM;
+}
+
+TXFMBase::ioType TXFMChar::getOutputType() const {
+	return TXFMBase::BYTE_STREAM;
+}
+
+
+TXFMBase::nodeType TXFMChar::getNodeType() const {
+	return TXFMBase::DOM_NODE_NONE;
+}
+
+// Methods to get output data
+
+unsigned int TXFMChar::readBytes(XMLByte* const toFill, unsigned int maxToFill) {
+	
+	// Return from the buffer
+	
+	unsigned int ret;
+
+	if (toOutput == 0)
+		return 0;
+
+	// Check if we can just output everything left
+	if (toOutput <= maxToFill) {
+
+		memcpy((char *) toFill, &(buf[sbs - toOutput]), toOutput);
+		ret = (unsigned int) toOutput;
+		toOutput = 0;
+		return ret;
+	}
+
+	// Output just some
+
+	memcpy((char *) toFill, &(buf[sbs - toOutput]), maxToFill);
+	ret = maxToFill;
+	toOutput -= maxToFill;
+
+	return ret;
+}
diff --git a/xsec/transformers/TXFMChar.hpp b/xsec/transformers/TXFMChar.hpp
new file mode 100644
index 0000000..9e0ed03
--- /dev/null
+++ b/xsec/transformers/TXFMChar.hpp
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/*
+ * XSEC
+ *
+ * TXFMChar := Class that takes an input from a static buffer to start a pipe
+ *
+ */
+
+#ifndef TXFMCHAR_INCLUDE
+#define TXFMCHAR_INCLUDE
+
+#include <xsec/transformers/TXFMBase.hpp>
+
+/**
+ * \brief Base transformer to start a chain from a static buffer
+ * @ingroup internal
+ */
+
+class XSEC_EXPORT TXFMChar : public TXFMBase {
+
+private:
+
+	const char*	buf;	// Buffer to use
+	XMLSize_t toOutput;	// Amount left to output
+	XMLSize_t sbs;		// Size of raw buffer
+
+public:
+
+	TXFMChar(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc);
+	virtual ~TXFMChar();
+
+	// Methods to set the inputs
+
+	virtual void setInput(TXFMBase *newInput);
+	void setInput(const char* in);
+	void setInput(const char* in, unsigned int bufSize);
+
+	// Methods to get tranform output type and input requirement
+
+	virtual TXFMBase::ioType getInputType() const;
+	virtual TXFMBase::ioType getOutputType() const;
+	virtual nodeType getNodeType() const;
+
+	// Methods to get output data
+
+	virtual unsigned int readBytes(XMLByte* const toFill, const unsigned int maxToFill);
+	
+private:
+	TXFMChar();
+};
+
+#endif
