Descifre la clave del perfil WLAN WLAN usando CryptUnprotectData

Estoy tratando de descifrar la clave del perfil WEP usandoCryptUnprotectData. La forma en que obtuve la clave del perfil es mediante la exportación del perfil mediante netsh.

netsh wlan export profile name="MyWEP" folder="./"

Por ahora, copié manualmente el material clave del archivo .xml generado por el comando netsh a mi programa. Y el camino, estoy descifrando es -

DATA_BLOB DataOut, DataVerify;
DataOut.cbData = encryptData.length();
DataOut.pbData = (BYTE*)("I_Manually_Copy_The_WEP_Key_Here");

if (CryptUnprotectData( &DataOut,
                        NULL,
                        NULL,
                        NULL,
                        NULL,
                        0,
                        &DataVerify))
{
    printf("The decrypted data is: %s\n", DataVerify.pbData);
}
else
{
    printf("Failed. Error Code: %d", GetLastError());
}

Pero estoy recibiendo el código de error13 citando datos no válidos. Qué estoy haciendo mal ? En Win 7 y más tarde, puedo usar directamenteWlanGetProfile con el parametroWLAN_PROFILE_GET_PLAINTEXT_KEY . Pero tengoNO opción enVista que utilizar la función CryptUnprotectData. He visto publicaciones similaresaquí, aquí pero no obtuve mucha información útil. Además, estoy usando el mismo sistema con las mismas credenciales de inicio de sesión del usuario. ¿Alguien podría por favor sugerirme cómo proceder?

PD: He publicado la misma pregunta en los foros de Windows Desktop SDK, pero todavía no tengo respuesta. Probando mi suerte en SO.

Respuestas a la pregunta(1)

Su respuesta a la pregunta