templates.c
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:21k
源码类别:

CA认证

开发平台:

WINDOWS

  1. /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
  2. /* 
  3.  * The contents of this file are subject to the Mozilla Public
  4.  * License Version 1.1 (the "License"); you may not use this file
  5.  * except in compliance with the License. You may obtain a copy of
  6.  * the License at http://www.mozilla.org/MPL/
  7.  * 
  8.  * Software distributed under the License is distributed on an "AS
  9.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  10.  * implied. See the License for the specific language governing
  11.  * rights and limitations under the License.
  12.  * 
  13.  * The Original Code is the Netscape security libraries.
  14.  * 
  15.  * The Initial Developer of the Original Code is Netscape
  16.  * Communications Corporation.  Portions created by Netscape are 
  17.  * Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  18.  * Rights Reserved.
  19.  * 
  20.  * Contributor(s):
  21.  * 
  22.  * Alternatively, the contents of this file may be used under the
  23.  * terms of the GNU General Public License Version 2 or later (the
  24.  * "GPL"), in which case the provisions of the GPL are applicable 
  25.  * instead of those above.  If you wish to allow use of your 
  26.  * version of this file only under the terms of the GPL and not to
  27.  * allow others to use your version of this file under the MPL,
  28.  * indicate your decision by deleting the provisions above and
  29.  * replace them with the notice and other provisions required by
  30.  * the GPL.  If you do not delete the provisions above, a recipient
  31.  * may use your version of this file under either the MPL or the
  32.  * GPL.
  33.  */
  34. #include "stddef.h"
  35. #include "messages.h"
  36. CMTMessageTemplate SingleNumMessageTemplate[] =
  37. {
  38.   { CMT_DT_INT, offsetof(SingleNumMessage, value) },
  39.   { CMT_DT_END }
  40. };
  41. CMTMessageTemplate SingleStringMessageTemplate[] =
  42. {
  43.   { CMT_DT_STRING, offsetof(SingleStringMessage, string) },
  44.   { CMT_DT_END }
  45. };
  46. CMTMessageTemplate SingleItemMessageTemplate[] =
  47. {
  48.   { CMT_DT_ITEM, offsetof(SingleItemMessage, item) },
  49.   { CMT_DT_END }
  50. };
  51. CMTMessageTemplate HelloRequestTemplate[] =
  52. {
  53.   { CMT_DT_INT, offsetof(HelloRequest, version) },
  54.   { CMT_DT_INT, offsetof(HelloRequest, policy) },
  55.   { CMT_DT_BOOL, offsetof(HelloRequest, doesUI) },
  56.   { CMT_DT_STRING, offsetof(HelloRequest, profile) },
  57.   { CMT_DT_STRING, offsetof(HelloRequest, profileDir) },
  58.   { CMT_DT_END }
  59. };
  60. CMTMessageTemplate HelloReplyTemplate[] =
  61. {
  62.   { CMT_DT_INT, offsetof(HelloReply, result) },
  63.   { CMT_DT_INT, offsetof(HelloReply, sessionID) },
  64.   { CMT_DT_INT, offsetof(HelloReply, version) },
  65.   { CMT_DT_STRING, offsetof(HelloReply, stringVersion) },
  66.   { CMT_DT_INT, offsetof(HelloReply, httpPort) },
  67.   { CMT_DT_INT, offsetof(HelloReply, policy) },
  68.   { CMT_DT_ITEM, offsetof(HelloReply, nonce) },
  69.   { CMT_DT_END }
  70. };
  71. CMTMessageTemplate SSLDataConnectionRequestTemplate[] =
  72. {
  73.   { CMT_DT_INT, offsetof(SSLDataConnectionRequest, flags) },
  74.   { CMT_DT_INT, offsetof(SSLDataConnectionRequest, port) },
  75.   { CMT_DT_STRING, offsetof(SSLDataConnectionRequest, hostIP) },
  76.   { CMT_DT_STRING, offsetof(SSLDataConnectionRequest, hostName) },
  77.   { CMT_DT_BOOL, offsetof(SSLDataConnectionRequest, forceHandshake) },
  78.   { CMT_DT_ITEM, offsetof(SSLDataConnectionRequest, clientContext) },
  79.   { CMT_DT_END }
  80. };
  81. CMTMessageTemplate TLSDataConnectionRequestTemplate[] =
  82. {
  83.     { CMT_DT_INT, offsetof(TLSDataConnectionRequest, port) },
  84.     { CMT_DT_STRING, offsetof(TLSDataConnectionRequest, hostIP) },
  85.     { CMT_DT_STRING, offsetof(TLSDataConnectionRequest, hostName) },
  86.     { CMT_DT_END }
  87. };
  88. CMTMessageTemplate TLSStepUpRequestTemplate[] =
  89. {
  90.     { CMT_DT_INT, offsetof(TLSStepUpRequest, connID) },
  91.     { CMT_DT_ITEM, offsetof(TLSStepUpRequest, clientContext) },
  92.     { CMT_DT_END }
  93. };
  94. CMTMessageTemplate ProxyStepUpRequestTemplate[] =
  95. {
  96.     { CMT_DT_INT, offsetof(ProxyStepUpRequest, connID) },
  97.     { CMT_DT_ITEM, offsetof(ProxyStepUpRequest, clientContext) },
  98.     { CMT_DT_STRING, offsetof(ProxyStepUpRequest, url) },
  99.     { CMT_DT_END }
  100. };
  101. CMTMessageTemplate PKCS7DataConnectionRequestTemplate[] =
  102. {
  103.   { CMT_DT_INT, offsetof(PKCS7DataConnectionRequest, resID) },
  104.   { CMT_DT_ITEM, offsetof(PKCS7DataConnectionRequest, clientContext) },
  105.   { CMT_DT_END }
  106. };
  107. CMTMessageTemplate DataConnectionReplyTemplate[] =
  108. {
  109.   { CMT_DT_INT, offsetof(DataConnectionReply, result) },
  110.   { CMT_DT_INT, offsetof(DataConnectionReply, connID) },
  111.   { CMT_DT_INT, offsetof(DataConnectionReply, port) },
  112.   { CMT_DT_END }
  113. };
  114. CMTMessageTemplate UIEventTemplate[] =
  115. {
  116.     { CMT_DT_INT, offsetof(UIEvent, resourceID) },
  117.     { CMT_DT_INT, offsetof(UIEvent, width) },
  118.     { CMT_DT_INT, offsetof(UIEvent, height) },
  119.     { CMT_DT_BOOL, offsetof(UIEvent, isModal) },
  120.     { CMT_DT_STRING, offsetof(UIEvent, url) },
  121.     { CMT_DT_ITEM, offsetof(UIEvent, clientContext) },
  122.     { CMT_DT_END }
  123. };
  124. /*
  125.  * The old UI Event was missing the modal indication.
  126.  * As a transition aid, we use the old template if the
  127.  * "modern" version doesn't work.  Model is true in that case
  128.  */
  129. CMTMessageTemplate OldUIEventTemplate[] =
  130. {
  131.     { CMT_DT_INT, offsetof(UIEvent, resourceID) },
  132.     { CMT_DT_INT, offsetof(UIEvent, width) },
  133.     { CMT_DT_INT, offsetof(UIEvent, height) },
  134.     { CMT_DT_STRING, offsetof(UIEvent, url) },
  135.     { CMT_DT_ITEM, offsetof(UIEvent, clientContext) },
  136.     { CMT_DT_END }
  137. };
  138. CMTMessageTemplate TaskCompletedEventTemplate[] =
  139. {
  140.     { CMT_DT_INT, offsetof(TaskCompletedEvent, resourceID) },
  141.     { CMT_DT_INT, offsetof(TaskCompletedEvent, numTasks) },
  142.     { CMT_DT_INT, offsetof(TaskCompletedEvent, result) },
  143.     { CMT_DT_END }
  144. };
  145. CMTMessageTemplate VerifyDetachedSigRequestTemplate[] =
  146. {
  147.     { CMT_DT_INT, offsetof(VerifyDetachedSigRequest, pkcs7ContentID) },
  148.     { CMT_DT_INT, offsetof(VerifyDetachedSigRequest, certUsage) },
  149.     { CMT_DT_INT, offsetof(VerifyDetachedSigRequest, hashAlgID) },
  150.     { CMT_DT_BOOL, offsetof(VerifyDetachedSigRequest, keepCert) },
  151.     { CMT_DT_ITEM, offsetof(VerifyDetachedSigRequest, hash) },
  152.     { CMT_DT_END }
  153. };
  154. CMTMessageTemplate CreateSignedRequestTemplate[] =
  155. {
  156.     { CMT_DT_INT, offsetof(CreateSignedRequest, scertRID) },
  157.     { CMT_DT_INT, offsetof(CreateSignedRequest, ecertRID) },
  158.     { CMT_DT_INT, offsetof(CreateSignedRequest, dig_alg) },
  159.     { CMT_DT_ITEM, offsetof(CreateSignedRequest, digest) },
  160.     { CMT_DT_END }
  161. };
  162. CMTMessageTemplate CreateContentInfoReplyTemplate[] =
  163. {
  164.     { CMT_DT_INT, offsetof(CreateContentInfoReply, ciRID) },
  165.     { CMT_DT_INT, offsetof(CreateContentInfoReply, result) },
  166.     { CMT_DT_INT, offsetof(CreateContentInfoReply, errorCode) },
  167.     { CMT_DT_END }
  168. };
  169. CMTMessageTemplate CreateEncryptedRequestTemplate[] =
  170. {
  171.   { CMT_DT_INT, offsetof(CreateEncryptedRequest, scertRID) },
  172.   { CMT_DT_LIST, offsetof(CreateEncryptedRequest, nrcerts) },
  173.   { CMT_DT_INT, offsetof(CreateEncryptedRequest, rcertRIDs) },
  174.   { CMT_DT_END }
  175. };
  176. CMTMessageTemplate CreateResourceRequestTemplate[] =
  177. {
  178.     { CMT_DT_INT, offsetof(CreateResourceRequest, type) },
  179.     { CMT_DT_ITEM, offsetof(CreateResourceRequest, params) },
  180.     { CMT_DT_END }
  181. };
  182. CMTMessageTemplate CreateResourceReplyTemplate[] =
  183. {
  184.     { CMT_DT_INT, offsetof(CreateResourceReply, result) },
  185.     { CMT_DT_INT, offsetof(CreateResourceReply, resID) },
  186.     { CMT_DT_END }
  187. };
  188. CMTMessageTemplate GetAttribRequestTemplate[] =
  189. {
  190.     { CMT_DT_INT, offsetof(GetAttribRequest, resID) },
  191.     { CMT_DT_INT, offsetof(GetAttribRequest, fieldID) },
  192.     { CMT_DT_END }
  193. };
  194. CMTMessageTemplate GetAttribReplyTemplate[] =
  195. {
  196.   { CMT_DT_INT, offsetof(GetAttribReply, result) },
  197.   { CMT_DT_CHOICE, offsetof(GetAttribReply, value.type) },
  198.   { CMT_DT_RID, offsetof(GetAttribReply, value.u.rid), 0, SSM_RID_ATTRIBUTE },
  199.   { CMT_DT_INT, offsetof(GetAttribReply, value.u.numeric), 0,
  200.     SSM_NUMERIC_ATTRIBUTE },
  201.   { CMT_DT_ITEM, offsetof(GetAttribReply, value.u.string), 0,
  202.     SSM_STRING_ATTRIBUTE},
  203.   { CMT_DT_END_CHOICE },
  204.   { CMT_DT_END }
  205. };
  206. CMTMessageTemplate SetAttribRequestTemplate[] =
  207. {
  208.     { CMT_DT_INT, offsetof(SetAttribRequest, resID) },
  209.     { CMT_DT_INT, offsetof(SetAttribRequest, fieldID) },
  210.     { CMT_DT_CHOICE, offsetof(SetAttribRequest, value.type) },
  211.     { CMT_DT_RID, offsetof(SetAttribRequest, value.u.rid), 0, SSM_RID_ATTRIBUTE },
  212.     { CMT_DT_INT, offsetof(SetAttribRequest, value.u.numeric), 0,
  213.                             SSM_NUMERIC_ATTRIBUTE },
  214.     { CMT_DT_ITEM, offsetof(SetAttribRequest, value.u.string), 0,
  215.                             SSM_STRING_ATTRIBUTE},
  216.     { CMT_DT_END_CHOICE },
  217.     { CMT_DT_END }
  218. };
  219. CMTMessageTemplate PickleResourceReplyTemplate[] =
  220. {
  221.     { CMT_DT_INT, offsetof(PickleResourceReply, result) },
  222.     { CMT_DT_ITEM, offsetof(PickleResourceReply, blob) },
  223.     { CMT_DT_END }
  224. };
  225. CMTMessageTemplate UnpickleResourceRequestTemplate[] =
  226. {
  227.     { CMT_DT_INT, offsetof(UnpickleResourceRequest, resourceType) },
  228.     { CMT_DT_ITEM, offsetof(UnpickleResourceRequest, resourceData) },
  229.     { CMT_DT_END }
  230. };
  231. CMTMessageTemplate UnpickleResourceReplyTemplate[] =
  232. {
  233.     { CMT_DT_INT, offsetof(UnpickleResourceReply, result) },
  234.     { CMT_DT_INT, offsetof(UnpickleResourceReply, resID) },
  235.     { CMT_DT_END }
  236. };
  237. CMTMessageTemplate PickleSecurityStatusReplyTemplate[] =
  238. {
  239.     { CMT_DT_INT, offsetof(PickleSecurityStatusReply, result) },
  240.     { CMT_DT_INT, offsetof(PickleSecurityStatusReply, securityLevel) },
  241.     { CMT_DT_ITEM, offsetof(PickleSecurityStatusReply, blob) },
  242.     { CMT_DT_END }
  243. };
  244. CMTMessageTemplate DupResourceReplyTemplate[] =
  245. {
  246.     { CMT_DT_INT, offsetof(DupResourceReply, result) },
  247.     { CMT_DT_RID, offsetof(DupResourceReply, resID), 0, SSM_RID_ATTRIBUTE },
  248.     { CMT_DT_END }
  249. };
  250. CMTMessageTemplate DestroyResourceRequestTemplate[] =
  251. {
  252.     { CMT_DT_INT, offsetof(DestroyResourceRequest, resID) },
  253.     { CMT_DT_INT, offsetof(DestroyResourceRequest, resType) },
  254.     { CMT_DT_END }
  255. };
  256. CMTMessageTemplate VerifyCertRequestTemplate[] =
  257. {
  258.     { CMT_DT_INT, offsetof(VerifyCertRequest, resID) },
  259.     { CMT_DT_INT, offsetof(VerifyCertRequest, certUsage) },
  260.     { CMT_DT_END }
  261. };
  262. CMTMessageTemplate AddTempCertToDBRequestTemplate[] =
  263. {
  264.     { CMT_DT_INT, offsetof(AddTempCertToDBRequest, resID) },
  265.     { CMT_DT_STRING, offsetof(AddTempCertToDBRequest, nickname) },
  266.     { CMT_DT_INT, offsetof(AddTempCertToDBRequest, sslFlags) },
  267.     { CMT_DT_INT, offsetof(AddTempCertToDBRequest, emailFlags) },
  268.     { CMT_DT_INT, offsetof(AddTempCertToDBRequest, objSignFlags) },
  269.     { CMT_DT_END }
  270. };
  271. CMTMessageTemplate MatchUserCertRequestTemplate[] =
  272. {
  273.     { CMT_DT_INT, offsetof(MatchUserCertRequest, certType) },
  274.     { CMT_DT_LIST, offsetof(MatchUserCertRequest, numCANames) },
  275.     { CMT_DT_STRING, offsetof(MatchUserCertRequest, caNames) },
  276.     { CMT_DT_END }
  277. };
  278. CMTMessageTemplate MatchUserCertReplyTemplate[] =
  279. {
  280.     { CMT_DT_LIST, offsetof(MatchUserCertReply, numCerts) },
  281.     { CMT_DT_INT, offsetof(MatchUserCertReply, certs) },
  282.     { CMT_DT_END }
  283. };
  284. CMTMessageTemplate EncodeCRMFReqRequestTemplate[] =
  285. {
  286.     { CMT_DT_LIST, offsetof(EncodeCRMFReqRequest, numRequests) },
  287.     { CMT_DT_INT, offsetof(EncodeCRMFReqRequest, reqIDs) },
  288.     { CMT_DT_END }
  289. };
  290. CMTMessageTemplate CMMFCertResponseRequestTemplate[] =
  291. {
  292.     { CMT_DT_STRING, offsetof(CMMFCertResponseRequest, nickname) },
  293.     { CMT_DT_STRING, offsetof(CMMFCertResponseRequest, base64Der) },
  294.     { CMT_DT_INT,    offsetof(CMMFCertResponseRequest, doBackup) },
  295.     { CMT_DT_ITEM,   offsetof(CMMFCertResponseRequest, clientContext) },
  296.     { CMT_DT_END }
  297. };
  298. CMTMessageTemplate PasswordRequestTemplate[] =
  299. {
  300.     { CMT_DT_INT, offsetof(PasswordRequest, tokenKey) },
  301.     { CMT_DT_STRING, offsetof(PasswordRequest, prompt) },
  302.     { CMT_DT_ITEM, offsetof(PasswordRequest, clientContext) },
  303.     { CMT_DT_END }
  304. };
  305. CMTMessageTemplate PasswordReplyTemplate[] =
  306. {
  307.     { CMT_DT_INT, offsetof(PasswordReply, result) },
  308.     { CMT_DT_INT, offsetof(PasswordReply, tokenID) },
  309.     { CMT_DT_STRING, offsetof(PasswordReply, passwd) },
  310.     { CMT_DT_END }
  311. };
  312. CMTMessageTemplate KeyPairGenRequestTemplate[] =
  313. {
  314.     { CMT_DT_INT, offsetof(KeyPairGenRequest, keyGenCtxtID) },
  315.     { CMT_DT_INT, offsetof(KeyPairGenRequest, genMechanism) },
  316.     { CMT_DT_INT, offsetof(KeyPairGenRequest, keySize) },
  317.     { CMT_DT_ITEM, offsetof(KeyPairGenRequest, params) },
  318.     { CMT_DT_END }
  319. };
  320. CMTMessageTemplate DecodeAndCreateTempCertRequestTemplate[] =
  321. {
  322.     { CMT_DT_INT, offsetof(DecodeAndCreateTempCertRequest, type) },
  323.     { CMT_DT_ITEM, offsetof(DecodeAndCreateTempCertRequest, cert) },
  324.     { CMT_DT_END }
  325. };
  326. CMTMessageTemplate GenKeyOldStyleRequestTemplate[] =
  327. {
  328.     { CMT_DT_STRING, offsetof(GenKeyOldStyleRequest, choiceString) },
  329.     { CMT_DT_STRING, offsetof(GenKeyOldStyleRequest, challenge) },
  330.     { CMT_DT_STRING, offsetof(GenKeyOldStyleRequest, typeString) },
  331.     { CMT_DT_STRING, offsetof(GenKeyOldStyleRequest, pqgString) },
  332.     { CMT_DT_END }
  333. };
  334. CMTMessageTemplate GenKeyOldStyleTokenRequestTemplate[] = 
  335. {
  336.     { CMT_DT_INT,  offsetof(GenKeyOldStyleTokenRequest, rid)       },
  337.     { CMT_DT_LIST,  offsetof(GenKeyOldStyleTokenRequest, numtokens) },
  338.     { CMT_DT_STRING,offsetof(GenKeyOldStyleTokenRequest, tokenNames)},
  339.     { CMT_DT_END }
  340. };
  341. CMTMessageTemplate GenKeyOldStyleTokenReplyTemplate[] = 
  342. {
  343.     { CMT_DT_INT, offsetof(GenKeyOldStyleTokenReply, rid) },
  344.     { CMT_DT_BOOL, offsetof(GenKeyOldStyleTokenReply, cancel) },
  345.     { CMT_DT_STRING, offsetof(GenKeyOldStyleTokenReply, tokenName) },
  346.     { CMT_DT_END }
  347. };
  348. CMTMessageTemplate GenKeyOldStylePasswordRequestTemplate[] = 
  349. {
  350.     { CMT_DT_INT, offsetof(GenKeyOldStylePasswordRequest, rid) },
  351.     { CMT_DT_STRING, offsetof(GenKeyOldStylePasswordRequest, tokenName) },
  352.     { CMT_DT_BOOL, offsetof(GenKeyOldStylePasswordRequest, internal) },
  353.     { CMT_DT_INT, offsetof(GenKeyOldStylePasswordRequest, minpwdlen) },
  354.     { CMT_DT_INT, offsetof(GenKeyOldStylePasswordRequest, maxpwdlen) }, 
  355.     { CMT_DT_END }
  356. };
  357. CMTMessageTemplate GenKeyOldStylePasswordReplyTemplate[] = 
  358. {
  359.     { CMT_DT_INT, offsetof(GenKeyOldStylePasswordReply, rid) },
  360.     { CMT_DT_BOOL, offsetof(GenKeyOldStylePasswordReply, cancel) },
  361.     { CMT_DT_STRING, offsetof(GenKeyOldStylePasswordReply, password) },
  362.     { CMT_DT_END }
  363. };
  364. CMTMessageTemplate GetKeyChoiceListRequestTemplate[] =
  365. {
  366.     { CMT_DT_STRING, offsetof(GetKeyChoiceListRequest, type) },
  367.     { CMT_DT_STRING, offsetof(GetKeyChoiceListRequest, pqgString) },
  368.     { CMT_DT_END }
  369. };
  370. CMTMessageTemplate GetKeyChoiceListReplyTemplate[] =
  371. {
  372.     { CMT_DT_LIST, offsetof(GetKeyChoiceListReply, nchoices) },
  373.     { CMT_DT_STRING, offsetof(GetKeyChoiceListReply, choices) },
  374.     { CMT_DT_END }
  375. };
  376. CMTMessageTemplate AddNewSecurityModuleRequestTemplate[] =
  377. {
  378.     { CMT_DT_STRING, offsetof(AddNewSecurityModuleRequest, moduleName) },
  379.     { CMT_DT_STRING, offsetof(AddNewSecurityModuleRequest, libraryPath) },
  380.     { CMT_DT_INT, offsetof(AddNewSecurityModuleRequest, pubMechFlags) },
  381.     { CMT_DT_INT, offsetof(AddNewSecurityModuleRequest, pubCipherFlags) },
  382.     { CMT_DT_END }
  383. };
  384. CMTMessageTemplate FilePathRequestTemplate[] =
  385. {
  386.     { CMT_DT_INT, offsetof(FilePathRequest, resID) },
  387.     { CMT_DT_STRING, offsetof(FilePathRequest, prompt) },
  388.     { CMT_DT_BOOL, offsetof(FilePathRequest, getExistingFile) },
  389.     { CMT_DT_STRING, offsetof(FilePathRequest, fileRegEx) },
  390.     { CMT_DT_END }
  391. };
  392. CMTMessageTemplate FilePathReplyTemplate[] =
  393. {
  394.     { CMT_DT_INT, offsetof(FilePathReply, resID) },
  395.     { CMT_DT_STRING, offsetof(FilePathReply, filePath) },
  396.     { CMT_DT_END }
  397. };
  398. CMTMessageTemplate PasswordPromptReplyTemplate[] =
  399. {
  400.     { CMT_DT_INT, offsetof(PasswordPromptReply, resID) },
  401.     { CMT_DT_STRING, offsetof(PasswordPromptReply, promptReply) },
  402.     { CMT_DT_END }
  403. };
  404. CMTMessageTemplate SignTextRequestTemplate[] =
  405. {
  406.     { CMT_DT_INT, offsetof(SignTextRequest, resID) },
  407.     { CMT_DT_STRING, offsetof(SignTextRequest, stringToSign) },
  408.     { CMT_DT_STRING, offsetof(SignTextRequest, hostName) },
  409.     { CMT_DT_STRING, offsetof(SignTextRequest, caOption) },
  410.     { CMT_DT_LIST, offsetof(SignTextRequest, numCAs) },
  411.     { CMT_DT_STRING, offsetof(SignTextRequest, caNames) },
  412.     { CMT_DT_END }
  413. };
  414. CMTMessageTemplate GetLocalizedTextReplyTemplate[] =
  415. {
  416.     { CMT_DT_INT, offsetof(GetLocalizedTextReply, whichString) },
  417.     { CMT_DT_STRING, offsetof(GetLocalizedTextReply, localizedString) },
  418.     { CMT_DT_END }
  419. };
  420. CMTMessageTemplate ImportCertReplyTemplate[] =
  421. {
  422.     { CMT_DT_INT, offsetof(ImportCertReply, result) },
  423.     { CMT_DT_INT, offsetof(ImportCertReply, resID) },
  424.     { CMT_DT_END }
  425. };
  426. CMTMessageTemplate PromptRequestTemplate[] =
  427. {
  428.     { CMT_DT_INT, offsetof(PromptRequest, resID) },
  429.     { CMT_DT_STRING, offsetof(PromptRequest, prompt) },
  430.     { CMT_DT_ITEM, offsetof(PromptRequest, clientContext) },
  431.     { CMT_DT_END }
  432. };
  433. CMTMessageTemplate PromptReplyTemplate[] =
  434. {
  435.     { CMT_DT_INT, offsetof(PromptReply, resID) },
  436.     { CMT_DT_BOOL, offsetof(PromptReply, cancel) },
  437.     { CMT_DT_STRING, offsetof(PromptReply, promptReply) },
  438.     { CMT_DT_END }
  439. };
  440. CMTMessageTemplate RedirectCompareRequestTemplate[] =
  441. {
  442.     { CMT_DT_ITEM, offsetof(RedirectCompareRequest, socketStatus1Data) },
  443.     { CMT_DT_ITEM, offsetof(RedirectCompareRequest, socketStatus2Data) },
  444.     { CMT_DT_END }
  445. };
  446. CMTMessageTemplate DecodeAndAddCRLRequestTemplate[] = 
  447. {
  448.     { CMT_DT_ITEM,   offsetof(DecodeAndAddCRLRequest, derCrl) },
  449.     { CMT_DT_INT,    offsetof(DecodeAndAddCRLRequest, type)   },
  450.     { CMT_DT_STRING, offsetof(DecodeAndAddCRLRequest, url)    },
  451.     { CMT_DT_END }
  452. };
  453. CMTMessageTemplate SecurityAdvisorRequestTemplate[] =
  454. {
  455.     { CMT_DT_INT,   offsetof(SecurityAdvisorRequest, infoContext) },
  456.     { CMT_DT_INT,   offsetof(SecurityAdvisorRequest, resID) },
  457.     { CMT_DT_STRING, offsetof(SecurityAdvisorRequest, hostname) },
  458.     { CMT_DT_STRING, offsetof(SecurityAdvisorRequest, senderAddr) },
  459.     { CMT_DT_INT,   offsetof(SecurityAdvisorRequest, encryptedP7CInfo) },
  460.     { CMT_DT_INT,   offsetof(SecurityAdvisorRequest, signedP7CInfo) },
  461.     { CMT_DT_INT,   offsetof(SecurityAdvisorRequest, decodeError) },
  462.     { CMT_DT_INT,   offsetof(SecurityAdvisorRequest, verifyError) },
  463.     { CMT_DT_BOOL,   offsetof(SecurityAdvisorRequest, encryptthis) },
  464.     { CMT_DT_BOOL,   offsetof(SecurityAdvisorRequest, signthis) },
  465.     { CMT_DT_LIST, offsetof(SecurityAdvisorRequest, numRecipients) },
  466.     { CMT_DT_STRING, offsetof(SecurityAdvisorRequest, recipients) },
  467.     { CMT_DT_END }
  468. };
  469. CMTMessageTemplate SCAddTempCertToPermDBRequestTemplate[] =
  470. {
  471.     { CMT_DT_ITEM, offsetof(SCAddTempCertToPermDBRequest, certKey) },
  472.     { CMT_DT_STRING, offsetof(SCAddTempCertToPermDBRequest, trustStr) },
  473.     { CMT_DT_STRING, offsetof(SCAddTempCertToPermDBRequest, nickname) },
  474.     { CMT_DT_END }
  475. };
  476. CMTMessageTemplate SCDeletePermCertsRequestTemplate[] =
  477. {
  478.     { CMT_DT_ITEM, offsetof(SCDeletePermCertsRequest, certKey) },
  479.     { CMT_DT_BOOL, offsetof(SCDeletePermCertsRequest, deleteAll) },
  480.     { CMT_DT_END }
  481. };
  482. CMTMessageTemplate TimeMessageTemplate[] =
  483. {
  484.     { CMT_DT_INT, offsetof(TimeMessage, year) },
  485.     { CMT_DT_INT, offsetof(TimeMessage, month) },
  486.     { CMT_DT_INT, offsetof(TimeMessage, day) },
  487.     { CMT_DT_INT, offsetof(TimeMessage, hour) },
  488.     { CMT_DT_INT, offsetof(TimeMessage, minute) },
  489.     { CMT_DT_INT, offsetof(TimeMessage, second) },
  490.     { CMT_DT_END }
  491. };
  492. CMTMessageTemplate SCCertIndexEnumReplyTemplate[] =
  493. {
  494.     { CMT_DT_INT, offsetof(SCCertIndexEnumReply, length) },
  495.     { CMT_DT_STRUCT_PTR, offsetof(SCCertIndexEnumReply, list) },
  496.     { CMT_DT_STRING, offsetof(CertEnumElement, name) },
  497.     { CMT_DT_ITEM, offsetof(CertEnumElement, certKey) },
  498.     { CMT_DT_END_STRUCT_LIST },
  499.     { CMT_DT_END }
  500. };
  501. /* Test template */
  502. CMTMessageTemplate TestListTemplate[] = 
  503. {
  504. { CMT_DT_STRING, offsetof(TestList, listName) },
  505. { CMT_DT_STRUCT_LIST, offsetof(TestList, numElements) },
  506. { CMT_DT_STRUCT_PTR, offsetof(TestList, elements) },
  507. { CMT_DT_STRING, offsetof(TestListElement, name) },
  508. { CMT_DT_STRING, offsetof(TestListElement, value) },
  509. { CMT_DT_END_STRUCT_LIST},
  510. { CMT_DT_END}
  511. };
  512. CMTMessageTemplate SetPrefListMessageTemplate[] =
  513. {
  514.     { CMT_DT_STRUCT_LIST, offsetof(SetPrefListMessage, length) },
  515.     { CMT_DT_STRUCT_PTR, offsetof(SetPrefListMessage, list) },
  516.     { CMT_DT_STRING, offsetof(SetPrefElement, key) },
  517.     { CMT_DT_STRING, offsetof(SetPrefElement, value) },
  518.     { CMT_DT_INT, offsetof(SetPrefElement, type) },
  519.     { CMT_DT_END_STRUCT_LIST },
  520.     { CMT_DT_END }
  521. };
  522. CMTMessageTemplate GetPrefListRequestTemplate[] =
  523. {
  524.     { CMT_DT_STRUCT_LIST, offsetof(GetPrefListRequest, length) },
  525.     { CMT_DT_STRUCT_PTR, offsetof(GetPrefListRequest, list) },
  526.     { CMT_DT_STRING, offsetof(GetPrefElement, key) },
  527.     { CMT_DT_INT, offsetof(GetPrefElement, type) },
  528.     { CMT_DT_END_STRUCT_LIST },
  529.     { CMT_DT_END }
  530. };
  531. CMTMessageTemplate GetCertExtensionTemplate[] =
  532. {
  533.     { CMT_DT_INT, offsetof(GetCertExtension, resID) },
  534.     { CMT_DT_INT, offsetof(GetCertExtension, extension) },
  535.     { CMT_DT_END }
  536. };
  537. CMTMessageTemplate HTMLCertInfoRequestTemplate[] =
  538. {
  539.     { CMT_DT_INT, offsetof(HTMLCertInfoRequest, certID) },
  540.     { CMT_DT_INT, offsetof(HTMLCertInfoRequest, showImages) },
  541.     { CMT_DT_INT, offsetof(HTMLCertInfoRequest, showIssuer) },
  542.     { CMT_DT_END }
  543. };
  544. CMTMessageTemplate EncryptRequestTemplate[] =
  545. {
  546.   { CMT_DT_ITEM, offsetof(EncryptRequestMessage, keyid) },
  547.   { CMT_DT_ITEM, offsetof(EncryptRequestMessage, data) },
  548.   { CMT_DT_ITEM, offsetof(EncryptRequestMessage, ctx) },
  549.   { CMT_DT_END }
  550. };
  551. CMTMessageTemplate DecryptRequestTemplate[] =
  552. {
  553.   { CMT_DT_ITEM, offsetof(DecryptRequestMessage, data) },
  554.   { CMT_DT_ITEM, offsetof(DecryptRequestMessage, ctx) },
  555.   { CMT_DT_END }
  556. };