home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 April: Mac OS SDK / Dev.CD Apr 00 SDK1.toast / Development Kits / Mac OS / Security SDK / Includes / FileSigning.p < prev    next >
Encoding:
Text File  |  1999-10-28  |  4.8 KB  |  155 lines  |  [TEXT/CWIE]

  1. {
  2.      File:        FileSigning.p
  3.  
  4.      Contains:    Apple File Signing Pascal interfaces.
  5.  
  6.      Version:    1.0
  7.  
  8.      Copyright:    © 1998-1999 by Apple Computer, Inc., all rights reserved
  9.  
  10.      Bugs?:        Please include the the file and version information (from above) with
  11.                  the problem description.  Developers belonging to one of the Apple
  12.                  developer programs can submit bug reports to:
  13.  
  14.                      devsupport@apple.com
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT FileSigning;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __FILESIGNING__}
  27. {$SETC __FILESIGNING__ := 1}
  28.  
  29. {$I+}
  30. {$SETC FileSigningIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __FILES__}
  37. {$I Files.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __KEYCHAIN__}
  40. {$I Keychain.p}
  41. {$ENDC}
  42. {$IFC UNDEFINED __CRYPTOMESSAGESYNTAX__}
  43. {$I CryptoMessageSyntax.p}
  44. {$ENDC}
  45.  
  46. { Data structures and types }
  47.  
  48. {$PUSH}
  49. {$ALIGN MAC68K}
  50. {$LibExport+}
  51.  
  52.  
  53. CONST
  54.     kSecOptionProgress            = $01;
  55.     kSecOptionShowVerifyUI        = $02;
  56.     kSecOptionNeverShowUI        = $04;
  57.     kCertUsageReserved            = $7FFFFF00;                    {  Last 3 bytes reserved for SecOptions flags  }
  58.  
  59.  
  60. TYPE
  61.     SecOptions                            = UInt32;
  62.  
  63. CONST
  64.     kSecSignatureTypeRawPKCS7    = 0;
  65.     kSecSignatureTypeCMS        = 1;
  66.     kSecSignatureTypePGP        = 2;                            {  reserved but not implemented  }
  67.  
  68.  
  69. TYPE
  70.     SecSignatureType                    = UInt32;
  71.  
  72. CONST
  73.     kSecTrustPolicyCodeSigning    = 0;
  74.     kSecTrustPolicyPersonalFileSigning = 1;
  75.  
  76.  
  77. TYPE
  78.     SecTrustPolicy                        = UInt32;
  79.     SecProgressCallbackInfoPtr = ^SecProgressCallbackInfo;
  80.     SecProgressCallbackInfo = RECORD
  81.         version:                UInt32;
  82.         bytesProcessed:            UInt32;
  83.         totalBytes:                UInt32;
  84.         itemsRemainingToSign:    UInt32;
  85.         totalItemsToSign:        UInt32;
  86.         secondsRemaining:        UInt32;
  87.         secondsElapsed:            UInt32;
  88.         microSecondsPerByte:    UInt32;
  89.         fileName:                Str255;
  90.     END;
  91.  
  92. {$IFC TYPED_FUNCTION_POINTERS}
  93.     SecProgressCallbackProcPtr = FUNCTION(VAR callbackInfo: SecProgressCallbackInfo; userContext: UNIV Ptr): OSStatus;
  94. {$ELSEC}
  95.     SecProgressCallbackProcPtr = ProcPtr;
  96. {$ENDC}
  97.  
  98.     SecProgressCallbackUPP = UniversalProcPtr;
  99.  
  100. CONST
  101.     uppSecProgressCallbackProcInfo = $000003F0;
  102.  
  103. FUNCTION NewSecProgressCallbackUPP(userRoutine: SecProgressCallbackProcPtr): SecProgressCallbackUPP; { old name was NewSecProgressCallbackProc }
  104.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  105.     INLINE $2E9F;
  106.     {$ENDC}
  107.  
  108. PROCEDURE DisposeSecProgressCallbackUPP(userUPP: SecProgressCallbackUPP);
  109.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  110.     INLINE $594F;
  111.     {$ENDC}
  112.  
  113. FUNCTION InvokeSecProgressCallbackUPP(VAR callbackInfo: SecProgressCallbackInfo; userContext: UNIV Ptr; userRoutine: SecProgressCallbackUPP): OSStatus; { old name was CallSecProgressCallbackProc }
  114.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  115.     INLINE $205F, $4E90;
  116.     {$ENDC}
  117. FUNCTION SecSetProgressCallback(callbackProc: SecProgressCallbackUPP; userContext: UNIV Ptr): OSStatus;
  118. FUNCTION SecRemoveProgressCallback(callbackProc: SecProgressCallbackUPP): OSStatus;
  119. FUNCTION DefaultSecProgressCallbackProc(VAR info: SecProgressCallbackInfo; userContext: UNIV Ptr): OSStatus;
  120.  
  121. CONST
  122.     kSecDefaultSignatureResID    = 1;
  123.  
  124. FUNCTION SecMacSignFile(VAR theFile: FSSpec; signingCertificate: KCItemRef; sigH: Handle; options: SecOptions; progressProc: SecProgressCallbackUPP; userContext: UNIV Ptr): OSStatus;
  125. FUNCTION SecMacSignFileSimple(VAR theFile: FSSpec; signingCertificate: KCItemRef; options: SecOptions): OSStatus;
  126. FUNCTION SecMacLoadSigPound(VAR theFile: FSSpec; VAR resHandle: Handle): OSStatus;
  127. FUNCTION SecMacRemoveSignature(VAR theFile: FSSpec; signatureType: SecSignatureType; signatureToRemove: SInt16): OSStatus;
  128. FUNCTION SecMacRemoveAllSignatures(VAR theFile: FSSpec; signatureType: SecSignatureType): OSStatus;
  129.  
  130. FUNCTION SecMacVerifyFile(VAR theFile: FSSpec; options: SecOptions; progressProc: SecProgressCallbackUPP; userContext: UNIV Ptr; signatureToVerify: SInt16; policyOIDs: CFArrayRef; stopOn: KCVerifyStopOn; VAR signer: SecSignerRef): OSStatus;
  131. FUNCTION SecMacVerifyFileSimple(VAR theFile: FSSpec; options: SecOptions; trustPolicy: SecTrustPolicy; VAR signer: SecSignerRef): OSStatus;
  132. FUNCTION SecMacHasSignature(VAR theFile: FSSpec; signatureType: SecSignatureType): BOOLEAN;
  133. FUNCTION SecMacFindSignatureToVerify(VAR theFile: FSSpec; signatureType: SecSignatureType; VAR signatureToVerify: SInt16): OSStatus;
  134. FUNCTION SecMacGetDefaultPolicyOIDs(trustPolicy: SecTrustPolicy): CFArrayRef;
  135.  
  136. FUNCTION SecMacDisplaySigner(inputErr: OSStatus; signer: SecSignerRef; alwaysShowUI: BOOLEAN; VAR theFile: FSSpec): OSStatus;
  137. { Errors Codes }
  138.  
  139. CONST
  140.     errSecTooManySigners        = -13839;
  141.     errSecSigningFailed            = -13838;
  142.     errSecCorruptSigPound        = -13837;
  143.     errSecNoSignatureFound        = -13836;
  144.  
  145. {$ALIGN RESET}
  146. {$POP}
  147.  
  148. {$SETC UsingIncludes := FileSigningIncludes}
  149.  
  150. {$ENDC} {__FILESIGNING__}
  151.  
  152. {$IFC NOT UsingIncludes}
  153.  END.
  154. {$ENDC}
  155.