# CryptUnprotectData

```csharp
[DllImport("CRYPT32.dll", ExactSpelling = true, SetLastError = true)]
[DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
public static extern unsafe BOOL CryptUnprotectData(
    CRYPT_INTEGER_BLOB* pDataIn,
    [Optional] PWSTR* ppszDataDescr,
    [Optional] CRYPT_INTEGER_BLOB* pOptionalEntropy,
    [Optional] void* pvReserved,
    [Optional] CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct,
    uint dwFlags,
    CRYPT_INTEGER_BLOB* pDataOut);
```

[crypt\_integer\_blob](https://www.pinvoke.dev/cryptography/crypt_integer_blob "mention")

[cryptprotect\_promptstruct](https://www.pinvoke.dev/cryptography/cryptprotect_promptstruct "mention")

Valid `dwFlags`:

```csharp
public const uint CRYPTPROTECT_UI_FORBIDDEN = 1U;
public const uint CRYPTPROTECT_VERIFY_PROTECTION = 64U;
```
