"key" is the file containing the session password. It's 32 chars long, as specified. To RSA-encrypt the "key" file with target's pub key (from a cert) and output in base64: research 199% openssl rsautl -in key -inkey ../myca/test-cert.pem -encrypt -certin | openssl base64 -e -out key.enc To encrypt test-msg with the password: research 221% openssl enc -aes128 -salt -in test-msg -kfile key -out test-msg.enc -base64 Next put the key.enc stuff first, then a blank line, then test-msg.enc after with no blank line. We'll keep this all in the file test-msg.enc. To sign with John Black's private key: research 235% openssl sha1 test-msg.enc | openssl rsautl -sign -inkey ../myca/john-priv.pem | openssl base64 -e Now we take this signature and append it to test-msg.enc (with a blank line separating them again), and put the header and footer lines in. We get: -----BEGIN CSCI 4830 MESSAGE----- d3zV0zdJ8j6zYiFcFi9gGo/2yp5h2tL1uigynuUMrzpjSqNFubt9CGnRLgv9yiBJ RY9cTB5LoUNY81jgLuiCYrgMUMHMcgdyrMXJfjwqSFRo9J6S5Lum9mp9AZyvCvhH i/stbd0NPykOcSKFPC/bHkm5v1scl2knJ/Uln/4z49eEsFQI8j4kJ6C3ZXdW6FU2 8U5lV0SzNQSUaZVh0LsTDKsaXmsd/MIJ3J5p2FOW3GybJq1+mjbJY4/VlELPxaiV AheT98xHCihlIPTZMwx27wZUxsXv4FdSAsZuonCbD5P0G1101nDa33nFaOH1qfJh 1vSwl6nfj/+3eCLXfZyuyg== U2FsdGVkX1+Lmas3oIz+UFozh0mYy2hOvlu+OLOtHmciAcbvtuXJxg0xO5QWFZ5F johokZrwH2d1UwJbzXbec30CuCloaUfkk3axsZHdiMTRnzBmqE5JjPlaBBx4ylMv Q+EwpKTqweeW7GwtsEIy29IqZIi6+cKSKuHyDLjLc2j0gaaPhYl1FE9YrHVZXTCr /1QoWSI5Vphjdv2vyEmbpZP4lUa+bqdso/iV4yf4ovA= YwJFk+iGlPj6grSOMPkKyQJlC09EvgZa554sRawuSbtng97jAfs9YogQAdefY2r7 wD1PnON/DkGrR3FWOrJFjQpFrg8ZM73UMwNqm9VhbeHqaYx0PId48Xr2Z2lKFap5 f7lOJ+EGLzApS8V4U+pNgyQrAF/CJoKmKNEXj5gAZBaPIOO0MOm8BxsXXL03fuVr rv2eOcW7mwY/tzssLlUzYNS8YajjQTkp5DVVtAKcFcNQfCnGyMvb12edNB/ur3PH OpKojVgoWKUv80+TCoBGfVAZiHb4BxnsSC6gaf/xRrwftxlp2Wm92mo07JFsVdRp UE2bT/Xxzi4Nt8elsIPEZw== -----END CSCI 4830 MESSAGE-----