mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-09 15:49:25 +01:00
Remove LTCG and platform toolset, fix code style.
This commit is contained in:
parent
fede38985e
commit
b93d62dcb8
@ -63,7 +63,6 @@
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>Windows7.1SDK</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
@ -212,9 +211,6 @@
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Lib>
|
||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\include\polarssl\aes.h" />
|
||||
|
@ -151,7 +151,6 @@
|
||||
<Lib>
|
||||
<AdditionalLibraryDirectories>
|
||||
</AdditionalLibraryDirectories>
|
||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugFast|Win32'">
|
||||
@ -181,7 +180,6 @@
|
||||
<Lib>
|
||||
<AdditionalLibraryDirectories>
|
||||
</AdditionalLibraryDirectories>
|
||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugFast|x64'">
|
||||
|
@ -27,7 +27,7 @@
|
||||
CWII_IPC_HLE_Device_net_ssl::CWII_IPC_HLE_Device_net_ssl(u32 _DeviceID, const std::string& _rDeviceName)
|
||||
: IWII_IPC_HLE_Device(_DeviceID, _rDeviceName)
|
||||
{
|
||||
for(int i = 0; i < NET_SSL_MAXINSTANCES; ++i)
|
||||
for (int i = 0; i < NET_SSL_MAXINSTANCES; ++i)
|
||||
{
|
||||
memset(&_SSL[i], 0, sizeof(struct _SSL));
|
||||
}
|
||||
@ -38,7 +38,7 @@ CWII_IPC_HLE_Device_net_ssl::~CWII_IPC_HLE_Device_net_ssl()
|
||||
// Cleanup sessions
|
||||
for (int i = 0; i < NET_SSL_MAXINSTANCES; i++)
|
||||
{
|
||||
if(_SSL[i].active)
|
||||
if (_SSL[i].active)
|
||||
{
|
||||
ssl_close_notify(&_SSL[i].ctx);
|
||||
ssl_session_free(&_SSL[i].session);
|
||||
@ -62,7 +62,9 @@ int CWII_IPC_HLE_Device_net_ssl::getSSLFreeID()
|
||||
for (int i = 0; i < NET_SSL_MAXINSTANCES; i++)
|
||||
{
|
||||
if (!_SSL[i].active)
|
||||
{
|
||||
return i + 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -77,7 +79,9 @@ bool CWII_IPC_HLE_Device_net_ssl::Open(u32 _CommandAddress, u32 _Mode)
|
||||
bool CWII_IPC_HLE_Device_net_ssl::Close(u32 _CommandAddress, bool _bForce)
|
||||
{
|
||||
if (!_bForce)
|
||||
{
|
||||
Memory::Write_U32(0, _CommandAddress + 4);
|
||||
}
|
||||
m_Active = false;
|
||||
return true;
|
||||
}
|
||||
@ -111,33 +115,30 @@ _verify_certificate_callback (void *data, x509_cert *crt, int depth, int *flags)
|
||||
{
|
||||
char buf[1024];
|
||||
((void) data);
|
||||
std::string verify_info = "Verify requested for (Depth ";
|
||||
sprintf(buf, "%d", depth);
|
||||
verify_info += buf;
|
||||
verify_info += "):\n";
|
||||
std::string verify_info = StringFromFormat("Verify requested for (Depth %d):\n");
|
||||
|
||||
x509parse_cert_info( buf, sizeof( buf ) - 1, "", crt );
|
||||
verify_info += buf;
|
||||
|
||||
if( ( (*flags) & BADCERT_EXPIRED ) != 0 )
|
||||
if ( ( (*flags) & BADCERT_EXPIRED ) != 0 )
|
||||
verify_info += " ! server certificate has expired";
|
||||
|
||||
if( ( (*flags) & BADCERT_REVOKED ) != 0 )
|
||||
if ( ( (*flags) & BADCERT_REVOKED ) != 0 )
|
||||
verify_info += " ! server certificate has been revoked";
|
||||
|
||||
if( ( (*flags) & BADCERT_CN_MISMATCH ) != 0 )
|
||||
if ( ( (*flags) & BADCERT_CN_MISMATCH ) != 0 )
|
||||
verify_info += " ! CN mismatch\n";
|
||||
|
||||
if( ( (*flags) & BADCERT_NOT_TRUSTED ) != 0 )
|
||||
if ( ( (*flags) & BADCERT_NOT_TRUSTED ) != 0 )
|
||||
verify_info += " ! self-signed or not signed by a trusted CA\n";
|
||||
|
||||
if( ( (*flags) & BADCRL_NOT_TRUSTED ) != 0 )
|
||||
if ( ( (*flags) & BADCRL_NOT_TRUSTED ) != 0 )
|
||||
verify_info += " ! CRL not trusted\n";
|
||||
|
||||
if( ( (*flags) & BADCRL_EXPIRED ) != 0 )
|
||||
if ( ( (*flags) & BADCRL_EXPIRED ) != 0 )
|
||||
verify_info += " ! CRL expired\n";
|
||||
|
||||
if( ( (*flags) & BADCERT_OTHER ) != 0 )
|
||||
if ( ( (*flags) & BADCERT_OTHER ) != 0 )
|
||||
verify_info += " ! other (unknown) flag\n";
|
||||
|
||||
if ( ( *flags ) == 0 )
|
||||
@ -192,437 +193,435 @@ u32 CWII_IPC_HLE_Device_net_ssl::ExecuteCommandV(u32 _Parameter, SIOCtlVBuffer C
|
||||
|
||||
switch (_Parameter)
|
||||
{
|
||||
case IOCTLV_NET_SSL_NEW:
|
||||
{
|
||||
int verifyOption = Memory::Read_U32(_BufferOut);
|
||||
const char * hostname = (const char*) Memory::GetPointer(_BufferOut2);
|
||||
case IOCTLV_NET_SSL_NEW:
|
||||
{
|
||||
int verifyOption = Memory::Read_U32(_BufferOut);
|
||||
const char * hostname = (const char*) Memory::GetPointer(_BufferOut2);
|
||||
|
||||
int freeSSL = this->getSSLFreeID();
|
||||
if (freeSSL)
|
||||
int freeSSL = this->getSSLFreeID();
|
||||
if (freeSSL)
|
||||
{
|
||||
int sslID = freeSSL - 1;
|
||||
int ret = ssl_init(&_SSL[sslID].ctx);
|
||||
if (ret)
|
||||
{
|
||||
int sslID = freeSSL - 1;
|
||||
int ret = ssl_init(&_SSL[sslID].ctx);
|
||||
if(ret)
|
||||
{
|
||||
// Cleanup possibly dirty ctx
|
||||
memset(&_SSL[sslID].ctx, 0, sizeof(ssl_context));
|
||||
goto _SSL_NEW_ERROR;
|
||||
}
|
||||
|
||||
havege_init(&_SSL[sslID].hs);
|
||||
ssl_set_rng(&_SSL[sslID].ctx, havege_random, &_SSL[sslID].hs);
|
||||
|
||||
// For some reason we can't use TLSv1.2, v1.1 and below are fine!
|
||||
ssl_set_max_version(&_SSL[sslID].ctx, SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_2);
|
||||
|
||||
ssl_set_ciphersuites(&_SSL[sslID].ctx, ssl_default_ciphersuites);
|
||||
ssl_set_session(&_SSL[sslID].ctx, &_SSL[sslID].session);
|
||||
|
||||
ssl_set_verify(&_SSL[sslID].ctx, _verify_certificate_callback, NULL);
|
||||
|
||||
ssl_set_endpoint(&_SSL[sslID].ctx, SSL_IS_CLIENT);
|
||||
ssl_set_authmode(&_SSL[sslID].ctx, SSL_VERIFY_OPTIONAL);
|
||||
ssl_set_renegotiation(&_SSL[sslID].ctx, SSL_RENEGOTIATION_ENABLED);
|
||||
|
||||
memcpy(_SSL[sslID].hostname, hostname, min((int)BufferOutSize2, MAX_HOSTNAME_LEN));
|
||||
_SSL[sslID].hostname[MAX_HOSTNAME_LEN-1] = '\0';
|
||||
ssl_set_hostname(&_SSL[sslID].ctx, _SSL[sslID].hostname);
|
||||
|
||||
_SSL[sslID].active = true;
|
||||
Memory::Write_U32(freeSSL, _BufferIn);
|
||||
// Cleanup possibly dirty ctx
|
||||
memset(&_SSL[sslID].ctx, 0, sizeof(ssl_context));
|
||||
goto _SSL_NEW_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
havege_init(&_SSL[sslID].hs);
|
||||
ssl_set_rng(&_SSL[sslID].ctx, havege_random, &_SSL[sslID].hs);
|
||||
|
||||
// For some reason we can't use TLSv1.2, v1.1 and below are fine!
|
||||
ssl_set_max_version(&_SSL[sslID].ctx, SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_2);
|
||||
|
||||
ssl_set_ciphersuites(&_SSL[sslID].ctx, ssl_default_ciphersuites);
|
||||
ssl_set_session(&_SSL[sslID].ctx, &_SSL[sslID].session);
|
||||
|
||||
ssl_set_verify(&_SSL[sslID].ctx, _verify_certificate_callback, NULL);
|
||||
|
||||
ssl_set_endpoint(&_SSL[sslID].ctx, SSL_IS_CLIENT);
|
||||
ssl_set_authmode(&_SSL[sslID].ctx, SSL_VERIFY_OPTIONAL);
|
||||
ssl_set_renegotiation(&_SSL[sslID].ctx, SSL_RENEGOTIATION_ENABLED);
|
||||
|
||||
memcpy(_SSL[sslID].hostname, hostname, min((int)BufferOutSize2, MAX_HOSTNAME_LEN));
|
||||
_SSL[sslID].hostname[MAX_HOSTNAME_LEN-1] = '\0';
|
||||
ssl_set_hostname(&_SSL[sslID].ctx, _SSL[sslID].hostname);
|
||||
|
||||
_SSL[sslID].active = true;
|
||||
Memory::Write_U32(freeSSL, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SSL_NEW_ERROR:
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
}
|
||||
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_NEW (%d, %s) "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
verifyOption, hostname,
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SHUTDOWN:
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
ssl_close_notify(&_SSL[sslID].ctx);
|
||||
ssl_session_free(&_SSL[sslID].session);
|
||||
ssl_free(&_SSL[sslID].ctx);
|
||||
|
||||
x509_free(&_SSL[sslID].cacert);
|
||||
x509_free(&_SSL[sslID].clicert);
|
||||
|
||||
memset(&_SSL[sslID].ctx, 0, sizeof(ssl_context));
|
||||
memset(&_SSL[sslID].session, 0, sizeof(ssl_session));
|
||||
memset(&_SSL[sslID].hs, 0, sizeof(havege_state));
|
||||
memset(_SSL[sslID].hostname, 0, MAX_HOSTNAME_LEN);
|
||||
|
||||
_SSL[sslID].active = false;
|
||||
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SHUTDOWN "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETROOTCA:
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETROOTCA "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
|
||||
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
int ret = x509parse_crt_der(
|
||||
&_SSL[sslID].cacert,
|
||||
Memory::GetPointer(_BufferOut2),
|
||||
BufferOutSize2);
|
||||
|
||||
if (ret)
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
}
|
||||
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_NEW (%d, %s) "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
verifyOption, hostname,
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SHUTDOWN:
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
else
|
||||
{
|
||||
ssl_close_notify(&_SSL[sslID].ctx);
|
||||
ssl_session_free(&_SSL[sslID].session);
|
||||
ssl_free(&_SSL[sslID].ctx);
|
||||
|
||||
x509_free(&_SSL[sslID].cacert);
|
||||
x509_free(&_SSL[sslID].clicert);
|
||||
|
||||
memset(&_SSL[sslID].ctx, 0, sizeof(ssl_context));
|
||||
memset(&_SSL[sslID].session, 0, sizeof(ssl_session));
|
||||
memset(&_SSL[sslID].hs, 0, sizeof(havege_state));
|
||||
memset(_SSL[sslID].hostname, 0, MAX_HOSTNAME_LEN);
|
||||
|
||||
_SSL[sslID].active = false;
|
||||
|
||||
ssl_set_ca_chain(&_SSL[sslID].ctx, &_SSL[sslID].cacert, NULL, _SSL[sslID].hostname);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SHUTDOWN "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETROOTCA = %d", ret);
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETROOTCA:
|
||||
else
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETROOTCA "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
|
||||
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
int ret = x509parse_crt_der(
|
||||
&_SSL[sslID].cacert,
|
||||
Memory::GetPointer(_BufferOut2),
|
||||
BufferOutSize2);
|
||||
|
||||
if(ret)
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
ssl_set_ca_chain(&_SSL[sslID].ctx, &_SSL[sslID].cacert, NULL, _SSL[sslID].hostname);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETROOTCA = %d", ret);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
break;
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETBUILTINCLIENTCERT:
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINCLIENTCERT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETBUILTINCLIENTCERT:
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINCLIENTCERT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
std::string cert_base_path(File::GetUserPath(D_WIIUSER_IDX));
|
||||
int ret = x509parse_crtfile(&_SSL[sslID].clicert, (cert_base_path + "clientca.pem").c_str());
|
||||
int rsa_ret = x509parse_keyfile(&_SSL[sslID].rsa, (cert_base_path + "clientcakey.pem").c_str(), NULL);
|
||||
if(ret || rsa_ret)
|
||||
{
|
||||
x509_free(&_SSL[sslID].clicert);
|
||||
rsa_free(&_SSL[sslID].rsa);
|
||||
memset(&_SSL[sslID].clicert, 0, sizeof(x509_cert));
|
||||
memset(&_SSL[sslID].rsa, 0, sizeof(rsa_context));
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
ssl_set_own_cert(&_SSL[sslID].ctx, &_SSL[sslID].clicert, &_SSL[sslID].rsa);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINCLIENTCERT = (%d, %d)", ret, rsa_ret);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINCLIENTCERT invalid sslID = %d", sslID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_REMOVECLIENTCERT:
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_REMOVECLIENTCERT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
std::string cert_base_path(File::GetUserPath(D_WIIUSER_IDX));
|
||||
int ret = x509parse_crtfile(&_SSL[sslID].clicert, (cert_base_path + "clientca.pem").c_str());
|
||||
int rsa_ret = x509parse_keyfile(&_SSL[sslID].rsa, (cert_base_path + "clientcakey.pem").c_str(), NULL);
|
||||
if (ret || rsa_ret)
|
||||
{
|
||||
x509_free(&_SSL[sslID].clicert);
|
||||
rsa_free(&_SSL[sslID].rsa);
|
||||
memset(&_SSL[sslID].clicert, 0, sizeof(x509_cert));
|
||||
memset(&_SSL[sslID].rsa, 0, sizeof(rsa_context));
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
ssl_set_own_cert(&_SSL[sslID].ctx, &_SSL[sslID].clicert, &_SSL[sslID].rsa);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINCLIENTCERT = (%d, %d)", ret, rsa_ret);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINCLIENTCERT invalid sslID = %d", sslID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_REMOVECLIENTCERT:
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_REMOVECLIENTCERT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
|
||||
ssl_set_own_cert(&_SSL[sslID].ctx, NULL, NULL);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINCLIENTCERT invalid sslID = %d", sslID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETBUILTINROOTCA:
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
std::string cert_base_path(File::GetUserPath(D_WIIUSER_IDX));
|
||||
x509_free(&_SSL[sslID].clicert);
|
||||
rsa_free(&_SSL[sslID].rsa);
|
||||
memset(&_SSL[sslID].clicert, 0, sizeof(x509_cert));
|
||||
memset(&_SSL[sslID].rsa, 0, sizeof(rsa_context));
|
||||
|
||||
ssl_set_own_cert(&_SSL[sslID].ctx, NULL, NULL);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINCLIENTCERT invalid sslID = %d", sslID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETBUILTINROOTCA:
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
std::string cert_base_path(File::GetUserPath(D_WIIUSER_IDX));
|
||||
|
||||
int ret = x509parse_crtfile(&_SSL[sslID].cacert, (cert_base_path + "rootca.pem").c_str());
|
||||
if(ret)
|
||||
{
|
||||
x509_free(&_SSL[sslID].clicert);
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
ssl_set_ca_chain(&_SSL[sslID].ctx, &_SSL[sslID].cacert, NULL, _SSL[sslID].hostname);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINROOTCA = %d", ret);
|
||||
int ret = x509parse_crtfile(&_SSL[sslID].cacert, (cert_base_path + "rootca.pem").c_str());
|
||||
if (ret)
|
||||
{
|
||||
x509_free(&_SSL[sslID].clicert);
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINROOTCA "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_CONNECT:
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
_SSL[sslID].sockfd = Memory::Read_U32(_BufferOut2);
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_CONNECT socket = %d", _SSL[sslID].sockfd);
|
||||
ssl_set_bio(&_SSL[sslID].ctx, net_recv, &_SSL[sslID].sockfd, net_send, &_SSL[sslID].sockfd);
|
||||
ssl_set_ca_chain(&_SSL[sslID].ctx, &_SSL[sslID].cacert, NULL, _SSL[sslID].hostname);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_CONNECT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINROOTCA = %d", ret);
|
||||
}
|
||||
case IOCTLV_NET_SSL_DOHANDSHAKE:
|
||||
else
|
||||
{
|
||||
int ret = 0;
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETBUILTINROOTCA "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_CONNECT:
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
_SSL[sslID].sockfd = Memory::Read_U32(_BufferOut2);
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_CONNECT socket = %d", _SSL[sslID].sockfd);
|
||||
ssl_set_bio(&_SSL[sslID].ctx, net_recv, &_SSL[sslID].sockfd, net_send, &_SSL[sslID].sockfd);
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_CONNECT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_DOHANDSHAKE:
|
||||
{
|
||||
int ret = 0;
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
ret = ssl_handshake(&_SSL[sslID].ctx);
|
||||
switch (ret)
|
||||
{
|
||||
case 0:
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_READ:
|
||||
Memory::Write_U32(SSL_ERR_RAGAIN, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_WRITE:
|
||||
Memory::Write_U32(SSL_ERR_WAGAIN, _BufferIn);
|
||||
break;
|
||||
default:
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_DOHANDSHAKE = (%d) "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
ret,
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_WRITE:
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
int ret = ssl_write( &_SSL[sslID].ctx, Memory::GetPointer(_BufferOut2), BufferOutSize2);
|
||||
|
||||
File::IOFile("ssl_write.bin", "ab").WriteBytes(Memory::GetPointer(_BufferOut2), BufferOutSize2);
|
||||
if (ret >= 0)
|
||||
{
|
||||
// Return bytes written or SSL_ERR_ZERO if none
|
||||
Memory::Write_U32((ret == 0) ? SSL_ERR_ZERO : ret, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = ssl_handshake(&_SSL[sslID].ctx);
|
||||
switch (ret)
|
||||
{
|
||||
case 0:
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_READ:
|
||||
Memory::Write_U32(SSL_ERR_RAGAIN, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_WRITE:
|
||||
Memory::Write_U32(SSL_ERR_WAGAIN, _BufferIn);
|
||||
break;
|
||||
default:
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_READ:
|
||||
Memory::Write_U32(SSL_ERR_RAGAIN, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_WRITE:
|
||||
Memory::Write_U32(SSL_ERR_WAGAIN, _BufferIn);
|
||||
break;
|
||||
default:
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_DOHANDSHAKE = (%d) "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
ret,
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_WRITE:
|
||||
else
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
int ret = ssl_write( &_SSL[sslID].ctx, Memory::GetPointer(_BufferOut2), BufferOutSize2);
|
||||
|
||||
File::IOFile("ssl_write.bin", "ab").WriteBytes(Memory::GetPointer(_BufferOut2), BufferOutSize2);
|
||||
if(ret >= 0)
|
||||
{
|
||||
// Return bytes written or SSL_ERR_ZERO if none
|
||||
Memory::Write_U32((ret == 0) ? SSL_ERR_ZERO : ret, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (ret)
|
||||
{
|
||||
case POLARSSL_ERR_NET_WANT_READ:
|
||||
Memory::Write_U32(SSL_ERR_RAGAIN, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_WRITE:
|
||||
Memory::Write_U32(SSL_ERR_WAGAIN, _BufferIn);
|
||||
break;
|
||||
default:
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_WRITE "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
WARN_LOG(WII_IPC_SSL, "%s", Memory::GetPointer(_BufferOut2));
|
||||
break;
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
case IOCTLV_NET_SSL_READ:
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_WRITE "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
WARN_LOG(WII_IPC_SSL, "%s", Memory::GetPointer(_BufferOut2));
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_READ:
|
||||
{
|
||||
|
||||
int ret = 0;
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
int ret = 0;
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
ret = ssl_read( &_SSL[sslID].ctx, Memory::GetPointer(_BufferIn2), BufferInSize2);
|
||||
if (ret > 0)
|
||||
{
|
||||
ret = ssl_read( &_SSL[sslID].ctx, Memory::GetPointer(_BufferIn2), BufferInSize2);
|
||||
if (ret > 0)
|
||||
{
|
||||
File::IOFile("ssl_read.bin", "ab").WriteBytes(Memory::GetPointer(_BufferIn2), ret);
|
||||
}
|
||||
|
||||
if(ret >= 0)
|
||||
{
|
||||
// Return bytes read or SSL_ERR_ZERO if none
|
||||
Memory::Write_U32((ret == 0) ? SSL_ERR_ZERO : ret, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (ret)
|
||||
{
|
||||
case POLARSSL_ERR_NET_WANT_READ:
|
||||
Memory::Write_U32(SSL_ERR_RAGAIN, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_WRITE:
|
||||
Memory::Write_U32(SSL_ERR_WAGAIN, _BufferIn);
|
||||
break;
|
||||
default:
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
File::IOFile("ssl_read.bin", "ab").WriteBytes(Memory::GetPointer(_BufferIn2), ret);
|
||||
}
|
||||
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_READ(%d)"
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
ret,
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETROOTCADEFAULT:
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
if (ret >= 0)
|
||||
{
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
// Return bytes read or SSL_ERR_ZERO if none
|
||||
Memory::Write_U32((ret == 0) ? SSL_ERR_ZERO : ret, _BufferIn);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
switch (ret)
|
||||
{
|
||||
case POLARSSL_ERR_NET_WANT_READ:
|
||||
Memory::Write_U32(SSL_ERR_RAGAIN, _BufferIn);
|
||||
break;
|
||||
case POLARSSL_ERR_NET_WANT_WRITE:
|
||||
Memory::Write_U32(SSL_ERR_WAGAIN, _BufferIn);
|
||||
break;
|
||||
default:
|
||||
Memory::Write_U32(SSL_ERR_FAILED, _BufferIn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETROOTCADEFAULT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETCLIENTCERTDEFAULT:
|
||||
else
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETCLIENTCERTDEFAULT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_READ(%d)"
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
ret,
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETROOTCADEFAULT:
|
||||
{
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
ERROR_LOG(WII_IPC_SSL, "%i "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_Parameter,
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETROOTCADEFAULT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
case IOCTLV_NET_SSL_SETCLIENTCERTDEFAULT:
|
||||
{
|
||||
WARN_LOG(WII_IPC_SSL, "IOCTLV_NET_SSL_SETCLIENTCERTDEFAULT "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
|
||||
int sslID = Memory::Read_U32(_BufferOut) - 1;
|
||||
if (SSLID_VALID(sslID))
|
||||
{
|
||||
Memory::Write_U32(SSL_OK, _BufferIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::Write_U32(SSL_ERR_ID, _BufferIn);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
ERROR_LOG(WII_IPC_SSL, "%i "
|
||||
"BufferIn: (%08x, %i), BufferIn2: (%08x, %i), "
|
||||
"BufferIn3: (%08x, %i), BufferOut: (%08x, %i), "
|
||||
"BufferOut2: (%08x, %i), BufferOut3: (%08x, %i)",
|
||||
_Parameter,
|
||||
_BufferIn, BufferInSize, _BufferIn2, BufferInSize2,
|
||||
_BufferIn3, BufferInSize3, _BufferOut, BufferOutSize,
|
||||
_BufferOut2, BufferOutSize2, _BufferOut3, BufferOutSize3);
|
||||
break;
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user