Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
2.7 KiB

  1. //+-----------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (c) Microsoft Corporation 1992 - 1996
  6. //
  7. // File: pkauth.h
  8. //
  9. // Contents: Structures and prototypes for public key kerberos
  10. //
  11. //
  12. // History: 14-October-1997 Created MikeSw
  13. //
  14. //------------------------------------------------------------------------
  15. #ifndef __PKAUTH_H__
  16. #define __PKAUTH_H__
  17. VOID
  18. KerbFreePKCreds(
  19. IN PKERB_PUBLIC_KEY_CREDENTIALS PkCreds
  20. );
  21. BOOL
  22. KerbComparePublicKeyCreds(
  23. IN PKERB_PUBLIC_KEY_CREDENTIALS PkCreds1,
  24. IN PKERB_PUBLIC_KEY_CREDENTIALS PkCreds2
  25. );
  26. NTSTATUS
  27. KerbBuildPkinitPreauthData(
  28. IN PKERB_PRIMARY_CREDENTIAL Credentials,
  29. IN OPTIONAL PKERB_PA_DATA_LIST InputPaData,
  30. IN PTimeStamp TimeSkew,
  31. IN PKERB_INTERNAL_NAME ServiceName,
  32. IN PUNICODE_STRING RealmName,
  33. IN ULONG Nonce,
  34. IN OUT PKERB_PA_DATA_LIST * PreAuthData,
  35. OUT PKERB_ENCRYPTION_KEY EncryptionKey,
  36. OUT PKERB_CRYPT_LIST * CryptList,
  37. OUT PBOOLEAN Done
  38. );
  39. NTSTATUS
  40. KerbCreateSmartCardLogonSessionFromCertContext(
  41. IN PCERT_CONTEXT *ppCertContext,
  42. IN PLUID pLogonId,
  43. IN PUNICODE_STRING pAuthorityName,
  44. IN PUNICODE_STRING pPin,
  45. IN PUCHAR pCspData,
  46. IN ULONG CspDataLength,
  47. OUT PKERB_LOGON_SESSION *ppLogonSession,
  48. OUT PUNICODE_STRING pAccountName
  49. );
  50. NTSTATUS
  51. KerbCreateSmartCardLogonSession(
  52. IN PVOID ProtocolSubmitBuffer,
  53. IN PVOID ClientBufferBase,
  54. IN ULONG SubmitBufferSize,
  55. IN SECURITY_LOGON_TYPE LogonType,
  56. OUT PKERB_LOGON_SESSION *ReturnedLogonSession,
  57. OUT PLUID ReturnedLogonId,
  58. OUT PUNICODE_STRING AccountName,
  59. OUT PUNICODE_STRING AuthorityName
  60. );
  61. NTSTATUS
  62. KerbDoLocalSmartCardLogon(
  63. IN PKERB_LOGON_SESSION LogonSession,
  64. OUT PLSA_TOKEN_INFORMATION_TYPE TokenInformationType,
  65. OUT PVOID *NewTokenInformation,
  66. OUT PULONG ProfileBufferLength,
  67. OUT PVOID * ProfileBuffer,
  68. OUT PSECPKG_PRIMARY_CRED PrimaryCredentials,
  69. OUT PSECPKG_SUPPLEMENTAL_CRED_ARRAY * CachedCredentials,
  70. IN OUT PNETLOGON_VALIDATION_SAM_INFO4 * Validation4
  71. );
  72. VOID
  73. KerbCacheSmartCardLogon(
  74. IN PNETLOGON_VALIDATION_SAM_INFO3 ValidationInfo,
  75. IN PUNICODE_STRING DnsDomain,
  76. IN OPTIONAL PUNICODE_STRING UPN,
  77. IN PKERB_LOGON_SESSION LogonSession,
  78. IN OPTIONAL PSECPKG_SUPPLEMENTAL_CRED_ARRAY CachedCredentials
  79. );
  80. NTSTATUS
  81. KerbInitializePkinit(
  82. VOID
  83. );
  84. NTSTATUS
  85. KerbInitializePkCreds(
  86. IN PKERB_PUBLIC_KEY_CREDENTIALS PkCreds
  87. );
  88. VOID
  89. KerbReleasePkCreds(
  90. IN OPTIONAL PKERB_LOGON_SESSION LogonSession,
  91. IN OPTIONAL PKERB_PUBLIC_KEY_CREDENTIALS PkCreds
  92. );
  93. NTSTATUS
  94. KerbMapClientCertChainError(ULONG ChainStatus);
  95. #endif // __PKAUTH_H__