<div dir="ltr"><div>Hi,</div><div>I am playing with openssl 1.0.2a - specifically CMS support for ECC. </div><div>But what I think should work doesn't.</div><div>Commands used and parsed data shown.</div><div>(I gave an RSA example as a known good working example)</div><div><br></div><div>./openssl version</div><div>OpenSSL 1.0.2a 19 Mar 2015</div><div><br></div><div>echo -n 12345678123456781234567812345678 > sess.txt # 32 byte plaintext</div><div><br></div><div><br></div><div>#EC fails</div><div>================</div><div>  ./openssl ecparam -name prime192v1 -genkey -out ecc.key</div><div>  ./openssl req -x509 -new -key ecc.key -out ecc.crt</div><div>  ./openssl cms -encrypt -in sess.txt -out encsess.bin -outform PEM ecc.crt</div><div>  ./openssl cms -decrypt -in encsess.bin -out decsess.txt -inform PEM -inkey ecc.key</div><div>Error decrypting CMS structure</div><div>error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:529:</div><div><br></div><div><br></div><div>EnvelopedData </div><div>----------------------</div><div><div>./openssl asn1parse -in encsess.bin <br></div><div>    0:d=0  hl=4 l= 312 cons: SEQUENCE          </div><div>    4:d=1  hl=2 l=   9 prim: OBJECT            :pkcs7-envelopedData</div><div>   15:d=1  hl=4 l= 297 cons: cont [ 0 ]        </div><div>   19:d=2  hl=4 l= 293 cons: SEQUENCE          </div><div>   23:d=3  hl=2 l=   1 prim: INTEGER           :02</div><div>   26:d=3  hl=3 l= 234 cons: SET               </div><div>   29:d=4  hl=3 l= 231 cons: cont [ 1 ]        </div><div>   32:d=5  hl=2 l=   1 prim: INTEGER           :03</div><div>   35:d=5  hl=2 l=  65 cons: cont [ 0 ]        </div><div>   37:d=6  hl=2 l=  63 cons: cont [ 1 ]        </div><div>   39:d=7  hl=2 l=   9 cons: SEQUENCE          </div><div>   41:d=8  hl=2 l=   7 prim: OBJECT            :id-ecPublicKey</div><div>   50:d=7  hl=2 l=  50 prim: BIT STRING        </div><div>  102:d=5  hl=2 l=  28 cons: SEQUENCE          </div><div>  104:d=6  hl=2 l=   9 prim: OBJECT            :dhSinglePass-stdDH-sha1kdf-scheme</div><div>  115:d=6  hl=2 l=  15 cons: SEQUENCE          </div><div>  117:d=7  hl=2 l=  11 prim: OBJECT            :id-smime-alg-CMS3DESwrap</div><div>  130:d=7  hl=2 l=   0 prim: NULL              </div><div>  132:d=5  hl=3 l= 128 cons: SEQUENCE          </div><div>  135:d=6  hl=2 l= 126 cons: SEQUENCE          </div><div>  137:d=7  hl=2 l=  82 cons: SEQUENCE          </div><div>  139:d=8  hl=2 l=  69 cons: SEQUENCE          </div><div>  141:d=9  hl=2 l=  11 cons: SET               </div><div>  143:d=10 hl=2 l=   9 cons: SEQUENCE          </div><div>  145:d=11 hl=2 l=   3 prim: OBJECT            :countryName</div><div>  150:d=11 hl=2 l=   2 prim: PRINTABLESTRING   :AU</div><div>  154:d=9  hl=2 l=  19 cons: SET               </div><div>  156:d=10 hl=2 l=  17 cons: SEQUENCE          </div><div>  158:d=11 hl=2 l=   3 prim: OBJECT            :stateOrProvinceName</div><div>  163:d=11 hl=2 l=  10 prim: UTF8STRING        :Some-State</div><div>  175:d=9  hl=2 l=  33 cons: SET               </div><div>  177:d=10 hl=2 l=  31 cons: SEQUENCE          </div><div>  179:d=11 hl=2 l=   3 prim: OBJECT            :organizationName</div><div>  184:d=11 hl=2 l=  24 prim: UTF8STRING        :Internet Widgits Pty Ltd</div><div>  210:d=8  hl=2 l=   9 prim: INTEGER           :C09819AB3ECC9A05</div><div>  221:d=7  hl=2 l=  40 prim: OCTET STRING      [HEX DUMP]:2511DF2DBEC0F758E8CE3F35ECDD84757DEEC011633478BF00C18226FEDCD19BE5ABECEB9A735F99</div><div>  263:d=3  hl=2 l=  51 cons: SEQUENCE          </div><div>  265:d=4  hl=2 l=   9 prim: OBJECT            :pkcs7-data</div><div>  276:d=4  hl=2 l=  20 cons: SEQUENCE          </div><div>  278:d=5  hl=2 l=   8 prim: OBJECT            :des-ede3-cbc</div><div>  288:d=5  hl=2 l=   8 prim: OCTET STRING      [HEX DUMP]:E924DA6FC08FC3AC</div><div>  298:d=4  hl=2 l=  16 prim: cont [ 0 ]        </div><div>cmadden@ubuntu:~/openssl-1.0.2a/apps$ </div></div><div><br></div><div><br></div><div><br></div><div>Private Key</div><div>----------------</div><div><div>cat ecc.key</div><div>-----BEGIN EC PARAMETERS-----</div><div>BggqhkjOPQMBAQ==</div><div>-----END EC PARAMETERS-----</div><div>-----BEGIN EC PRIVATE KEY-----</div><div>MF8CAQEEGM+L8hosGlnyrOjVsCfQ5kaj42XQ1182b6AKBggqhkjOPQMBAaE0AzIA</div><div>BMVGw0n/7hFdEkgi3wGOueh9P4FGBp1qL6ibDcaQUd9R6W+rFKM5LPnZ7awp2URt</div><div>sw==</div><div>-----END EC PRIVATE KEY-----</div></div><div><br></div><div><br></div><div>Public Key Cert</div><div>------------------------</div><div>./openssl asn1parse -in ecc.crt</div><div>    0:d=0  hl=4 l= 434 cons: SEQUENCE          </div><div>    4:d=1  hl=4 l= 359 cons: SEQUENCE          </div><div>    8:d=2  hl=2 l=   3 cons: cont [ 0 ]        </div><div>   10:d=3  hl=2 l=   1 prim: INTEGER           :02</div><div>   13:d=2  hl=2 l=   9 prim: INTEGER           :C09819AB3ECC9A05</div><div>   24:d=2  hl=2 l=  10 cons: SEQUENCE          </div><div>   26:d=3  hl=2 l=   8 prim: OBJECT            :ecdsa-with-SHA256</div><div>   36:d=2  hl=2 l=  69 cons: SEQUENCE          </div><div>   38:d=3  hl=2 l=  11 cons: SET               </div><div>   40:d=4  hl=2 l=   9 cons: SEQUENCE          </div><div>   42:d=5  hl=2 l=   3 prim: OBJECT            :countryName</div><div>   47:d=5  hl=2 l=   2 prim: PRINTABLESTRING   :AU</div><div>   51:d=3  hl=2 l=  19 cons: SET               </div><div>   53:d=4  hl=2 l=  17 cons: SEQUENCE          </div><div>   55:d=5  hl=2 l=   3 prim: OBJECT            :stateOrProvinceName</div><div>   60:d=5  hl=2 l=  10 prim: UTF8STRING        :Some-State</div><div>   72:d=3  hl=2 l=  33 cons: SET               </div><div>   74:d=4  hl=2 l=  31 cons: SEQUENCE          </div><div>   76:d=5  hl=2 l=   3 prim: OBJECT            :organizationName</div><div>   81:d=5  hl=2 l=  24 prim: UTF8STRING        :Internet Widgits Pty Ltd</div><div>  107:d=2  hl=2 l=  30 cons: SEQUENCE          </div><div>  109:d=3  hl=2 l=  13 prim: UTCTIME           :150326134803Z</div><div>  124:d=3  hl=2 l=  13 prim: UTCTIME           :150425134803Z</div><div>  139:d=2  hl=2 l=  69 cons: SEQUENCE          </div><div>  141:d=3  hl=2 l=  11 cons: SET               </div><div>  143:d=4  hl=2 l=   9 cons: SEQUENCE          </div><div>  145:d=5  hl=2 l=   3 prim: OBJECT            :countryName</div><div>  150:d=5  hl=2 l=   2 prim: PRINTABLESTRING   :AU</div><div>  154:d=3  hl=2 l=  19 cons: SET               </div><div>  156:d=4  hl=2 l=  17 cons: SEQUENCE          </div><div>  158:d=5  hl=2 l=   3 prim: OBJECT            :stateOrProvinceName</div><div>  163:d=5  hl=2 l=  10 prim: UTF8STRING        :Some-State</div><div>  175:d=3  hl=2 l=  33 cons: SET               </div><div>  177:d=4  hl=2 l=  31 cons: SEQUENCE          </div><div>  179:d=5  hl=2 l=   3 prim: OBJECT            :organizationName</div><div>  184:d=5  hl=2 l=  24 prim: UTF8STRING        :Internet Widgits Pty Ltd</div><div>  210:d=2  hl=2 l=  73 cons: SEQUENCE          </div><div>  212:d=3  hl=2 l=  19 cons: SEQUENCE          </div><div>  214:d=4  hl=2 l=   7 prim: OBJECT            :id-ecPublicKey</div><div>  223:d=4  hl=2 l=   8 prim: OBJECT            :prime192v1</div><div>  233:d=3  hl=2 l=  50 prim: BIT STRING        </div><div>  285:d=2  hl=2 l=  80 cons: cont [ 3 ]        </div><div>  287:d=3  hl=2 l=  78 cons: SEQUENCE          </div><div>  289:d=4  hl=2 l=  29 cons: SEQUENCE          </div><div>  291:d=5  hl=2 l=   3 prim: OBJECT            :X509v3 Subject Key Identifier</div><div>  296:d=5  hl=2 l=  22 prim: OCTET STRING      [HEX DUMP]:0414E7FF07F301CFA245981893B949E46A68EF4FD1B7</div><div>  320:d=4  hl=2 l=  31 cons: SEQUENCE          </div><div>  322:d=5  hl=2 l=   3 prim: OBJECT            :X509v3 Authority Key Identifier</div><div>  327:d=5  hl=2 l=  24 prim: OCTET STRING      [HEX DUMP]:30168014E7FF07F301CFA245981893B949E46A68EF4FD1B7</div><div>  353:d=4  hl=2 l=  12 cons: SEQUENCE          </div><div>  355:d=5  hl=2 l=   3 prim: OBJECT            :X509v3 Basic Constraints</div><div>  360:d=5  hl=2 l=   5 prim: OCTET STRING      [HEX DUMP]:30030101FF</div><div>  367:d=1  hl=2 l=  10 cons: SEQUENCE          </div><div>  369:d=2  hl=2 l=   8 prim: OBJECT            :ecdsa-with-SHA256</div><div>  379:d=1  hl=2 l=  57 prim: BIT STRING        </div><div><br></div><div><br></div><div><br></div><div><div>#RSA works</div><div>================<br></div><div>./openssl genrsa -out rsa.key 2048</div><div>./openssl req -x509 -new -key rsa.key -out rsa.crt</div><div>./openssl cms -encrypt -in sess.txt -out rsaencsess.bin -outform PEM rsa.crt</div><div>./openssl cms -decrypt -in rsaencsess.bin -out rsadecsess.txt -inform PEM -inkey rsa.key</div><div>#AOK.</div></div><div><br></div><div><br></div><div>thanks!</div></div>