Re: Use TPM from Crypto API

Antoine FERRON via python-win32 <[email protected]>
Newsgroups gmane.comp.python.windows
Message-ID <[email protected]>
On Nov 22 2020, at 8:14 pm, Tim Roberts <[email protected]> wrote:
> On Nov 22, 2020, at 4:16 AM, Antoine FERRON via python-win32 <[email protected]> wrote:
> >
> > Can you confirm that TPM "Microsoft Platform Crypto Provider" requires "CNG", and pywin32 is only "CAPI" capable ?
>
> This is not a Python question at all. Look at the MSDN documentation page for the CryptEnumProviders API. You’ll see that it is deprecated, and only accesses the base cryptographic provider and the enhanced cryptographic provider. Remember that pywin32 is, in almost every case, a relatively thin wrapper around the Windows APIs.

Well, not Python, but related to pywin32. So I understand that win32crypt.CryptEnumProviders in win32 is calling CryptEnumProvidersA (https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptenumprovidersa) which is deprecated (what I call "CAPI"), and I need NCryptEnumStorageProviders (https://docs.microsoft.com/en-us/windows/win32/api/ncrypt/nf-ncrypt-ncryptenumstorageproviders) (what I call "CNG"). So the win32 API is not a fit for this, because it wraps "old" crypto functions.
> > Anyway, do you have some ideas in mind to reach my goal ?
> The APIs from ncrypt.dll are not, as of yet, exposed in pywin32. You can certainly use ctypes to access them.

Yes, I can see 2 ways to reach my goal : one is ffi.dlopen("ncrypt.dll") or CDLL and provides the good ctypes, which can be not so easy (https://stackoverflow.com/questions/59818779/is-there-a-python-module-could-sign-and-verify-data-by-rsa-key-pair-from-certifi/59854465#comment106111779_59854465). the other is to build a small c++ app and call exe fro Python with subprocess.run std in/out. Also an intermediary is do a small c++ app/dll and use ffi to access it, or extend the Python with c++. This "hcrypt" helper maybe a good help (https://github.com/vladp72/hcrypt) for the second way.
> —
> Tim Roberts, [email protected]
> Providenza & Boekelheide, Inc.
Thanks for your time and help, appreciate.

> _______________________________________________
> python-win32 mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-win32

_______________________________________________
python-win32 mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-win32
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.