======================== Cipher: 1) Password Setting, only used to lock the LOCAL message to avoid open without authentication! 2) Blowfish encryption/decryption used to: Blowfish with key(16KB) imported from PC via RSA, encrypt message if "Seal" box checked when sending message! IPMSG_RSA_1024 && IPMSG_BLOWFISH_128 both on Calling functions from MS library, pCryptImportKey & pCryptGenRandom
(From PROT_ENG.TXT) (Encrypted message)After a sender creates a common key that is supported both sender and receiver, a common key can encrypt a message. In addition, a receiver's public key encrypts the common key.
If [Seal] is checked, it will be sealed message. If [Lock] is checked, it will be locked message. The receiver must use *receiver's own* password to open a locked message.
- Password for Lock and Seal is saved in registry with encording. ******************************************************************* * If you forget the password, remove it in the following registry * * key. \\HKEY_CURRENT_USER\Software\HSTools\IPMsgEng\PasswordStr * *******************************************************************
Received locked msg already decrypted in the memory, user click the "Open" button, enter the receiver's own local password, check it against the former saved one:
MiscDlg.cpp : CheckPassword(cfg->PasswordStr, buf)) --> MakePassword(inputPasswd, buf); cfg->PasswordStr already *almost PLAIN* password string from registry, compare it with user input password.
Cipher:
1) Password Setting, only used to lock the LOCAL message to avoid open without authentication!
2) Blowfish encryption/decryption used to:
Blowfish with key(16KB) imported from PC via RSA, encrypt message if "Seal" box checked when sending message!
IPMSG_RSA_1024 && IPMSG_BLOWFISH_128 both on
Calling functions from MS library, pCryptImportKey & pCryptGenRandom
(From PROT_ENG.TXT)
(Encrypted message)After a sender creates a common key that is
supported both sender and receiver, a common key can encrypt a message.
In addition, a receiver's public key encrypts the common key.
If [Seal] is checked, it will be sealed message.
If [Lock] is checked, it will be locked message. The receiver must
use *receiver's own* password to open a locked message.
- Password for Lock and Seal is saved in registry with encording.
*******************************************************************
* If you forget the password, remove it in the following registry *
* key. \\HKEY_CURRENT_USER\Software\HSTools\IPMsgEng\PasswordStr *
*******************************************************************
Received locked msg already decrypted in the memory, user click the "Open" button, enter the receiver's own local password, check it against the former saved one:
MiscDlg.cpp :
CheckPassword(cfg->PasswordStr, buf)) --> MakePassword(inputPasswd, buf);
cfg->PasswordStr already *almost PLAIN* password string from registry, compare it with user input password.
void MakePassword(const char *inputPasswd, char *outputPasswd)
{
while (*inputPasswd)
{
*outputPasswd++ = ((~*inputPasswd++) & 0x7f);//Not so complicated encryption!!!
}
*outputPasswd = 0;
}
===========Log ====
ipmsg.log
Normal content of chat or file trans/recv in the log file. (Locked received msg not logged! Locked sent msg logged!)
===Port ============
For example, using [ipmsg.exe 2426] command, you can contact only
people who are using 2426 port.