summaryrefslogtreecommitdiff
path: root/src/include/dkimbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/dkimbase.h')
-rw-r--r--src/include/dkimbase.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/include/dkimbase.h b/src/include/dkimbase.h
new file mode 100644
index 0000000..25aac02
--- /dev/null
+++ b/src/include/dkimbase.h
@@ -0,0 +1,79 @@
+/*****************************************************************************
+* Copyright 2005 Alt-N Technologies, Ltd.
+*
+* Licensed 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
+*
+* This code incorporates intellectual property owned by Yahoo! and licensed
+* pursuant to the Yahoo! DomainKeys Patent License Agreement.
+*
+* 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.
+*
+* Changes done by ¢feh@fehcom.de obeying the above license
+*
+*****************************************************************************/
+#ifndef DKIMBASE_H
+#define DKIMBASE_H
+
+#include <openssl/evp.h>
+#include <openssl/pem.h>
+#include <openssl/err.h>
+
+#define BUFFER_ALLOC_INCREMENT 256
+
+#include <string>
+#include <list>
+
+using namespace std;
+
+class CDKIMBase
+{
+public:
+
+ CDKIMBase();
+ ~CDKIMBase();
+
+ int Init(void);
+
+ int Process(const char* szBuffer,int nBufLength,bool bEOF);
+ int ProcessFinal(void);
+
+ int Alloc(char*& szBuffer,int nRequiredSize);
+ int ReAlloc(char*& szBuffer,int& nBufferLength,int nRequiredSize);
+ void Free(char* szBuffer);
+
+ static void RemoveSWSP(char* szBuffer);
+ static void RemoveSWSP(char* pBuffer,int& nBufLength);
+ static void RemoveSWSP(string& sBuffer);
+
+ static void CompressSWSP(char* pBuffer,int& nBufLength);
+ static void CompressSWSP(string& sBuffer);
+
+ static string RelaxHeader(const string& sHeader);
+
+ virtual int ProcessHeaders(void);
+ virtual int ProcessBody(char* szBuffer,int nBufLength,bool bEOF);
+
+protected:
+ char* m_From;
+ char* m_Sender;
+ char* m_hTag;
+ int m_hTagSize;
+ int m_hTagPos;
+ char* m_Line;
+ int m_LineSize;
+ int m_LinePos;
+ bool m_InHeaders;
+
+ list<string> HeaderList;
+};
+
+
+#endif // DKIMBASE_H