wmsecure.idl 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * Copyright 2021 Zebediah Figura for CodeWeavers
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  17. */
  18. import "oaidl.idl";
  19. import "ocidl.idl";
  20. [
  21. object,
  22. local,
  23. uuid(d9b67d36-a9ad-4eb4-baef-db284ef5504c),
  24. ]
  25. interface IWMAuthorizer : IUnknown
  26. {
  27. HRESULT GetCertCount(DWORD *count);
  28. HRESULT GetCert(DWORD index, BYTE **data);
  29. HRESULT GetSharedData(DWORD index, const BYTE *data, BYTE *cert, BYTE **ret_data);
  30. }
  31. [
  32. object,
  33. local,
  34. uuid(2720598a-d0f2-4189-bd10-91c46ef0936f),
  35. ]
  36. interface IWMSecureChannel : IWMAuthorizer
  37. {
  38. HRESULT WMSC_AddCertificate(IWMAuthorizer *cert);
  39. HRESULT WMSC_AddSignature(BYTE *signature, DWORD size);
  40. HRESULT WMSC_Connect(IWMSecureChannel *peer);
  41. HRESULT WMSC_IsConnected(BOOL *connected);
  42. HRESULT WMSC_Disconnect();
  43. HRESULT WMSC_GetValidCertificate(BYTE **cert, DWORD *signature);
  44. HRESULT WMSC_Encrypt(BYTE *data, DWORD size);
  45. HRESULT WMSC_Decrypt(BYTE *data, DWORD size);
  46. HRESULT WMSC_Lock();
  47. HRESULT WMSC_Unlock();
  48. HRESULT WMSC_SetSharedData(DWORD index, BYTE *data);
  49. }
  50. [
  51. object,
  52. local,
  53. uuid(94bc0598-c3d2-11d3-bedf-00c04f612986),
  54. ]
  55. interface IWMGetSecureChannel : IUnknown
  56. {
  57. HRESULT GetPeerSecureChannelInterface(IWMSecureChannel **channel);
  58. }