Format of finshed message when the cipher selected is “TLS_ECDH_ECDSA_WITH_NULL_SHA”

i wanted to understand difference in the “Finished message” when different cipher site selected with encryption and with out encryption.

I am able to find the format of Finished message when the selected cipher suite includes encryption as below.

when the selected cipher suite is :-“TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA”

Finished message:- Record layer header+Encryption initialization vector+Encrypted data+Handshake header+Verify data

when the selected cipher suite doesn’t have encryption involved :-“TLS_ECDH_ECDSA_WITH_NULL_SHA”. Finished message:- Record layer header+Handshake header+Verify data

please let me know if my understanding is correct ? if not please let me know how the format looks like.

Does adding more letters provide added security compared to a standard substitution cipher?

Let’s say that a substitution cipher had 52 symbols instead of 26. For this, we would include all lower case and upper case letters. This creates a key space of 52! wehere the cipher text can contain both lowercase and uppercase letters. Would this provide more security to a standard substitution cipher?

I would say yes because it’s an extra amount of symbols one would have to use and thus creating more options of how many keys can exist. However, I am doubtful because It’s still just letters being used. Can anyone explain?

How can I distribute highly confidential keys for a symmetric cipher?

Say I want to exchange a key with someone for a symmetric cipher (say AES) without meeting them in person. What would be the most secure way to do this over the Internet? My first instinct would be using a custom RSA channel over HTTPS to provide the most security.
I need the most future-proof method possible. (keep in mind this only needs to be done once, so even an “insane” method can be considered an answer.)

How does the “TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256” cipher suite work with RSA Signature Algorithm during TLS communication?

enter image description hereI see that facebook using ECC public key but the CA signed using RSA private key.While connecting to facebook it uses TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256. Here the Authentication algorithm is ECDSA.How is ECDSA compatible with RSA? Or can the Signature algorithm be anything as long as the Public key is compatible(in this case ECC).

Ensuring all network services on a device use strong TLS cipher suites

(This is hypothetical, but based on a real-life problem I’ve had)


I am developing an (embedded) device which includes a few exposed network services. I’m responsible for security, not developing these services, so I don’t know how they’re built.

I do some testing (send targeted Client Hello messages to the device services with specific cipher suites) and find that some of these services accept weak TLS cipher suites.


I am now tasked with addressing this problem, preferably by fixing the problem as far back in the stack as possible (e.g. I would prefer to avoid having to look at the code/configuration of each individual application and would instead like to fix it at the system level).


  1. I know that OpenSSL is the only crypto library/program in use on the system.

Now some questions:

  1. What options do I have for preventing network services from allowing weak TLS ciphers? (e.g. change OpenSSL itself, change OpenSSL configuration files, change OS configuration, etc.)

  2. Which options are reasonably “safe”? e.g. I suppose I could modify the OpenSSL code and remove every mention of these cipher suites, recompile, and integrate. This would prevent applications from sending the suites (even if they ask for them). However, this seems like a dangerous solution and difficult to maintain long term.

  3. Is this even possible, or do I necessarily need to look at each service?

Decode/decrypt Cipher text of unknown custom algorithm

I have a university assignment by the professor to decode unknown encoding schemes but i haven’t able to decode. The message is sample of communication between Indian external affairs to different country’s embassies. The professor hint first few Plain text characters as:


and also hint the plain text charters length, as Ciphertext hexadecimal charter are 3296, the Plain text characters length will be 2824(hex char)

The Cipher text is(with egm extension):


Disable support for static key cipher suites

I have a requirement to disable in the windows 7 computers of the company the support for static key cipher suites.

I have searched and found that this registry key, holds the allowed cipher suites, in a value called Functions.


I have searched about how to identify the static suites in order to remove them from the list. but I haven’t found anything.

My question is what I need to search in the ciphers string, to remove the support for static keys.


Caesar Cipher in C++

So I am pretty new to programming, trying to teach myself C++. I thought I would try to create a program based on the Caesar Cipher. The program I have will work fine as long as there are no spaces in the message I enter. So essentially I can encrypt a single word, but not a sentence. The program crashes on me if I try to input more than one word. How would I go about encrypting a sentence? Been working on this for a little while now to try and figure it out myself, but have yet to make progress on encrypting or decrypting more than a single word. Here is my code:

#include <iostream> #include <string> using namespace std; int main() {  string mess; char typ,rep; int rot, s; cout << "Welcome to Caesar Cipher!"; for (int x = 0; x < 1000; x++) {     cout << "Would you like to [E]ncrypt or [D]ecrypt: ";     cin >> typ;     switch(typ) {     case 'E':     case 'e':         cout << "Enter the message you would like to encrypt: ";         cin >> mess;         cout << "Enter rot #: ";         cin >> rot;         s = mess.size();         for (int c = 0; c < s; c++) {             mess[c] = mess[c] + rot;         }         cout << "New message is: " << mess << endl;         break;     case 'D':     case 'd':         cout << "Enter the message you would like to decrypt: ";         cin >> mess;         for (int ct = 0; ct < s; ct++) {             mess[ct] = mess[ct] - rot;         }         cout << "New message is: " << mess << endl;         break;     default:         cout << "Not a valid option!" << endl;         break;     }     cout << "Repeat? [Y]es or [N]o: ";     cin >> rep;     if (rep == 'Y' || rep == 'y')         x += 1;     else         x += 1000; }  return 0; }