@@ -694,65 +694,30 @@ proxy_stat proxy_handle_sign_message(
694694}
695695
696696proxy_stat proxy_handle_channel_update_sig (
697- struct bitcoin_blkid *chain_hash,
698- struct short_channel_id *scid,
699- u32 timestamp,
700- u8 message_flags,
701- u8 channel_flags,
702- u16 cltv_expiry_delta,
703- struct amount_msat *htlc_minimum,
704- u32 fee_base_msat,
705- u32 fee_proportional_mill,
706- struct amount_msat *htlc_maximum,
697+ u8 *channel_update,
707698 secp256k1_ecdsa_signature *o_sig)
708699{
709700 status_debug (
710701 " %s:%d %s self_id=%s "
711- " chain_hash=%s scid=%" PRIu64 " timestamp=%u "
712- " message_flags=0x%x channel_flags=0x%x "
713- " cltv_expiry_delta=%ud htlc_minimum=%" PRIu64 " "
714- " fee_base_msat=%u fee_proportional_mill=%u "
715- " htlc_maximum=%" PRIu64 " " ,
702+ " channel_update=%s" ,
716703 __FILE__, __LINE__, __FUNCTION__,
717704 dump_node_id (&self_id).c_str (),
718- dump_hex (chain_hash->shad .sha .u .u8 ,
719- sizeof (chain_hash->shad .sha .u .u8 )).c_str (),
720- scid->u64 ,
721- timestamp,
722- static_cast <u32 >(message_flags),
723- static_cast <u32 >(channel_flags),
724- static_cast <u32 >(cltv_expiry_delta),
725- htlc_minimum->millisatoshis ,
726- fee_base_msat,
727- fee_proportional_mill,
728- htlc_maximum->millisatoshis
729- );
705+ dump_hex (channel_update, tal_count (channel_update)).c_str ());
706+
707+ /* Skip the portion of the channel_update that we don't sign */
708+ size_t offset = 2 + 64 ; /* sizeof(type) + sizeof(signature) */
709+ size_t cusz = tal_count (channel_update);
730710
731711 last_message = " " ;
732712 SignChannelUpdateRequest req;
733713 marshal_node_id (&self_id, req.mutable_self_node_id ());
734- req.set_chain_hash ((const char *) chain_hash->shad .sha .u .u8 ,
735- sizeof (chain_hash->shad .sha .u .u8 ));
736- req.set_short_channel_id (scid->u64 );
737- req.set_timestamp (timestamp);
738- req.set_message_flags (static_cast <u32 >(message_flags));
739- req.set_channel_flags (static_cast <u32 >(channel_flags));
740- req.set_cltv_expiry_delta (static_cast <u32 >(cltv_expiry_delta));
741- req.set_htlc_minimum (htlc_minimum->millisatoshis );
742- req.set_fee_base_msat (fee_base_msat);
743- req.set_fee_proportional_mill (fee_proportional_mill);
744- req.set_htlc_maximum (htlc_maximum->millisatoshis );
714+ req.set_channel_update (channel_update + offset, cusz - offset);
745715
746716 ClientContext context;
747717 SignChannelUpdateReply rsp;
748718 Status status = stub->SignChannelUpdate (&context, req, &rsp);
749719 if (status.ok ()) {
750- // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
751- #if 0
752720 output_ecdsa_signature (rsp.signature (), o_sig);
753- #else
754- memset (o_sig->data , ' \0 ' , sizeof (o_sig->data ));
755- #endif
756721 status_debug (" %s:%d %s self_id=%s sig=%s" ,
757722 __FILE__, __LINE__, __FUNCTION__,
758723 dump_node_id (&self_id).c_str (),
@@ -1005,50 +970,6 @@ proxy_stat proxy_handle_cannouncement_sig(
1005970 }
1006971}
1007972
1008- proxy_stat proxy_handle_sign_node_announcement (
1009- u8 *node_announcement,
1010- secp256k1_ecdsa_signature *o_sig)
1011- {
1012- status_debug (
1013- " %s:%d %s self_id=%s ann=%s" ,
1014- __FILE__, __LINE__, __FUNCTION__,
1015- dump_node_id (&self_id).c_str (),
1016- dump_hex (node_announcement,
1017- tal_count (node_announcement)).c_str ()
1018- );
1019-
1020- last_message = " " ;
1021- SignNodeAnnouncementRequest req;
1022- marshal_node_id (&self_id, req.mutable_self_node_id ());
1023- req.set_node_announcement (node_announcement,
1024- tal_count (node_announcement));
1025-
1026- ClientContext context;
1027- SignNodeAnnouncementReply rsp;
1028- Status status = stub->SignNodeAnnouncement (&context, req, &rsp);
1029- if (status.ok ()) {
1030- // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
1031- #if 0
1032- output_ecdsa_signature(rsp.signature(), o_sig);
1033- #else
1034- memset (o_sig->data , ' \0 ' , sizeof (o_sig->data ));
1035- #endif
1036- status_debug (" %s:%d %s self_id=%s node_sig=%s bitcoin_sig=%s" ,
1037- __FILE__, __LINE__, __FUNCTION__,
1038- dump_node_id (&self_id).c_str (),
1039- dump_secp256k1_ecdsa_signature (o_sig).c_str ());
1040- last_message = " success" ;
1041- return PROXY_OK;
1042- } else {
1043- status_unusual (" %s:%d %s: self_id=%s %s" ,
1044- __FILE__, __LINE__, __FUNCTION__,
1045- dump_node_id (&self_id).c_str (),
1046- status.error_message ().c_str ());
1047- last_message = status.error_message ();
1048- return map_status (status);
1049- }
1050- }
1051-
1052973proxy_stat proxy_handle_sign_local_htlc_tx (
1053974 struct bitcoin_tx *tx,
1054975 u64 commit_num,
@@ -1378,4 +1299,48 @@ proxy_stat proxy_handle_check_future_secret(
13781299 }
13791300}
13801301
1302+ proxy_stat proxy_handle_sign_node_announcement (
1303+ u8 *node_announcement,
1304+ secp256k1_ecdsa_signature *o_sig)
1305+ {
1306+ status_debug (
1307+ " %s:%d %s self_id=%s ann=%s" ,
1308+ __FILE__, __LINE__, __FUNCTION__,
1309+ dump_node_id (&self_id).c_str (),
1310+ dump_hex (node_announcement,
1311+ tal_count (node_announcement)).c_str ()
1312+ );
1313+
1314+ last_message = " " ;
1315+ SignNodeAnnouncementRequest req;
1316+ marshal_node_id (&self_id, req.mutable_self_node_id ());
1317+ req.set_node_announcement (node_announcement,
1318+ tal_count (node_announcement));
1319+
1320+ ClientContext context;
1321+ SignNodeAnnouncementReply rsp;
1322+ Status status = stub->SignNodeAnnouncement (&context, req, &rsp);
1323+ if (status.ok ()) {
1324+ // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
1325+ #if 0
1326+ output_ecdsa_signature(rsp.signature(), o_sig);
1327+ #else
1328+ memset (o_sig->data , ' \0 ' , sizeof (o_sig->data ));
1329+ #endif
1330+ status_debug (" %s:%d %s self_id=%s node_sig=%s bitcoin_sig=%s" ,
1331+ __FILE__, __LINE__, __FUNCTION__,
1332+ dump_node_id (&self_id).c_str (),
1333+ dump_secp256k1_ecdsa_signature (o_sig).c_str ());
1334+ last_message = " success" ;
1335+ return PROXY_OK;
1336+ } else {
1337+ status_unusual (" %s:%d %s: self_id=%s %s" ,
1338+ __FILE__, __LINE__, __FUNCTION__,
1339+ dump_node_id (&self_id).c_str (),
1340+ status.error_message ().c_str ());
1341+ last_message = status.error_message ();
1342+ return map_status (status);
1343+ }
1344+ }
1345+
13811346} /* extern "C" */
0 commit comments