Loading ccsrc/Protocols/Pki/pki_layer.cc +4 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,10 @@ void pki_layer::sendMsg(const EtsiTs102941TypesAuthorizationValidation::Authoriz return; } // FIXME Encapsulate p_authorization_validation_request into EtsiTs102941Data first // Create the EtsiTs102941Data layer EtsiTs102941MessagesCa::EtsiTs102941Data etsi_ts_102941_data; etsi_ts_102941_data.content().authorizationValidationRequest() = p_authorization_validation_request; loggers::get_instance().log_msg("pki_layer::sendMsg: AuthorizationValidationRequest: ", etsi_ts_102941_data); OCTETSTRING authorization_validation_request; _etsi_ts102941_types_authorization_validation_request.encode(p_authorization_validation_request, authorization_validation_request); Loading LibIts @ ee052906 Compare b951e6f1 to ee052906 Original line number Diff line number Diff line Subproject commit b951e6f197f1fe65a99a0916cf63d6a98a506e09 Subproject commit ee0529068f3ecf75f6845029f10935668a70340d ttcn/TestCodec/TestCodec_Pki.ttcn +15 −21 Original line number Diff line number Diff line Loading @@ -673,13 +673,22 @@ module TestCodec_Pki { log("whole-v_hashedid8_ea_certificate= ", v_hashedid8_ea_certificate); // Create InnerEcResponse message f_generate_autorization_validation_response( f_generate_authorization_validation_response( 'DF0185451707BD702C957AB8B8AF827A6FBFBA7777723DDCA40CF6F58DAEA4E4'O, valueof(v_cert), valueof( m_certificate_subject_attributes( v_cert.toBeSigned.appPermissions, { { subjectPermissions := { all_ := NULL }, minChainLength := 1, chainLengthRange := 0, eeType := '00000000'B } }, v_cert.toBeSigned.id, v_cert.toBeSigned.validityPeriod, v_cert.toBeSigned.region, v_cert.toBeSigned.assuranceLevel ) ), v_authorization_validation_response ); // Build secured PKI message v_enc_msg := encvalue(m_etsiTs102941Data_v_authorization_validation_response(v_authorization_validation_response)); v_enc_msg := encvalue(m_etsiTs102941Data_authorization_validation_response(v_authorization_validation_response)); if (ischosen(v_cert_ts_a_ea.toBeSigned.encryptionKey.publicKey.eciesNistP256.compressed_y_0)) { v_ret := f_build_pki_secured_message(v_private_key_cert_iut_a_ea, valueof(m_signerIdentifier_digest(v_hashed_id8_cert_iut_a_ea)), int2oct(0, 8), v_cert_ts_a_ea.toBeSigned.encryptionKey.publicKey.eciesNistP256.compressed_y_0, 0, bit2oct(v_enc_msg), v_ieee1609dot2_signed_and_encrypted_data); } else { Loading Loading @@ -745,23 +754,8 @@ module TestCodec_Pki { if (v_result == 0) { log("Decoded authorization_validation_response: ", v_dec_authorization_validation_response); setverdict(pass, "Decoded succeed"); if (match(v_dec_inner_ec_response.content.enrolmentResponse, v_authorization_validation_response)) { if (match(v_dec_authorization_validation_response.content.authorizationValidationResponse, v_authorization_validation_response)) { setverdict(pass, "Decoded match succeed"); // Extract the new EA certificate v_cert := v_dec_inner_ec_response.content.enrolmentResponse.certificate; // Check signature v_tbs := encvalue(v_cert.toBeSigned); if (f_verifyWithEcdsaNistp256WithSha256( bit2oct(v_tbs), int2oct(11, 32), valueof(v_cert.signature_.ecdsaNistP256Signature.rSig.x_only) & valueof(v_cert.signature_.ecdsaNistP256Signature.sSig), v_publicKeyCompressed, v_compressedMode) == true) { setverdict(pass, "Check signature succeed"); } else { setverdict(fail, "Check signature failed"); stop; } } else { setverdict(fail, "Decoded match failed"); stop; Loading Loading
ccsrc/Protocols/Pki/pki_layer.cc +4 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,10 @@ void pki_layer::sendMsg(const EtsiTs102941TypesAuthorizationValidation::Authoriz return; } // FIXME Encapsulate p_authorization_validation_request into EtsiTs102941Data first // Create the EtsiTs102941Data layer EtsiTs102941MessagesCa::EtsiTs102941Data etsi_ts_102941_data; etsi_ts_102941_data.content().authorizationValidationRequest() = p_authorization_validation_request; loggers::get_instance().log_msg("pki_layer::sendMsg: AuthorizationValidationRequest: ", etsi_ts_102941_data); OCTETSTRING authorization_validation_request; _etsi_ts102941_types_authorization_validation_request.encode(p_authorization_validation_request, authorization_validation_request); Loading
LibIts @ ee052906 Compare b951e6f1 to ee052906 Original line number Diff line number Diff line Subproject commit b951e6f197f1fe65a99a0916cf63d6a98a506e09 Subproject commit ee0529068f3ecf75f6845029f10935668a70340d
ttcn/TestCodec/TestCodec_Pki.ttcn +15 −21 Original line number Diff line number Diff line Loading @@ -673,13 +673,22 @@ module TestCodec_Pki { log("whole-v_hashedid8_ea_certificate= ", v_hashedid8_ea_certificate); // Create InnerEcResponse message f_generate_autorization_validation_response( f_generate_authorization_validation_response( 'DF0185451707BD702C957AB8B8AF827A6FBFBA7777723DDCA40CF6F58DAEA4E4'O, valueof(v_cert), valueof( m_certificate_subject_attributes( v_cert.toBeSigned.appPermissions, { { subjectPermissions := { all_ := NULL }, minChainLength := 1, chainLengthRange := 0, eeType := '00000000'B } }, v_cert.toBeSigned.id, v_cert.toBeSigned.validityPeriod, v_cert.toBeSigned.region, v_cert.toBeSigned.assuranceLevel ) ), v_authorization_validation_response ); // Build secured PKI message v_enc_msg := encvalue(m_etsiTs102941Data_v_authorization_validation_response(v_authorization_validation_response)); v_enc_msg := encvalue(m_etsiTs102941Data_authorization_validation_response(v_authorization_validation_response)); if (ischosen(v_cert_ts_a_ea.toBeSigned.encryptionKey.publicKey.eciesNistP256.compressed_y_0)) { v_ret := f_build_pki_secured_message(v_private_key_cert_iut_a_ea, valueof(m_signerIdentifier_digest(v_hashed_id8_cert_iut_a_ea)), int2oct(0, 8), v_cert_ts_a_ea.toBeSigned.encryptionKey.publicKey.eciesNistP256.compressed_y_0, 0, bit2oct(v_enc_msg), v_ieee1609dot2_signed_and_encrypted_data); } else { Loading Loading @@ -745,23 +754,8 @@ module TestCodec_Pki { if (v_result == 0) { log("Decoded authorization_validation_response: ", v_dec_authorization_validation_response); setverdict(pass, "Decoded succeed"); if (match(v_dec_inner_ec_response.content.enrolmentResponse, v_authorization_validation_response)) { if (match(v_dec_authorization_validation_response.content.authorizationValidationResponse, v_authorization_validation_response)) { setverdict(pass, "Decoded match succeed"); // Extract the new EA certificate v_cert := v_dec_inner_ec_response.content.enrolmentResponse.certificate; // Check signature v_tbs := encvalue(v_cert.toBeSigned); if (f_verifyWithEcdsaNistp256WithSha256( bit2oct(v_tbs), int2oct(11, 32), valueof(v_cert.signature_.ecdsaNistP256Signature.rSig.x_only) & valueof(v_cert.signature_.ecdsaNistP256Signature.sSig), v_publicKeyCompressed, v_compressedMode) == true) { setverdict(pass, "Check signature succeed"); } else { setverdict(fail, "Check signature failed"); stop; } } else { setverdict(fail, "Decoded match failed"); stop; Loading