📄 sec_clr.cpp
字号:
// sec_clr.cc// code for sec_clr.h// copyright SafeTP Development Group, Inc., 2000 Terms of use are as specified in license.txt#include "sec_clr.h" // this module#include "datablok.h" // DataBlock#include <string.h> // strcmp// ------------------ CleartextDataSecurity --------------------------DataSecurityLevel CleartextDataSecurity::getSupportedProtLevels() const{ return DSL_CLEAR;}char CleartextDataSecurity::getCodeForLevel(DataSecurityLevel level) const{ xassert(level == DSL_CLEAR); return 'C';}DataSecurityLevel CleartextDataSecurity::getLevelForCode(char code) const{ if (code == 'C') { return DSL_CLEAR; } else { return DSL_NONE; }}// --------------------- CleartextControl2 ---------------------------char const * const CleartextControl2::serverFirst = "Cleartext2 first server ADAT";char const * const CleartextControl2::clientFirst = "Cleartext2 first client ADAT";char const * const CleartextControl2::serverSecond = "Cleartext2 second server ADAT";char const * const CleartextControl2::clientSecond = "Cleartext2 second client ADAT";bool CleartextControl2::hasOutgoingAdat() const{ if (isClient) { return state==1 || state==3; } else { // server return state==0 || state==2; }}void CleartextControl2::getNextOutgoingAdat(DataBlock &block){ if (isClient) { switch (state) { case 1: block.setFromString(clientFirst); break; case 3: block.setFromString(clientSecond); break; default: xassert(!"invalid state"); } } else { // server switch (state) { case 0: block.setFromString(serverFirst); break; case 2: block.setFromString(serverSecond); break; default: xassert(!"invalid state"); } } state++;}bool CleartextControl2::expectingIncomingAdat() const{ if (isClient) { return state==0 || state==2; } else { // server return state==1 || state==3; }}void CleartextControl2::checkAdat( DataBlock const &reallyIs, char const *shouldBe, char const *context){ char const *really = (char const*)reallyIs.getDataC(); if (0!=strcmp(really, shouldBe)) { xsecurity(stringb(context << " should be \"" << shouldBe << "\" but is \"" << really << "\"")); }}void CleartextControl2::incomingAdat(DataBlock &block){ if (isClient) { switch (state) { case 0: checkAdat(block, serverFirst, "Server's first adat"); break; case 2: checkAdat(block, serverSecond, "Server's second adat"); break; default: xassert(!"invalid state"); } } else { // server switch (state) { case 1: checkAdat(block, clientFirst, "Client's first adat"); break; case 3: checkAdat(block, clientSecond, "Client's second adat"); break; default: xassert(!"invalid state"); } } state++;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -