Leaked source code of windows server 2003
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.

84 lines
2.7 KiB

  1. // CryptFctry.h -- implementation of the CryptFactory template
  2. // (c) Copyright Schlumberger Technology Corp., unpublished work, created
  3. // 1999. This computer program includes Confidential, Proprietary
  4. // Information and is a Trade Secret of Schlumberger Technology Corp. All
  5. // use, disclosure, and/or reproduction is prohibited unless authorized
  6. // in writing. All Rights Reserved.
  7. #if !defined(SLBCCI_CRYPTFCTRY_H)
  8. #define SLBCCI_CRYPTFCTRY_H
  9. #include "slbCci.h"
  10. namespace cci
  11. {
  12. class CContainer;
  13. class CAbstractCertificate;
  14. class CAbstractContainer;
  15. class CAbstractDataObject;
  16. class CAbstractKeyPair;
  17. class CAbstractPrivateKey;
  18. class CAbstractPublicKey;
  19. // Factory interface definition to make the various CCI cryptographic objects
  20. class CCryptFactory
  21. {
  22. public:
  23. // Types
  24. // C'tors/D'tors
  25. virtual
  26. ~CCryptFactory() throw() = 0;
  27. // Operators
  28. // Operations
  29. virtual CAbstractCertificate *
  30. MakeCertificate(ObjectAccess oa) const = 0;
  31. virtual CAbstractContainer *
  32. MakeContainer() const = 0;
  33. virtual CAbstractDataObject *
  34. MakeDataObject(ObjectAccess oa) const = 0;
  35. virtual CAbstractKeyPair *
  36. MakeKeyPair(CContainer const &rhcont,
  37. KeySpec ks) const = 0;
  38. virtual CAbstractPrivateKey *
  39. MakePrivateKey(ObjectAccess oa) const = 0;
  40. virtual CAbstractPublicKey *
  41. MakePublicKey(ObjectAccess oa) const = 0;
  42. // Access
  43. // Predicates
  44. protected:
  45. // Types
  46. // C'tors/D'tors
  47. explicit
  48. CCryptFactory();
  49. // Operators
  50. // Operations
  51. // Access
  52. // Predicates
  53. // Variables
  54. private:
  55. // Types
  56. // C'tors/D'tors
  57. // Operators
  58. // Operations
  59. // Access
  60. // Predicates
  61. // Variables
  62. };
  63. } // namespace cci
  64. #endif // SLBCCI_CRYPTFCTRY_H