port: add security processing to bc_event()

add sad_process_auth() to bc_event() to check for authentication tlvs on
incoming messages. This processing happens after msg_post_recv().
However, if security is active, a duplicate message is allocated and
kept in network byte order to be used for icv calculation.

The standard proposes a security parameters database (SPD) to specify
policy limiting attributes as to which messages should authenticated but
this is a lot of overhead for a something that isn't too helpful. For
this patch, the only policy limiting attribute is the port. That is to
say, you can specify a spp (and corresponding Security Association) for
each port. When spp is set to -1, no security processing is done.

Signed-off-by: Clay Kaiser <Clay.Kaiser@ibm.com>
Reviewed-by: Erez Geva <ErezGeva2@gmail.com>
Reviewed-by: Miroslav Lichvar <mlichvar@redhat.com>
9 files changed
tree: c25e63d1ab0d58fb87a384e243264cc863f2ed04
  1. configs/
  2. .gitignore
  3. address.h
  4. as_capable.h
  5. bmc.c
  6. bmc.h
  7. clock.c
  8. clock.h
  9. clockadj.c
  10. clockadj.h
  11. clockcheck.c
  12. clockcheck.h
  13. CODING_STYLE.org
  14. config.c
  15. config.h
  16. contain.h
  17. COPYING
  18. ddt.h
  19. designated_fsm.c
  20. designated_fsm.h
  21. dm.h
  22. ds.h
  23. e2e_tc.c
  24. ether.h
  25. fault.c
  26. fault.h
  27. fd.h
  28. filter.c
  29. filter.h
  30. filter_private.h
  31. foreign.h
  32. fsm.c
  33. fsm.h
  34. hash.c
  35. hash.h
  36. hwstamp_ctl.8
  37. hwstamp_ctl.c
  38. incdefs.sh
  39. interface.c
  40. interface.h
  41. linreg.c
  42. linreg.h
  43. lstab.c
  44. lstab.h
  45. makefile
  46. mave.c
  47. mave.h
  48. missing.h
  49. mmedian.c
  50. mmedian.h
  51. monitor.c
  52. monitor.h
  53. msg.c
  54. msg.h
  55. mtab.h
  56. nmea.c
  57. nmea.h
  58. notification.h
  59. nsm.8
  60. nsm.c
  61. ntpshm.c
  62. ntpshm.h
  63. nullf.c
  64. nullf.h
  65. p2p_tc.c
  66. pdt.h
  67. phc.c
  68. phc.h
  69. phc2sys.8
  70. phc2sys.c
  71. phc_ctl.8
  72. phc_ctl.c
  73. pi.c
  74. pi.h
  75. pmc.8
  76. pmc.c
  77. pmc_agent.c
  78. pmc_agent.h
  79. pmc_common.c
  80. pmc_common.h
  81. port.c
  82. port.h
  83. port_private.h
  84. port_signaling.c
  85. power_profile.h
  86. pqueue.c
  87. pqueue.h
  88. print.c
  89. print.h
  90. ptp4l.8
  91. ptp4l.c
  92. raw.c
  93. raw.h
  94. README.org
  95. refclock_sock.c
  96. refclock_sock.h
  97. rtnl.c
  98. rtnl.h
  99. sad.c
  100. sad.h
  101. sad_gnupg.c
  102. sad_gnutls.c
  103. sad_nettle.c
  104. sad_openssl.c
  105. sad_private.h
  106. serial.c
  107. serial.h
  108. servo.c
  109. servo.h
  110. servo_private.h
  111. sk.c
  112. sk.h
  113. sock.c
  114. sock.h
  115. stats.c
  116. stats.h
  117. sysoff.c
  118. sysoff.h
  119. tc.c
  120. tc.h
  121. telecom.c
  122. timemaster.8
  123. timemaster.c
  124. tlv.c
  125. tlv.h
  126. tmv.h
  127. transport.c
  128. transport.h
  129. transport_private.h
  130. ts2phc.8
  131. ts2phc.c
  132. ts2phc.h
  133. ts2phc_generic_pps_source.c
  134. ts2phc_generic_pps_source.h
  135. ts2phc_nmea_pps_source.c
  136. ts2phc_nmea_pps_source.h
  137. ts2phc_phc_pps_source.c
  138. ts2phc_phc_pps_source.h
  139. ts2phc_pps_sink.c
  140. ts2phc_pps_sink.h
  141. ts2phc_pps_source.c
  142. ts2phc_pps_source.h
  143. ts2phc_pps_source_private.h
  144. tsproc.c
  145. tsproc.h
  146. tz.h
  147. tz2alt.8
  148. tz2alt.c
  149. udp.c
  150. udp.h
  151. udp6.c
  152. udp6.h
  153. uds.c
  154. uds.h
  155. unicast_client.c
  156. unicast_client.h
  157. unicast_fsm.c
  158. unicast_fsm.h
  159. unicast_service.c
  160. unicast_service.h
  161. util.c
  162. util.h
  163. version.c
  164. version.h
  165. version.sh