다음 코드는 C로, java 코드는 openssl digest different in c compared to java입니다.EVP_Sign 함수를 사용하여 서명을 계산하는 방법
EVP_MD_CTX md_ctx;
unsigned char sig_buf[4096];
/* Do the signature */
int err;
unsigned int sig_len;
String testSign = "c14N string ";
EVP_SignInit(&md_ctx, EVP_sha256());
EVP_SignUpdate(&md_ctx, testSign.c_str(), testSign.size());
sig_len = sizeof(sig_buf);
err = EVP_SignFinal(&md_ctx, sig_buf, &sig_len, privKey);
if (err != 1) {
perror("Error While generating Signature for Security Token");
return "Null Signature";
}
return calculateBase64(sig_buf,sig_len);
내가 직면하고 문제는 자바에 의해 계산 된 서명이 개인 키를 사용하여 수행해야합니다 내가 사용할 수 OpenSSL을에서 SSL 개체가 C. 다른 나옵니다이다.
또한 바로 다음 명령 줄은echo -n "String here" | openssl dgst -dss1 -sha256 -sign client.key |openssl base64
이 점에서 모든 방향이 도움이 감사 될 것이다 서명을 일치 생성 추가 할 수 있습니다.
이 자바 질문하는 C 질문 또는 C++ 질문인가? Java 코드는 어디에 있습니까? –
이것은 C/C++ 질문이며 자바 코드는 다음 질문에 대한 것입니다. http://stackoverflow.com/questions/13608286/openssl-digest-different-in-c-compared-to-java –
이것은인가? 더블, 이것은 닫혀 야합니다. –