OpenSSL与Java椭圆曲线密钥的兼容性

OpenSSL与Java椭圆曲线密钥的兼容性,java,openssl,bouncycastle,spongycastle,Java,Openssl,Bouncycastle,Spongycastle,我有一个C应用程序,它必须生成椭圆曲线私钥,并将其导出到使用Spongycastle的Java应用程序中。我需要我的应用程序生成与Spongycastle完全相同的密钥,因此我在OpenSSL中使用与Spongycastle用于私钥导出的格式相同的格式,但由于任何原因,生成的密钥字节都不同。Spongycastle ECPrivateKey.getEncoded方法应该在DER编码中返回PKCS8 PrivateKeyInfo。我真的可以在OpenSSL中导入它。但是,当我将其导出回来时,密钥文

我有一个C应用程序,它必须生成椭圆曲线私钥,并将其导出到使用Spongycastle的Java应用程序中。我需要我的应用程序生成与Spongycastle完全相同的密钥,因此我在OpenSSL中使用与Spongycastle用于私钥导出的格式相同的格式,但由于任何原因,生成的密钥字节都不同。Spongycastle ECPrivateKey.getEncoded方法应该在DER编码中返回PKCS8 PrivateKeyInfo。我真的可以在OpenSSL中导入它。但是,当我将其导出回来时,密钥文件大小变小了2倍

示例密钥文件是

我使用以下命令行:

openssl pkcs8-topk8-INFORT DER-in ec.key-nocrypt-outform DER-out ec.p8

此命令行用于导入PKCS8椭圆曲线私钥并以相同格式导出。然而,ec.key文件是591字节,ec.p8文件是295字节,所以导入和导出的密钥或其格式明显不同。为什么?