Subversion Repositories DevTools

Rev

Rev 2218 | Rev 2224 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2218 Rev 2222
Line 31... Line 31...
31
 
31
 
32
#include <vcl.h>
32
#include <vcl.h>
33
#pragma hdrstop
33
#pragma hdrstop
34
//## end module%420AC16002C1.includes
34
//## end module%420AC16002C1.includes
35
 
35
 
36
// TransactionSpecification
-
 
37
#include "TransactionSpecification.h"
-
 
38
// IXmlSchemaWrapperElement
36
// ICryptographicServerProxy
39
#include "IXmlSchemaWrapperElement.h"
37
#include "ICryptographicServerProxy.h"
40
// IMessageDigest
38
// IMessageDigest
41
#include "IMessageDigest.h"
39
#include "IMessageDigest.h"
-
 
40
// IXmlSchemaWrapperElement
-
 
41
#include "IXmlSchemaWrapperElement.h"
-
 
42
// TransactionSpecification
-
 
43
#include "TransactionSpecification.h"
42
// EvaluationContext
44
// EvaluationContext
43
#include "EvaluationContext.h"
45
#include "EvaluationContext.h"
44
// SequenceCollection
46
// SequenceCollection
45
#include "SequenceCollection.h"
47
#include "SequenceCollection.h"
46
// Sequence
48
// Sequence
Line 76... Line 78...
76
	EXPRESSIONID_UDSUBTYPE,
78
	EXPRESSIONID_UDSUBTYPE,
77
	EXPRESSIONID_ACCOUNTTYPE,
79
	EXPRESSIONID_ACCOUNTTYPE,
78
	EXPRESSIONID_SEQ,
80
	EXPRESSIONID_SEQ,
79
	EXPRESSIONID_KEYVERSION,
81
	EXPRESSIONID_KEYVERSION,
80
	EXPRESSIONID_KEYNUMBER,
82
	EXPRESSIONID_KEYNUMBER,
81
	EXPRESSIONID_MAC
83
	EXPRESSIONID_MAC,
-
 
84
	EXPRESSIONID_SAMID,
-
 
85
	EXPRESSIONID_SCENARIO_INDEX
82
};
86
};
83
struct PredefinedFunction
87
struct PredefinedFunction
84
{
88
{
85
	const char *	functor;
89
	const char *	functor;
86
	FunctionId		functionId;
90
	FunctionId		functionId;
Line 100... Line 104...
100
	{ "ACCOUNTTYPE",	EXPRESSIONID_ACCOUNTTYPE },
104
	{ "ACCOUNTTYPE",	EXPRESSIONID_ACCOUNTTYPE },
101
	{ "SEQ",			EXPRESSIONID_SEQ },
105
	{ "SEQ",			EXPRESSIONID_SEQ },
102
	{ "KEYVERSION",		EXPRESSIONID_KEYVERSION },
106
	{ "KEYVERSION",		EXPRESSIONID_KEYVERSION },
103
	{ "KEYNUMBER",		EXPRESSIONID_KEYNUMBER },
107
	{ "KEYNUMBER",		EXPRESSIONID_KEYNUMBER },
104
	{ "MAC",			EXPRESSIONID_MAC },
108
	{ "MAC",			EXPRESSIONID_MAC },
-
 
109
	{ "SAMID",			EXPRESSIONID_SAMID },
-
 
110
	{ "SCENARIOINDEX",	EXPRESSIONID_SCENARIO_INDEX },
105
	{ 0,				EXPRESSIONID_INVALID }
111
	{ 0,				EXPRESSIONID_INVALID }
106
};
112
};
107
 
113
 
108
static const std::locale myLocale;
114
static const std::locale myLocale;
109
 
115
 
Line 483... Line 489...
483
			postponed = true;
489
			postponed = true;
484
 
490
 
485
			return ( true );
491
			return ( true );
486
		}
492
		}
487
		break;
493
		break;
-
 
494
	case EXPRESSIONID_SAMID:
-
 
495
		if ( evaluationContext.haveCryptographicServer() )
-
 
496
		{
-
 
497
			/**
-
 
498
			 *	We don't know which module will be used to compute the
-
 
499
			 *	MAC (security doesn't tell us), so until they do we
-
 
500
			 *	assume its the first module.
-
 
501
			 */
-
 
502
			if ( evaluationContext.getCryptographicServer().getModuleCount() )
-
 
503
			{
-
 
504
				AnsiString os;
-
 
505
				os.sprintf( "%hu", evaluationContext.getCryptographicServer().getSamId( 0 ) );
-
 
506
				value = os.c_str();
-
 
507
				return ( true );
-
 
508
			}
-
 
509
		}
-
 
510
		break;
-
 
511
	case EXPRESSIONID_SCENARIO_INDEX:
-
 
512
		{
-
 
513
			AnsiString os;
-
 
514
			os.sprintf( "%u", evaluationContext.getScenarioIndex() );
-
 
515
			value = os.c_str();
-
 
516
		}
-
 
517
		return ( true );
488
	default:
518
	default:
-
 
519
		MERROR( "Function \"" << symbol << "\" is not implemented." );
489
		break;
520
		break;
490
	}
521
	}
491
 
522
 
492
	return ( false );
523
	return ( false );
493
 
524