Esempio n. 1
0
void TripleDESCryptor::Decrypt(const char* input, char* output, size_t length) const
{
	int n = 0;
	DES_cblock ivec = {0};
	DES_key_schedule ks1(ks1_);
	DES_key_schedule ks2(ks2_);
	DES_key_schedule ks3(ks3_);
	DES_ede3_cfb64_encrypt((const unsigned char*)input, (unsigned char*)output, length, &ks1, &ks2, &ks3, &ivec, &n, DES_DECRYPT);
}
Esempio n. 2
0
bool tryConnectLocal()
{
    KExtendedSocket ks1("::", "0", KExtendedSocket::ipv6Socket | KExtendedSocket::passiveSocket), ks2;
    const KInetSocketAddress *ksin1, *ksin2;

    printf("Attempting a loop-back connection\n\tTrying to listen on socket...");
    if(ks1.listen() != 0)
    {
        printf("failed\n\tReason was: %s\n", (const char *)KExtendedSocket::strError(ks1.status(), ks1.systemError()).local8Bit());
        return false;
    }

    ks1.setBlockingMode(false);
    ksin1 = (KInetSocketAddress *)ks1.localAddress();

    printf("succeeded\n\tWe have socket %s listening\n", (const char *)ksin1->pretty().local8Bit());

    ks2.setAddress("::1", ksin1->port());
    ks2.setSocketFlags(KExtendedSocket::ipv6Socket | KExtendedSocket::noResolve);

    printf("\tTrying to connect to that socket...");
    if(ks2.connect() != 0)
    {
        printf("failed\n\tReason was: %s\n", (const char *)KExtendedSocket::strError(ks2.status(), ks2.systemError()).local8Bit());
        return false;
    }

    printf("suceeded\n");

    ksin2 = dynamic_cast< const KInetSocketAddress * >(ks2.localAddress());
    printf(
        "\tIf you may flip to another terminal/xterm and run netstat to see\n"
        "\tthis connection. It should be a connection from %s to %s.\n"
        "\tPress any key to continue\n",
        (const char *)ksin2->pretty().local8Bit(), (const char *)ksin1->pretty().local8Bit());
    getchar();
    return true;
}