[BACK]Return to innovations.html CVS log [TXT][DIR] Up to [local] / www

Diff for /www/innovations.html between version 1.77 and 1.78

version 1.77, 2019/05/27 22:55:20 version 1.78, 2019/05/31 13:10:10
Line 24 
Line 24 
 <h3>Concepts</h3>  <h3>Concepts</h3>
   
 <ul>  <ul>
     <li>      <li><a href="https://man.openbsd.org/ipsec.4">ipsec(4)</a>:
         <a href="https://man.openbsd.org/ipsec.4">ipsec(4)</a>:          Started by John Ioannidis, Angelos D. Keromytis, Niels Provos, and
         Started by John Ioannidis, Angelos D. Keromytis, Niels Provos, and          Niklas Hallqvist, imported February 20, 1997.  OpenBSD was the first
         Niklas Hallqvist, imported February 20, 1997.  OpenBSD was the first          free operating system to provide an IPSec stack.
         free operating system to provide an IPSec stack.      <li><a href="https://man.openbsd.org/inet6.4">inet6(4)</a>:
     </li>          First complete integration and adoption of IPv6 led by
     <li>          "Itojun" (Dr. Junichiro Hagino) [WIDE/KAME], Craig Metz [NRL], and
         <a href="https://man.openbsd.org/inet6.4">inet6(4)</a>:          Angelos D. Keromytis starting Jan 6, 1999.
         First complete integration and adoption of IPv6 led by          Almost fully operational Jun 6, 1999 during the
         "Itojun" (Dr. Junichiro Hagino) [WIDE/KAME], Craig Metz [NRL], and          <a href="hackathons.html">first OpenBSD hackathon</a>.
         Angelos D. Keromytis starting Jan 6, 1999.          OpenBSD 2.7.
         Almost fully operational Jun 6, 1999 during the      <li><strong>Privilege separation</strong>:
         <a href="hackathons.html">first OpenBSD hackathon</a>.          First implemented by
         OpenBSD 2.7.          <a href="http://www.citi.umich.edu/u/provos/ssh/privsep.html">Niels Provos</a>
     </li>          and Markus Friedl in OpenSSH in March 2002, released with OpenBSD 3.2.
     <li>          The concept is now used in many OpenBSD programs, for example
         <strong>Privilege separation</strong>:          <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>,
         First implemented by          <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>,
         <a href="http://www.citi.umich.edu/u/provos/ssh/privsep.html">Niels Provos</a>          <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>,
         and Markus Friedl in OpenSSH in March 2002, released with OpenBSD 3.2.          <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,
         The concept is now used in many OpenBSD programs, for example          <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,
         <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>,          <a href="https://man.openbsd.org/file.1">file(1)</a>,
         <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>,          <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>,
         <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>,          <a href="https://man.openbsd.org/iked.8">iked(8)</a>,
         <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,          <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,
         <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,          <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,
         <a href="https://man.openbsd.org/file.1">file(1)</a>,          <a href="https://man.openbsd.org/mountd.8">mountd(8)</a>,
         <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>,          <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,
         <a href="https://man.openbsd.org/iked.8">iked(8)</a>,          <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>,
         <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,          <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,
         <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,          <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,
         <a href="https://man.openbsd.org/mountd.8">mountd(8)</a>,          <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,
         <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,          <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>,
         <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>,          <a href="https://man.openbsd.org/relayd.8">relayd(8)</a>,
         <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,          <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,
         <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,          <a href="https://man.openbsd.org/script.1">script(1)</a>,
         <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,          <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,
         <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>,          <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a>,
         <a href="https://man.openbsd.org/relayd.8">relayd(8)</a>,          <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>,
         <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,          <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>,
         <a href="https://man.openbsd.org/script.1">script(1)</a>,          <a href="https://man.openbsd.org/xconsole.1">xconsole(1)</a>,
         <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,          <a href="https://man.openbsd.org/xdm.1">xdm(1)</a>,
         <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a>,          <a href="https://man.openbsd.org/Xserver.1">Xserver(1)</a>,
         <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>,          <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>,
         <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>,          <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>,
         <a href="https://man.openbsd.org/xconsole.1">xconsole(1)</a>,          etc.
         <a href="https://man.openbsd.org/xdm.1">xdm(1)</a>,      <li><strong>Privilege revocation</strong>:
         <a href="https://man.openbsd.org/Xserver.1">Xserver(1)</a>,          Related to the work on privilege separation, some programs were refactored
         <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>,          to drop privileges while holding onto a tricky resource such as a raw socket,
         <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>,          reserved port, or modification-locked bpf(4) descriptor,
         etc.          for example
     </li>          <a href="https://man.openbsd.org/ping.8">ping(8)</a>,
     <li>          <a href="https://man.openbsd.org/traceroute.8">traceroute(8)</a>,
         <strong>Privilege revocation</strong>:          etc.
         Related to the work on privilege separation, some programs were refactored      <li><strong>Stack protector</strong>:
         to drop privileges while holding onto a tricky resource such as a raw socket,          Developed since 2001 as "propolice" by Hiroaki Etoh. Integrated, and
         reserved port, or modification-locked bpf(4) descriptor,          implemented for additional hardware platforms, by Miod Vallat and Theo
         for example          de Raadt.  OpenBSD 3.3 was the first operating system to enable it
         <a href="https://man.openbsd.org/ping.8">ping(8)</a>,          systemwide by default.
         <a href="https://man.openbsd.org/traceroute.8">traceroute(8)</a>,      <li><strong>W^X</strong>:
         etc.          First used for sparc, sparc64, alpha, and hppa in OpenBSD 3.3.
     </li>          Strictly enforced by default since OpenBSD 6.0: a program can only
     <li>          violate it if the executable is marked with <code>PT_OPENBSD_WXNEEDED</code>
         <strong>Stack protector</strong>:          and it is located on a filesystem mounted with the <code>wxallowed</code>
         Developed since 2001 as "propolice" by Hiroaki Etoh. Integrated, and          <a href="https://man.openbsd.org/mount.8">mount(8)</a> option.
         implemented for additional hardware platforms, by Miod Vallat and Theo      <li><strong>GOT and PLT protection</strong> by ld.so:
         de Raadt.  OpenBSD 3.3 was the first operating system to enable it          first done as part of the W^X work in OpenBSD 3.3, by Dale Rahn and
         systemwide by default.          Theo de Raadt. The GOT and PLT regions are read-only outside of ld.so
     </li>          itself. Extended to the .init/.fini sections (constructors and
     <li>          destructors) in OpenBSD 3.4.
         <strong>W^X</strong>:      <li><strong>ASLR</strong>:
         First used for sparc, sparc64, alpha, and hppa in OpenBSD 3.3.          OpenBSD 3.4 was the first widely used operating system to
         Strictly enforced by default since OpenBSD 6.0: a program can only          provide it by default.
         violate it if the executable is marked with <code>PT_OPENBSD_WXNEEDED</code>      <li><a href="https://man.openbsd.org/gcc-local.1">gcc-local(1)</a>
         and it is located on a filesystem mounted with the <code>wxallowed</code>          __attribute__((__bounded__)) static analysis annotation
         <a href="https://man.openbsd.org/mount.8">mount(8)</a> option.          and checking mechanism:
     </li>          Started by Anil Madhavapeddy on June 26, 2003
     <li>          and ported to GCC 4 by Nicholas Marriott.
         <strong>GOT and PLT protection</strong> by ld.so:          First released with OpenBSD 3.4.
         first done as part of the W^X work in OpenBSD 3.3, by Dale Rahn and      <li><a href="https://man.openbsd.org/malloc.3">malloc(3)</a>
         Theo de Raadt. The GOT and PLT regions are read-only outside of ld.so          randomization implemented by Thierry Deval. Guard pages and randomized (delayed) free added by Ted Unangst.
         itself. Extended to the .init/.fini sections (constructors and          Reimplemented by <a href="papers/eurobsdcon2009/otto-malloc.pdf">Otto Moerbeek</a>
         destructors) in OpenBSD 3.4.          for OpenBSD 4.4.
     </li>      <li><strong>Position-independent executables (PIE)</strong>:
     <li>          OpenBSD 5.3 was the first widely used operating system to enable it
         <strong>ASLR</strong>:          globally by default, on seven hardware platforms.
         OpenBSD 3.4 was the first widely used operating system to          Implemented in November 2008 by
         provide it by default.          <a href="https://www.openbsd.org/papers/nycbsdcon08-pie/">Kurt Miller</a>
     </li>          and enabled by default by
     <li>          <a href="https://www.openbsd.org/papers/asiabsdcon2015-pie-slides.pdf">Pascal Stumpf</a>
         <a href="https://man.openbsd.org/gcc-local.1">gcc-local(1)</a>          in August 2012.
         __attribute__((__bounded__)) static analysis annotation      <li><strong>Random-data memory</strong>:
         and checking mechanism:          the ability to specify that a variable should be initialized
         Started by Anil Madhavapeddy on June 26, 2003  
         and ported to GCC 4 by Nicholas Marriott.  
         First released with OpenBSD 3.4.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/malloc.3">malloc(3)</a>  
         randomization implemented by Thierry Deval. Guard pages and randomized (delayed) free added by Ted Unangst.  
         Reimplemented by <a href="papers/eurobsdcon2009/otto-malloc.pdf">Otto Moerbeek</a>  
         for OpenBSD 4.4.  
     </li>  
     <li>  
         <strong>Position-independent executables (PIE)</strong>:  
         OpenBSD 5.3 was the first widely used operating system to enable it  
         globally by default, on seven hardware platforms.  
         Implemented in November 2008 by  
         <a href="https://www.openbsd.org/papers/nycbsdcon08-pie/">Kurt Miller</a>  
         and enabled by default by  
         <a href="https://www.openbsd.org/papers/asiabsdcon2015-pie-slides.pdf">Pascal Stumpf</a>  
         in August 2012.  
     </li>  
     <li>  
         <strong>Random-data memory</strong>:  
         the ability to specify that a variable should be initialized  
         at load time with random byte values (placed into a new ELF          at load time with random byte values (placed into a new ELF
         <b>.openbsd.randomdata</b> section) was implemented in          <b>.openbsd.randomdata</b> section) was implemented in
         OpenBSD 5.3 by Matthew Dempsky.          OpenBSD 5.3 by Matthew Dempsky.
     </li>      <li><strong>Stack protector per shared object</strong>:
           using the random-data memory feature, each shared object was given its
           own stack protector cookie in OpenBSD 5.3 by Matthew Dempsky.
       <li><strong>Static-PIE</strong>:
           Position-independent static binaries for /bin, /sbin and ramdisks.
           Implemented for OpenBSD 5.7 by Kurt Miller and Mark Kettenis.
       <li><strong>SROP</strong>
           (<a href="https://man.openbsd.org/sigreturn.2">sigreturn(2)</a>
           oriented programming) mitigation: attacks researched by
           <a href="http://www.cs.vu.nl/~herbertb/papers/srop_sp14.pdf">Eric Bosman</a>
           and Herbert Bos in 2014, solution implemented by Theo de Raadt in May 2016,
           enabled by default since OpenBSD 6.0.
       <li><strong>Library order randomization</strong>:
           In <a href="https://man.openbsd.org/rc.8">rc(8)</a>, re-link
           <code>libc.so</code>, <code>libcrypto</code>, and <code>ld.so</code>
           on startup, placing the objects in a random order.
           Theo de Raadt and Robert Peichaer, May 2016,
           enabled by default since OpenBSD 6.0 and 6.2.
       <li>Kernel-assisted lazy-binding for W^X safety in multi-threaded programs.
           A new syscall <a href="https://man.openbsd.org/kbind.2">kbind(2)</a>
           permits lazy-binding to be W^X safe in multi-threaded programs.
           Implemented for OpenBSD 5.9 by Philip Guenther in July 2015.
       <li>Process layouts in memory tightened to remove execute permission from
           all segmented, non-instruction data and to remove write permission from
           data that is only modified during loading and relocation.
           By combining the RELRO (Read-Only after Relocation) design from the
           GNU project with the original ASLR work from OpenBSD 3.3 and
           strict lazy-binding work from OpenBSD 5.9, this is applied to not
           just a subset of programs and libraries but rather to all programs
           and libraries.
           Implemented for OpenBSD 6.1 by Philip Guenther in August 2016.
       <li>Use of <strong>fork+exec in privilege separated programs</strong>. The
           strategy is to give each process a fresh &amp; unique address space for
           ASLR, stack protector -- as protection against address space discovery attacks.
           Implemented first by
           Damien Miller (<a href="https://man.openbsd.org/sshd.8">sshd(8)</a> 2004),
           Claudio Jeker (<a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, 2015),
           Eric Faurot (<a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>, 2016),
           Rafael Zalamena (various, 2016), and others.
       <li><strong>trapsleds</strong>:
           Reduction of incidental NOP instructions/sequences in the instruction
           stream which could be useful potentially for ROP attack methods to
           innaccurately target gadgets. These NOP sequences are converted into
           trap sequences where possible. Todd Mortimer and Theo de Raadt, June
           2017.
       <li><strong>Kernel relinking at boot</strong>:
           the .o files of the kernel are relinked in random order from a
           link-kit, before every reboot. This provides substantial interior
           randomization in the kernel's text and data segments for layout and
           relative branches/calls.  Basically a unique address space for each
           kernel boot, similar to the userland fork+exec model described above
           but for the kernel.  Theo de Raadt, June 2017.
     <li>      <li>
         <strong>Stack protector per shared object</strong>:  
         using the random-data memory feature, each shared object was given its  
         own stack protector cookie in OpenBSD 5.3 by Matthew Dempsky.  
     </li>  
     <li>  
         <strong>Static-PIE</strong>:  
         Position-independent static binaries for /bin, /sbin and ramdisks.  
         Implemented for OpenBSD 5.7 by Kurt Miller and Mark Kettenis.  
     </li>  
     <li>  
         <strong>SROP</strong>  
         (<a href="https://man.openbsd.org/sigreturn.2">sigreturn(2)</a>  
         oriented programming) mitigation: attacks researched by  
         <a href="http://www.cs.vu.nl/~herbertb/papers/srop_sp14.pdf">Eric Bosman</a>  
         and Herbert Bos in 2014, solution implemented by Theo de Raadt in May 2016,  
         enabled by default since OpenBSD 6.0.  
     </li>  
     <li>  
         <strong>Library order randomization</strong>:  
         In <a href="https://man.openbsd.org/rc.8">rc(8)</a>, re-link  
         <code>libc.so</code>, <code>libcrypto</code>, and <code>ld.so</code>  
         on startup, placing the objects in a random order.  
         Theo de Raadt and Robert Peichaer, May 2016,  
         enabled by default since OpenBSD 6.0 and 6.2.  
     </li>  
     <li>  
         Kernel-assisted lazy-binding for W^X safety in multi-threaded programs.  
         A new syscall <a href="https://man.openbsd.org/kbind.2">kbind(2)</a>  
         permits lazy-binding to be W^X safe in multi-threaded programs.  
         Implemented for OpenBSD 5.9 by Philip Guenther in July 2015.  
     </li>  
     <li>  
         Process layouts in memory tightened to remove execute permission from  
         all segmented, non-instruction data and to remove write permission from  
         data that is only modified during loading and relocation.  
         By combining the RELRO (Read-Only after Relocation) design from the  
         GNU project with the original ASLR work from OpenBSD 3.3 and  
         strict lazy-binding work from OpenBSD 5.9, this is applied to not  
         just a subset of programs and libraries but rather to all programs  
         and libraries.  
         Implemented for OpenBSD 6.1 by Philip Guenther in August 2016.  
     </li>  
     <li>  
         Use of <strong>fork+exec in privilege separated programs</strong>. The  
         strategy is to give each process a fresh &amp; unique address space for  
         ASLR, stack protector -- as protection against address space discovery attacks.  
         Implemented first by  
         Damien Miller (<a href="https://man.openbsd.org/sshd.8">sshd(8)</a> 2004),  
         Claudio Jeker (<a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, 2015),  
         Eric Faurot (<a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>, 2016),  
         Rafael Zalamena (various, 2016), and others.  
     </li>  
     <li>  
         <strong>trapsleds</strong>:  
         Reduction of incidental NOP instructions/sequences in the instruction  
         stream which could be useful potentially for ROP attack methods to  
         innaccurately target gadgets. These NOP sequences are converted into  
         trap sequences where possible. Todd Mortimer and Theo de Raadt, June  
         2017.  
     </li>  
     <li>  
         <strong>Kernel relinking at boot</strong>:  
         the .o files of the kernel are relinked in random order from a  
         link-kit, before every reboot. This provides substantial interior  
         randomization in the kernel's text and data segments for layout and  
         relative branches/calls.  Basically a unique address space for each  
         kernel boot, similar to the userland fork+exec model described above  
         but for the kernel.  Theo de Raadt, June 2017.  
     </li>  
     <li>  
         Rearranged i386/amd64 register allocator order in          Rearranged i386/amd64 register allocator order in
         <a href="https://man.openbsd.org/clang.1">clang(1)</a>          <a href="https://man.openbsd.org/clang.1">clang(1)</a>
         to reduce polymorphic RET instructions:          to reduce polymorphic RET instructions:
         Todd Mortimer, November 20, 2017.          Todd Mortimer, November 20, 2017.
     </li>  
     <li>      <li>
         Reencoding of i386/amd64 instruction sequences to avoid          Reencoding of i386/amd64 instruction sequences to avoid
         embedded polymorphic RET instructions.  Enhancements to          embedded polymorphic RET instructions.  Enhancements to
         <a href="https://man.openbsd.org/clang.1">clang(1)</a>          <a href="https://man.openbsd.org/clang.1">clang(1)</a>
         Todd Mortimer, April 28, 2018 and onwards.          Todd Mortimer, April 28, 2018 and onwards.
     </li>      <li><b>MAP_STACK</b> addition to
     <li>  
         <b>MAP_STACK</b> addition to  
         <a href="https://man.openbsd.org/mmap.2">mmap(2)</a>          <a href="https://man.openbsd.org/mmap.2">mmap(2)</a>
         allows opportunistic verification that the stack-register          allows opportunistic verification that the stack-register
         points at stack memory, therefore catching pivots to non-stack          points at stack memory, therefore catching pivots to non-stack
         memory (sometimes used in ROP attacks).          memory (sometimes used in ROP attacks).
         Theo de Raadt, April 12, 2018.          Theo de Raadt, April 12, 2018.
     </li>      <li><b>RETGUARD</b> is a replacement for the <b>stack-protector</b>
     <li>          which uses a per-function random cookie (located in the read-only ELF
         <b>RETGUARD</b> is a replacement for the <b>stack-protector</b>          <b>.openbsd.randomdata</b> section) to consistency-check the
         which uses a per-function random cookie (located in the read-only ELF          return address on the stack.  Implemented for AMD64 and ARM64
         <b>.openbsd.randomdata</b> section) to consistency-check the          by Todd Mortimer in OpenBSD 6.4.
         return address on the stack.  Implemented for AMD64 and ARM64      <li><b>MAP_CONCEAL</b> addition to
         by Todd Mortimer in OpenBSD 6.4.  
     </li>  
     <li>  
         <b>MAP_CONCEAL</b> addition to  
         <a href="https://man.openbsd.org/mmap.2">mmap(2)</a>          <a href="https://man.openbsd.org/mmap.2">mmap(2)</a>
         disallows memory pages to be written to core dumps, preventing          disallows memory pages to be written to core dumps, preventing
         accidental exposure of private information.          accidental exposure of private information.
         Theo de Raadt, Mark Kettenis and Scott Soule Cheloha,          Theo de Raadt, Mark Kettenis and Scott Soule Cheloha,
         February 2, 2019.          February 2, 2019.
     </li>  
   
 </ul>  </ul>
   
 <h3>Functions</h3>  <h3>Functions</h3>
   
 <ul>  <ul>
     <li>      <li><a href="https://man.openbsd.org/issetugid.2">issetugid(2)</a>:
         <a href="https://man.openbsd.org/issetugid.2">issetugid(2)</a>:          Theo de Raadt, August 25, 1996, OpenBSD 2.0
         Theo de Raadt, August 25, 1996, OpenBSD 2.0      <li><a href="https://man.openbsd.org/arc4random.3">arc4random(3)</a>:
     </li>          David Mazieres, December 28, 1996, OpenBSD 2.1
     <li>      <li><a href="https://man.openbsd.org/bcrypt.3">bcrypt(3)</a>:
         <a href="https://man.openbsd.org/arc4random.3">arc4random(3)</a>:          Implemented by <a href="https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html">Niels Provos and David Mazieres</a>
         David Mazieres, December 28, 1996, OpenBSD 2.1          Imported February 13, 1997 and first released with OpenBSD 2.1.
     </li>      <li><a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a>,
     <li>          <a href="https://man.openbsd.org/strlcat.3">strlcat(3)</a>:
         <a href="https://man.openbsd.org/bcrypt.3">bcrypt(3)</a>:          Todd Miller and Theo de Raadt, July 1, 1998, OpenBSD 2.4
         Implemented by <a href="https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html">Niels Provos and David Mazieres</a>      <li><a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>:
         Imported February 13, 1997 and first released with OpenBSD 2.1.          Ted Unangst, Todd Miller, and Theo de Raadt, May 3, 2004, OpenBSD 3.6
     </li>      <li><a href="https://man.openbsd.org/imsg_init.3">imsg</a>:
     <li>          Message passing API, written by Henning Brauer.
         <a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a>,          In libutil since May 26, 2010, OpenBSD 4.8;
         <a href="https://man.openbsd.org/strlcat.3">strlcat(3)</a>:          used by various daemons before that.
         Todd Miller and Theo de Raadt, July 1, 1998, OpenBSD 2.4      <li><a href="https://man.openbsd.org/timingsafe_bcmp.3">timingsafe_bcmp(3)</a>:
     </li>          Damien Miller, July 13, 2010, OpenBSD 4.9
     <li>      <li><a href="https://man.openbsd.org/explicit_bzero.3">explicit_bzero(3)</a>:
         <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>:          Ted Unangst and Matthew Dempsky, January 22, 2014, OpenBSD 5.5
         Ted Unangst, Todd Miller, and Theo de Raadt, May 3, 2004, OpenBSD 3.6      <li><a href="https://man.openbsd.org/ohash_init.3">ohash</a>:
     </li>          Written and maintained by Marc Espie.
     <li>          In libutil since May 12, 2014, OpenBSD 5.6;
         <a href="https://man.openbsd.org/imsg_init.3">imsg</a>:          used by make(1) and m4(1) before that.
         Message passing API, written by Henning Brauer.      <li><a href="https://man.openbsd.org/asr_run.3">asr</a>:
         In libutil since May 26, 2010, OpenBSD 4.8;          Replacement resolver written and maintained by Eric Faurot.
         used by various daemons before that.          Imported April 14, 2012; activated on March 26, 2014, OpenBSD 5.6.
     </li>      <li><a href="https://man.openbsd.org/reallocarray.3">reallocarray(3)</a>:
     <li>          Theo de Raadt and Ted Unangst, April 22, 2014, OpenBSD 5.6
         <a href="https://man.openbsd.org/timingsafe_bcmp.3">timingsafe_bcmp(3)</a>:      <li><a href="https://man.openbsd.org/getentropy.2">getentropy(2)</a>:
         Damien Miller, July 13, 2010, OpenBSD 4.9          Matthew Dempsky and Theo de Raadt, June 13, 2014, OpenBSD 5.6
     </li>      <li><a href="https://man.openbsd.org/sendsyslog.2">sendsyslog(2)</a>:
     <li>          Theo de Raadt, July 10, 2014, OpenBSD 5.6
         <a href="https://man.openbsd.org/explicit_bzero.3">explicit_bzero(3)</a>:      <li><a href="https://man.openbsd.org/timingsafe_memcmp.3">timingsafe_memcmp(3)</a>:
         Ted Unangst and Matthew Dempsky, January 22, 2014, OpenBSD 5.5          Matthew Dempsky, July 13, 2014, OpenBSD 5.6
     </li>      <li><a href="https://man.openbsd.org/pledge.2">pledge(2)</a>:
     <li>          Theo de Raadt, July 19, 2015, OpenBSD 5.9
         <a href="https://man.openbsd.org/ohash_init.3">ohash</a>:      <li><a href="https://man.openbsd.org/getpwnam_shadow.3">getpwnam_shadow(3)</a>,
         Written and maintained by Marc Espie.          <a href="https://man.openbsd.org/getpwuid_shadow.3">getpwuid_shadow(3)</a>:
         In libutil since May 12, 2014, OpenBSD 5.6;          Ted Unangst and Theo de Raadt, November 18, 2015, OpenBSD 5.9
         used by make(1) and m4(1) before that.      <li><a href="https://man.openbsd.org/recallocarray.3">recallocarray(3)</a>:
     </li>          Otto Moerbeek, Joel Sing and Theo de Raadt, March 6, 2017, OpenBSD 6.1
     <li>      <li><a href="https://man.openbsd.org/freezero.3">freezero(3)</a>:
         <a href="https://man.openbsd.org/asr_run.3">asr</a>:          Otto Moerbeek, April 10, 2017, OpenBSD 6.2
         Replacement resolver written and maintained by Eric Faurot.      <li><a href="https://man.openbsd.org/unveil.2">unveil(2)</a>:
         Imported April 14, 2012; activated on March 26, 2014, OpenBSD 5.6.          Theo de Raadt and Bob Beck, July 13, 2018, OpenBSD 6.4
     </li>      <li><a href="https://man.openbsd.org/malloc_conceal.3">malloc_conceal(3)</a>
     <li>  
         <a href="https://man.openbsd.org/reallocarray.3">reallocarray(3)</a>:  
         Theo de Raadt and Ted Unangst, April 22, 2014, OpenBSD 5.6  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/getentropy.2">getentropy(2)</a>:  
         Matthew Dempsky and Theo de Raadt, June 13, 2014, OpenBSD 5.6  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/sendsyslog.2">sendsyslog(2)</a>:  
         Theo de Raadt, July 10, 2014, OpenBSD 5.6  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/timingsafe_memcmp.3">timingsafe_memcmp(3)</a>:  
         Matthew Dempsky, July 13, 2014, OpenBSD 5.6  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/pledge.2">pledge(2)</a>:  
         Theo de Raadt, July 19, 2015, OpenBSD 5.9  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/getpwnam_shadow.3">getpwnam_shadow(3)</a>,  
         <a href="https://man.openbsd.org/getpwuid_shadow.3">getpwuid_shadow(3)</a>:  
         Ted Unangst and Theo de Raadt, November 18, 2015, OpenBSD 5.9  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/recallocarray.3">recallocarray(3)</a>:  
         Otto Moerbeek, Joel Sing and Theo de Raadt, March 6, 2017, OpenBSD 6.1  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/freezero.3">freezero(3)</a>:  
         Otto Moerbeek, April 10, 2017, OpenBSD 6.2  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/unveil.2">unveil(2)</a>:  
         Theo de Raadt and Bob Beck, July 13, 2018, OpenBSD 6.4  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/malloc_conceal.3">malloc_conceal(3)</a>  
         and          and
         <a href="https://man.openbsd.org/calloc_conceal.3">calloc_conceal(3)</a>:          <a href="https://man.openbsd.org/calloc_conceal.3">calloc_conceal(3)</a>:
         Otto Moerbeek, May 10, 2019, OpenBSD 6.5          Otto Moerbeek, May 10, 2019, OpenBSD 6.5
     </li>  
 </ul>  </ul>
   
   
 <h3>Programs and subsystems</h3>  <h3>Programs and subsystems</h3>
   
 <ul>  <ul>
     <li>      <li><a href="https://man.openbsd.org/ypbind.8">ypbind(8)</a>,
         <a href="https://man.openbsd.org/ypbind.8">ypbind(8)</a>,          <a href="https://man.openbsd.org/ypset.8">ypset(8)</a>,
         <a href="https://man.openbsd.org/ypset.8">ypset(8)</a>,          <a href="https://man.openbsd.org/ypcat.1">ypcat(1)</a>,
         <a href="https://man.openbsd.org/ypcat.1">ypcat(1)</a>,          <a href="https://man.openbsd.org/ypmatch.1">ypmatch(1)</a>,
         <a href="https://man.openbsd.org/ypmatch.1">ypmatch(1)</a>,          <a href="https://man.openbsd.org/ypwhich.1">ypwhich(1)</a>,
         <a href="https://man.openbsd.org/ypwhich.1">ypwhich(1)</a>,          and libc support: Started by Theo de Raadt.
         and libc support: Started by Theo de Raadt.          Imported April 26, 1993 and first released with NetBSD 0.9.
         Imported April 26, 1993 and first released with NetBSD 0.9.      <li><a href="https://man.openbsd.org/ypserv.8">ypserv(8)</a>:
     </li>          Started by Mats O. Jansson in 1994.
     <li>          Imported October 23, 1995 and first released with OpenBSD 2.0.
         <a href="https://man.openbsd.org/ypserv.8">ypserv(8)</a>:      <li><a href="https://man.openbsd.org/mopd.8">mopd(8)</a>:
         Started by Mats O. Jansson in 1994.          Started by Mats O. Jansson in 1993.
         Imported October 23, 1995 and first released with OpenBSD 2.0.          Imported September 21, 1996 and first released with OpenBSD 2.0.
     </li>      <li><a href="anoncvs.html">AnonCVS</a>:
     <li>          Designed and implemented by Chuck Cranor and Theo de Raadt in 1995
         <a href="https://man.openbsd.org/mopd.8">mopd(8)</a>:          (<a href="papers/anoncvs-paper.pdf">paper</a>,
         Started by Mats O. Jansson in 1993.          <a href="papers/anoncvs-slides.pdf">slides</a>)
         Imported September 21, 1996 and first released with OpenBSD 2.0.      <li><a href="https://man.openbsd.org/aucat.1">aucat(1)</a>:
     </li>          Started by Kenneth Stailey.
     <li>          Imported January 2, 1997 and first released with OpenBSD 2.1.
         <a href="anoncvs.html">AnonCVS</a>:          Now maintained by Alexandre Ratchov.
         Designed and implemented by Chuck Cranor and Theo de Raadt in 1995      <li><a href="https://www.openssh.com/">OpenSSH</a>
         (<a href="papers/anoncvs-paper.pdf">paper</a>,          including <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>,
         <a href="papers/anoncvs-slides.pdf">slides</a>)          <a href="https://man.openbsd.org/scp.1">scp(1)</a>,
     </li>          <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>,
     <li>          <a href="https://man.openbsd.org/ssh-add.1">ssh-add(1)</a>,
         <a href="https://man.openbsd.org/aucat.1">aucat(1)</a>:          <a href="https://man.openbsd.org/ssh-agent.1">ssh-agent(1)</a>,
         Started by Kenneth Stailey.          <a href="https://man.openbsd.org/ssh-keygen.1">ssh-keygen(1)</a>,
         Imported January 2, 1997 and first released with OpenBSD 2.1.          <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>,
         Now maintained by Alexandre Ratchov.          <a href="https://man.openbsd.org/sftp-server.8">sftp-server(8)</a>:
     </li>          Started by Aaron Campbell, Bob Beck, Dug Song, Markus Friedl,
     <li>          Niels Provos, and Theo de Raadt
         <a href="https://www.openssh.com/">OpenSSH</a>          as a fork of SSH 1.2.12 by Tatu Ylonen.
         including <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>,          Imported September 26, 1999 and first released with OpenBSD 2.6.
         <a href="https://man.openbsd.org/scp.1">scp(1)</a>,          Now maintained by Markus Friedl, Damien Miller, Darren Tucker, and
         <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>,          Theo de Raadt.
         <a href="https://man.openbsd.org/ssh-add.1">ssh-add(1)</a>,      <li><a href="https://man.openbsd.org/mg.1">mg(1)</a>:
         <a href="https://man.openbsd.org/ssh-agent.1">ssh-agent(1)</a>,          Started by Dave Conroy in November 1986.
         <a href="https://man.openbsd.org/ssh-keygen.1">ssh-keygen(1)</a>,          Imported February 25, 2000 and first released with OpenBSD 2.7.
         <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>,          Now maintained by Mark Lumsden.
         <a href="https://man.openbsd.org/sftp-server.8">sftp-server(8)</a>:      <li><a href="https://man.openbsd.org/m4.1">m4(1)</a>:
         Started by Aaron Campbell, Bob Beck, Dug Song, Markus Friedl,          Originally implemented by Ozan Yigit and Richard A. O'Keefe for 4.3BSD-Reno.
         Niels Provos, and Theo de Raadt          Considerably extended and maintained by Marc Espie since 1999.
         as a fork of SSH 1.2.12 by Tatu Ylonen.      <li><a href="https://man.openbsd.org/pf.4">pf(4)</a>,
         Imported September 26, 1999 and first released with OpenBSD 2.6.          <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a>,
         Now maintained by Markus Friedl, Damien Miller, Darren Tucker, and          <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,
         Theo de Raadt.          <a href="https://man.openbsd.org/authpf.8">authpf(8)</a>,
     </li>          <a href="https://man.openbsd.org/ftp-proxy.8">ftp-proxy(8)</a>:
     <li>          Started by Daniel Hartmeier as a replacement for the non-free ipf by
         <a href="https://man.openbsd.org/mg.1">mg(1)</a>:          Darren Reed. Imported June 24, 2001 and first released with OpenBSD
         Started by Dave Conroy in November 1986.          3.0. Now maintained by Henning Brauer.
         Imported February 25, 2000 and first released with OpenBSD 2.7.      <li><a href="https://man.openbsd.org/OpenBSD-5.9/systrace.4">systrace(4)</a>,
         Now maintained by Mark Lumsden.          <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.1">systrace(1)</a>:
     </li>          Started by Niels Provos.
     <li>          Imported June 4, 2002 and first released with OpenBSD 3.2.
         <a href="https://man.openbsd.org/m4.1">m4(1)</a>:          Deleted after OpenBSD 5.9 because
         Originally implemented by Ozan Yigit and Richard A. O'Keefe for 4.3BSD-Reno.          <a href="https://man.openbsd.org/pledge.2">pledge(2)</a> is even better.
         Considerably extended and maintained by Marc Espie since 1999.      <li><a href="https://man.openbsd.org/spamd.8">spamd(8)</a>:
     </li>          Written by Bob Beck. Imported December 21, 2002 and first released with
     <li>          OpenBSD 3.3.
         <a href="https://man.openbsd.org/pf.4">pf(4)</a>,      <li><a href="https://man.openbsd.org/dc.1">dc(1)</a>:
         <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a>,          Written and maintained by Otto Moerbeek.
         <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,          Imported September 19, 2003 and first released with OpenBSD 3.5.
         <a href="https://man.openbsd.org/authpf.8">authpf(8)</a>,      <li><a href="https://man.openbsd.org/bc.1">bc(1)</a>:
         <a href="https://man.openbsd.org/ftp-proxy.8">ftp-proxy(8)</a>:          Written and maintained by Otto Moerbeek.
         Started by Daniel Hartmeier as a replacement for the non-free ipf by          Imported September 25, 2003 and first released with OpenBSD 3.5.
         Darren Reed. Imported June 24, 2001 and first released with OpenBSD      <li><a href="https://man.openbsd.org/sensorsd.8">sensorsd(8)</a>:
         3.0. Now maintained by Henning Brauer.          Started by Henning Brauer.
     </li>          Imported September 24, 2003 and first released with OpenBSD 3.5.
     <li>          Reworked by Constantine A. Murenin.
         <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.4">systrace(4)</a>,      <li><a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>:
         <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.1">systrace(1)</a>:          Written and maintained by Marc Espie.
         Started by Niels Provos.          Imported October 16, 2003 and first released with OpenBSD 3.5.
         Imported June 4, 2002 and first released with OpenBSD 3.2.      <li><a href="https://man.openbsd.org/carp.4">carp(4)</a>:
         Deleted after OpenBSD 5.9 because          Written by Mickey Shalayeff, Markus Friedl, Marco Pfatschbacher,
         <a href="https://man.openbsd.org/pledge.2">pledge(2)</a> is even better.          and Ryan McBride.
     </li>          Imported October 17, 2003 and first released with OpenBSD 3.5.
     <li>      <li><a href="http://www.openbgpd.org/">OpenBGPD</a>
         <a href="https://man.openbsd.org/spamd.8">spamd(8)</a>:          including <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>
         Written by Bob Beck. Imported December 21, 2002 and first released with          and <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>:
         OpenBSD 3.3.          Written and maintained by Henning Brauer and Claudio Jeker,
     </li>          and also maintained by Peter Hessler.
     <li>          Imported December 17, 2003 and first released with OpenBSD 3.5.
         <a href="https://man.openbsd.org/dc.1">dc(1)</a>:      <li><a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>:
         Written and maintained by Otto Moerbeek.          Started by Ted Lemon and Elliot Poger in 1996.
         Imported September 19, 2003 and first released with OpenBSD 3.5.          Imported January 18, 2004 and first released with OpenBSD 3.5.
     </li>          Reworked by Henning Brauer.
     <li>          Now maintained by Kenneth Westerback.
         <a href="https://man.openbsd.org/bc.1">bc(1)</a>:      <li><a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>:
         Written and maintained by Otto Moerbeek.          Started by Ted Lemon in 1995.
         Imported September 25, 2003 and first released with OpenBSD 3.5.          Imported April 13, 2004 and first released with OpenBSD 3.6.
     </li>          Reworked by Henning Brauer.
     <li>          Now maintained by Kenneth Westerback.
         <a href="https://man.openbsd.org/sensorsd.8">sensorsd(8)</a>:      <li><a href="https://man.openbsd.org/hotplugd.8">hotplugd(8)</a>:
         Started by Henning Brauer.          Started by Alexander Yurchenko.
         Imported September 24, 2003 and first released with OpenBSD 3.5.          Imported May 30, 2004 and first released with OpenBSD 3.6.
         Reworked by Constantine A. Murenin.      <li><a href="http://www.openntpd.org/">OpenNTPD</a>
     </li>          including <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>
     <li>          and <a href="https://man.openbsd.org/ntpctl.8">ntpctl(8)</a>:
         <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>:          Written and maintained by Henning Brauer.
         Written and maintained by Marc Espie.          Imported May 31, 2004 and first released with OpenBSD 3.6.
         Imported October 16, 2003 and first released with OpenBSD 3.5.          Portable version maintained by Brent Cook.
     </li>      <li><a href="https://man.openbsd.org/dpb.1">dpb(1)</a>:
     <li>          Started by Nikolay Sturm on August 10, 2004; first available for OpenBSD 3.6.
         <a href="https://man.openbsd.org/carp.4">carp(4)</a>:          Rewritten and maintained by Marc Espie since August 20, 2010.
         Written by Mickey Shalayeff, Markus Friedl, Marco Pfatschbacher,      <li><a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,
         and Ryan McBride.          <a href="https://man.openbsd.org/ospfctl.8">ospfctl(8)</a>:
         Imported October 17, 2003 and first released with OpenBSD 3.5.          Started by Esben Norby and Claudio Jeker.
     </li>          Imported January 28, 2005 and first released with OpenBSD 3.7.
     <li>      <li><a href="https://man.openbsd.org/ifstated.8">ifstated(8)</a>:
         <a href="http://www.openbgpd.org/">OpenBGPD</a>          Started by Marco Pfatschbacher and Ryan McBride.
         including <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>          Imported January 23, 2004 and first released with OpenBSD 3.8.
         and <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>:      <li><a href="https://man.openbsd.org/bioctl.8">bioctl(8)</a>:
         Written and maintained by Henning Brauer and Claudio Jeker,          Started by Marco Peereboom.
         and also maintained by Peter Hessler.          Imported March 29, 2005 and first released with OpenBSD 3.8.
         Imported December 17, 2003 and first released with OpenBSD 3.5.      <li><a href="https://man.openbsd.org/hostapd.8">hostapd(8)</a>:
     </li>          Written and maintained by Reyk Floeter.
     <li>          Imported May 26, 2005 and first released with OpenBSD 3.8.
         <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>:      <li><a href="https://man.openbsd.org/watchdogd.8">watchdogd(8)</a>:
         Started by Ted Lemon and Elliot Poger in 1996.          Started by Marc Balmer.
         Imported January 18, 2004 and first released with OpenBSD 3.5.          Imported August 8, 2005 and first released with OpenBSD 3.8.
         Reworked by Henning Brauer.      <li><a href="https://man.openbsd.org/sdiff.1">sdiff(1)</a>:
         Now maintained by Kenneth Westerback.          Written by Ray Lai.
     </li>          Imported December 27, 2005 and first released with OpenBSD 3.9.
     <li>      <li><a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,
         <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>:          <a href="https://man.openbsd.org/dvmrpctl.8">dvmrpctl(8)</a>:
         Started by Ted Lemon in 1995.          Started by Esben Norby.
         Imported April 13, 2004 and first released with OpenBSD 3.6.          Imported June 1, 2006 and first released with OpenBSD 4.0.
         Reworked by Henning Brauer.      <li><a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,
         Now maintained by Kenneth Westerback.          <a href="https://man.openbsd.org/ripctl.8">ripctl(8)</a>:
     </li>          Started by Michele Marchetto.
     <li>          Imported October 18, 2006 and first released with OpenBSD 4.1.
         <a href="https://man.openbsd.org/hotplugd.8">hotplugd(8)</a>:      <li><a href="https://man.openbsd.org/pkg-config.1">pkg-config(1)</a>:
         Started by Alexander Yurchenko.          Started by Chris Kuethe and Marc Espie.
         Imported May 30, 2004 and first released with OpenBSD 3.6.          Imported November 27, 2006 and first released with OpenBSD 4.1.
     </li>          Now maintained by Jasper Lievisse Adriaanse.
     <li>      <li><a href="https://man.openbsd.org/relayd.8">relayd(8)</a>
         <a href="http://www.openntpd.org/">OpenNTPD</a>          with <a href="https://man.openbsd.org/relayctl.8">relayctl(8)</a>:
         including <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>          Started by Pierre-Yves Ritschard and Reyk Floeter.
         and <a href="https://man.openbsd.org/ntpctl.8">ntpctl(8)</a>:          Imported December 16, 2006 and first released with OpenBSD 4.1.
         Written and maintained by Henning Brauer.          Now maintained by Reyk Floeter and Sebastian Benoit.<br/>
         Imported May 31, 2004 and first released with OpenBSD 3.6.      <li><a href="https://man.openbsd.org/cwm.1">cwm(1)</a>:
         Portable version maintained by Brent Cook.          Started by <a href="http://monkey.org/~marius/cwm/README">Marius
     </li>              Aamodt Eriksen</A> in 2004.
     <li>          Imported April 27, 2007 and first released with OpenBSD 4.2.
         <a href="https://man.openbsd.org/dpb.1">dpb(1)</a>:          Now maintained by Okan Demirmen.
         Started by Nikolay Sturm on August 10, 2004; first available for OpenBSD 3.6.          <a href="https://github.com/chneukirchen/cwm">Portable version</a>
         Rewritten and maintained by Marc Espie since August 20, 2010.          maintained by Leah Neukirchen.
     </li>      <li><a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,
     <li>          <a href="https://man.openbsd.org/ospf6ctl.8">ospf6ctl(8)</a>:
         <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,          Started by Esben Norby and Claudio Jeker.
         <a href="https://man.openbsd.org/ospfctl.8">ospfctl(8)</a>:          Imported October 8, 2007 and first released with OpenBSD 4.2.
         Started by Esben Norby and Claudio Jeker.      <li><a href="https://man.openbsd.org/libtool.1">libtool(1)</a>:
         Imported January 28, 2005 and first released with OpenBSD 3.7.          Written by Steven Mestdagh and Marc Espie.
     </li>          Imported October 28, 2007 and first available for OpenBSD 4.3.
     <li>          Now maintained by Marc Espie, Jasper Lievisse Adriaanse,
         <a href="https://man.openbsd.org/ifstated.8">ifstated(8)</a>:          and Antoine Jacoutot.
         Started by Marco Pfatschbacher and Ryan McBride.      <li><a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>,
         Imported January 23, 2004 and first released with OpenBSD 3.8.          <a href="https://man.openbsd.org/snmpctl.8">snmpctl(8)</a>:
     </li>          Started by Reyk Floeter.
     <li>          Imported December 5, 2007 and first released with OpenBSD 4.3.
         <a href="https://man.openbsd.org/bioctl.8">bioctl(8)</a>:          Maintained by Reyk Floeter and Bret Lambert.
         Started by Marco Peereboom.      <li><a href="https://man.openbsd.org/sysmerge.8">sysmerge(8)</a>:
         Imported March 29, 2005 and first released with OpenBSD 3.8.          Written and maintained by Antoine Jacoutot,
     </li>          originally forked from mergemaster by Douglas Barton.
     <li>          Imported April 22, 2008, first released with OpenBSD 4.4.
         <a href="https://man.openbsd.org/hostapd.8">hostapd(8)</a>:      <li><a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>:
         Written and maintained by Reyk Floeter.          Started by Pierre-Yves Ritschard.
         Imported May 26, 2005 and first released with OpenBSD 3.8.          Imported June 26, 2008 and first released with OpenBSD 4.4.
     </li>      <li><a href="https://www.opensmtpd.org/">OpenSMTPD</a>
     <li>          including <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,
         <a href="https://man.openbsd.org/watchdogd.8">watchdogd(8)</a>:          <a href="https://man.openbsd.org/smtpctl.8">smtpctl(8)</a>,
         Started by Marc Balmer.          <a href="https://man.openbsd.org/makemap.8">makemap(8)</a>:
         Imported August 8, 2005 and first released with OpenBSD 3.8.          Started by Gilles Chehade.
     </li>          Imported November 1, 2008 and first released with OpenBSD 4.6.
     <li>          Now maintained by Gilles Chehade and Eric Faurot.
         <a href="https://man.openbsd.org/sdiff.1">sdiff(1)</a>:      <li><a href="http://tmux.github.io/">tmux</a>,
         Written by Ray Lai.          <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>:
         Imported December 27, 2005 and first released with OpenBSD 3.9.          Started in 2007 and maintained by Nicholas Marriott.
     </li>          Imported June 1, 2009, first released with OpenBSD 4.6.
     <li>      <li><a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,
         <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,          <a href="https://man.openbsd.org/ldpctl.8">ldpctl(8)</a>:
         <a href="https://man.openbsd.org/dvmrpctl.8">dvmrpctl(8)</a>:          Started by Michele Marchetto.
         Started by Esben Norby.          Imported June 1, 2009 and first released with OpenBSD 4.6.
         Imported June 1, 2006 and first released with OpenBSD 4.0.          Now maintained by Claudio Jeker.
     </li>      <li><a href="http://mdocml.bsd.lv/">mandoc</a>
     <li>          including <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>,
         <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,          <a href="https://man.openbsd.org/man.1">man(1)</a>,
         <a href="https://man.openbsd.org/ripctl.8">ripctl(8)</a>:          <a href="https://man.openbsd.org/apropos.1">apropos(1)</a>,
         Started by Michele Marchetto.          <a href="https://man.openbsd.org/makewhatis.8">makewhatis(8)</a>,
         Imported October 18, 2006 and first released with OpenBSD 4.1.          <a href="https://man.openbsd.org/man.cgi.8">man.cgi(8)</a>:
     </li>          Started by Kristaps Dzonsons in November 2008.
     <li>          Imported April 6, 2009, first released with OpenBSD 4.8.
         <a href="https://man.openbsd.org/pkg-config.1">pkg-config(1)</a>:          Now maintained by Ingo Schwarze.
         Started by Chris Kuethe and Marc Espie.      <li><a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,
         Imported November 27, 2006 and first released with OpenBSD 4.1.          <a href="https://man.openbsd.org/ldapctl.8">ldapctl(8)</a>:
         Now maintained by Jasper Lievisse Adriaanse.          Written by Martin Hedenfalk.
     </li>          Imported May 31, 2010 and first released with OpenBSD 4.8.
     <li>      <li><a href="http://www.openiked.org/">OpenIKED</a>
         <a href="https://man.openbsd.org/relayd.8">relayd(8)</a>          including <a href="https://man.openbsd.org/iked.8">iked(8)</a>
         with <a href="https://man.openbsd.org/relayctl.8">relayctl(8)</a>:          and <a href="https://man.openbsd.org/ikectl.8">ikectl(8)</a>:
         Started by Pierre-Yves Ritschard and Reyk Floeter.          Started by Reyk Floeter.
         Imported December 16, 2006 and first released with OpenBSD 4.1.          Imported June 3, 2010 and first released with OpenBSD 4.8.
         Now maintained by Reyk Floeter and Sebastian Benoit.<br/>          Now maintained by Reyk Floeter and Mike Belopuhov.
     </li>      <li><a href="https://man.openbsd.org/iscsid.8">iscsid(8)</a>,
     <li>          <a href="https://man.openbsd.org/iscsictl.8">iscsictl(8)</a>:
         <a href="https://man.openbsd.org/cwm.1">cwm(1)</a>:          Written and maintained by Claudio Jeker.
         Started by <a href="http://monkey.org/~marius/cwm/README">Marius          Imported September 24, 2010 and first released with OpenBSD 4.9.
             Aamodt Eriksen</A> in 2004.      <li><a href="https://man.openbsd.org/rc.d.8">rc.d(8)</a>,
         Imported April 27, 2007 and first released with OpenBSD 4.2.          <a href="https://man.openbsd.org/rc.subr.8">rc.subr(8)</a>:
         Now maintained by Okan Demirmen.          Written and maintained by Robert Nagy and Antoine Jacoutot.
         <a href="https://github.com/chneukirchen/cwm">Portable version</a>          Imported October 26, 2010 and first released with OpenBSD 4.9.
         maintained by Leah Neukirchen.      <li><a href="https://man.openbsd.org/tftpd.8">tftpd(8)</a>:
     </li>          Written and maintained by David Gwynne.
     <li>          Imported March 2, 2012 and first released with OpenBSD 5.2.
         <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,      <li><a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,
         <a href="https://man.openbsd.org/ospf6ctl.8">ospf6ctl(8)</a>:          <a href="https://man.openbsd.org/npppctl.8">npppctl(8)</a>:
         Started by Esben Norby and Claudio Jeker.          Started by Internet Initiative Japan Inc.
         Imported October 8, 2007 and first released with OpenBSD 4.2.          Imported January 11, 2010, first released with OpenBSD 5.3.
     </li>          Maintained by YASUOKA Masahiko.
     <li>      <li><a href="https://man.openbsd.org/ldomd.8">ldomd(8)</a>,
         <a href="https://man.openbsd.org/libtool.1">libtool(1)</a>:          <a href="https://man.openbsd.org/ldomctl.8">ldomctl(8)</a>:
         Written by Steven Mestdagh and Marc Espie.          Written and maintained by Mark Kettenis.
         Imported October 28, 2007 and first available for OpenBSD 4.3.          Imported October 26, 2012 and first released with OpenBSD 5.3.
         Now maintained by Marc Espie, Jasper Lievisse Adriaanse,      <li><a href="https://man.openbsd.org/sndiod.8">sndiod(8)</a>:
         and Antoine Jacoutot.          Written and maintained by Alexandre Ratchov.
     </li>          Imported November 23, 2012 and first released with OpenBSD 5.3.
     <li>      <li><a href="https://man.openbsd.org/cu.1">cu(1)</a>:
         <a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>,          Written and maintained by Nicholas Marriott.
         <a href="https://man.openbsd.org/snmpctl.8">snmpctl(8)</a>:          Imported July 10, 2012 and first released with OpenBSD 5.4.
         Started by Reyk Floeter.      <li><a href="https://man.openbsd.org/identd.8">identd(8)</a>:
         Imported December 5, 2007 and first released with OpenBSD 4.3.          Written and maintained by David Gwynne.
         Maintained by Reyk Floeter and Bret Lambert.          Imported March 18, 2013 and first released with OpenBSD 5.4.
     </li>      <li><a href="https://man.openbsd.org/slowcgi.8">slowcgi(8)</a>:
     <li>          Written and maintained by Florian Obser.
         <a href="https://man.openbsd.org/sysmerge.8">sysmerge(8)</a>:          Imported May 23, 2013 and first released with OpenBSD 5.4.
         Written and maintained by Antoine Jacoutot,      <li><a href="https://man.openbsd.org/signify.1">signify(1)</a>:
         originally forked from mergemaster by Douglas Barton.          Written and maintained by <a href="http://www.tedunangst.com/flak/post/signify">Ted Unangst</a>.
         Imported April 22, 2008, first released with OpenBSD 4.4.          Imported December 31, 2013 and first released with OpenBSD 5.5.
     </li>      <li><a href="https://man.openbsd.org/htpasswd.1">htpasswd(1)</a>:
     <li>          Written and maintained by Florian Obser.
         <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>:          Imported March 17, 2014 and first released with OpenBSD 5.6.
         Started by Pierre-Yves Ritschard.      <li><a href="https://www.libressl.org/">LibreSSL</a>:
         Imported June 26, 2008 and first released with OpenBSD 4.4.          Started by Ted Unangst, Bob Beck, Joel Sing, Miod Vallat, Philip Guenther,
     </li>          and Theo de Raadt on April 13, 2014, as a fork of OpenSSL 1.0.1g.
     <li>          First released with OpenBSD 5.6.
         <a href="https://www.opensmtpd.org/">OpenSMTPD</a>          Portable version maintained by Brent Cook.
         including <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,      <li><a href="https://man.openbsd.org/httpd.8">httpd(8)</a>:
         <a href="https://man.openbsd.org/smtpctl.8">smtpctl(8)</a>,          Started by Reyk Floeter.
         <a href="https://man.openbsd.org/makemap.8">makemap(8)</a>:          Imported July 12, 2014 and first released with OpenBSD 5.6.
         Started by Gilles Chehade.          Maintained by Reyk Floeter and Florian Obser.
         Imported November 1, 2008 and first released with OpenBSD 4.6.      <li><a href="https://man.openbsd.org/rcctl.8">rcctl(8)</a>:
         Now maintained by Gilles Chehade and Eric Faurot.          Written and maintained by Antoine Jacoutot.
     </li>          Imported August 19, 2014 and first released with OpenBSD 5.7.
     <li>      <li><a href="https://man.openbsd.org/file.1">file(1)</a>:
         <a href="http://tmux.github.io/">tmux</a>,          Rewritten from scratch and maintained by Nicholas Marriott.
         <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>:          Imported April 24, 2015 and first released with OpenBSD 5.8.
         Started in 2007 and maintained by Nicholas Marriott.      <li><a href="https://man.openbsd.org/doas.1">doas(1)</a>:
         Imported June 1, 2009, first released with OpenBSD 4.6.          Written and maintained by Ted Unangst.
     </li>          Imported July 16, 2015 and first released with OpenBSD 5.8.
     <li>      <li><a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>:
         <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,          Written and maintained by YASUOKA Masahiko.
         <a href="https://man.openbsd.org/ldpctl.8">ldpctl(8)</a>:          Imported July 21, 2015 and first released with OpenBSD 5.8.
         Started by Michele Marchetto.      <li><a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,
         Imported June 1, 2009 and first released with OpenBSD 4.6.          <a href="https://man.openbsd.org/eigrpctl.8">eigrpctl(8)</a>:
         Now maintained by Claudio Jeker.          Written and maintained by Renato Westphal.
     </li>          Imported October 2, 2015 and first released with OpenBSD 5.9.
     <li>      <li><a href="https://man.openbsd.org/rebound.8">rebound(8)</a>:
         <a href="http://mdocml.bsd.lv/">mandoc</a>          Written and maintained by Ted Unangst.
         including <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>,          Imported October 15, 2015 and first released with OpenBSD 5.9.
         <a href="https://man.openbsd.org/man.1">man(1)</a>,      <li><a href="https://man.openbsd.org/vmm.4">vmm(4)</a>,
         <a href="https://man.openbsd.org/apropos.1">apropos(1)</a>,          <a href="https://man.openbsd.org/vmd.8">vmd(8)</a>,
         <a href="https://man.openbsd.org/makewhatis.8">makewhatis(8)</a>,          <a href="https://man.openbsd.org/vmctl.8">vmctl(8)</a>:
         <a href="https://man.openbsd.org/man.cgi.8">man.cgi(8)</a>:          Written and maintained by Mike Larkin and Reyk Floeter.
         Started by Kristaps Dzonsons in November 2008.          Imported November 13, 2015 and first released with OpenBSD 5.9.
         Imported April 6, 2009, first released with OpenBSD 4.8.      <li><a href="https://man.openbsd.org/pdisk.8">pdisk(8)</a>:
         Now maintained by Ingo Schwarze.          Originally written by Eryk Vershen in 1996-1998,
     </li>          rewritten and maintained by Kenneth Westerback since January 11, 2016
     <li>          and first released with OpenBSD 5.9.
         <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,      <li><a href="https://man.openbsd.org/mknod.8">mknod(8)</a>:
         <a href="https://man.openbsd.org/ldapctl.8">ldapctl(8)</a>:          Original version from Version 6 AT&amp;T UNIX (1975),
         Written by Martin Hedenfalk.          last rewritten by Marc Espie on March 5, 2016
         Imported May 31, 2010 and first released with OpenBSD 4.8.          and first released with OpenBSD 6.0.
     </li>      <li><a href="https://man.openbsd.org/audioctl.1">audioctl(1)</a>:
     <li>          Originally written by Lennart Augustsson in 1997,
         <a href="http://www.openiked.org/">OpenIKED</a>          rewritten and maintained by Alexandre Ratchov since June 21, 2016
         including <a href="https://man.openbsd.org/iked.8">iked(8)</a>          and first released with OpenBSD 6.0.
         and <a href="https://man.openbsd.org/ikectl.8">ikectl(8)</a>:      <li><a href="https://man.openbsd.org/switchd.8">switchd(8)</a>,
         Started by Reyk Floeter.          <a href="https://man.openbsd.org/switchctl.8">switchctl(8)</a>:
         Imported June 3, 2010 and first released with OpenBSD 4.8.          Written and maintained by Reyk Floeter.
         Now maintained by Reyk Floeter and Mike Belopuhov.          Imported July 19, 2016; released with OpenBSD 6.1.
     </li>      <li><a href="https://man.openbsd.org/acme-client.1">acme-client(1)</a>:
     <li>          Written by Kristaps Dzonsons, imported August 31, 2016; released
         <a href="https://man.openbsd.org/iscsid.8">iscsid(8)</a>,          with OpenBSD 6.1.
         <a href="https://man.openbsd.org/iscsictl.8">iscsictl(8)</a>:      <li><a href="https://man.openbsd.org/syspatch.8">syspatch(8)</a>:
         Written and maintained by Claudio Jeker.          Written and maintained by Antoine Jacoutot.
         Imported September 24, 2010 and first released with OpenBSD 4.9.          Imported September 5, 2016; released with OpenBSD 6.1.
     </li>      <li><a href="https://man.openbsd.org/ping.8">ping(8)</a>:
     <li>          Restructured to include IPv6 functionality and maintained by Florian Obser.
         <a href="https://man.openbsd.org/rc.d.8">rc.d(8)</a>,          The separate
         <a href="https://man.openbsd.org/rc.subr.8">rc.subr(8)</a>:          <a href="https://man.openbsd.org/OpenBSD-6.0/ping6.8">ping6(8)</a>
         Written and maintained by Robert Nagy and Antoine Jacoutot.          was superseded on September 17, 2016,
         Imported October 26, 2010 and first released with OpenBSD 4.9.          and the new, combined version was released with OpenBSD 6.1.
     </li>      <li><a href="https://man.openbsd.org/xenodm.1">xenodm(1)</a>:
     <li>          Cleaned-up fork of
         <a href="https://man.openbsd.org/tftpd.8">tftpd(8)</a>:          <a href="https://man.openbsd.org/OpenBSD-6.0/xdm.1">xdm(1)</a>
         Written and maintained by David Gwynne.          maintained by Matthieu Herrb.
         Imported March 2, 2012 and first released with OpenBSD 5.2.          Imported October 23, 2016; released with OpenBSD 6.1.
     </li>      <li><a href="https://man.openbsd.org/ocspcheck.8">ocspcheck(8)</a>:
     <li>          Written and maintained by Bob Beck.
         <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,          Imported January 24, 2017; released with OpenBSD 6.1.
         <a href="https://man.openbsd.org/npppctl.8">npppctl(8)</a>:      <li><a href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>:
         Started by Internet Initiative Japan Inc.          Written and maintained by Florian Obser.
         Imported January 11, 2010, first released with OpenBSD 5.3.          Imported March 18, 2017; released with OpenBSD 6.2.
         Maintained by YASUOKA Masahiko.      <li><a href="https://man.openbsd.org/rad.8">rad(8)</a>:
     </li>          Written and maintained by Florian Obser.
     <li>          Imported July 10, 2018; released with OpenBSD 6.4.
         <a href="https://man.openbsd.org/ldomd.8">ldomd(8)</a>,      <li><a href="https://man.openbsd.org/unwind.8">unwind(8)</a>:
         <a href="https://man.openbsd.org/ldomctl.8">ldomctl(8)</a>:          Written and maintained by Florian Obser.
         Written and maintained by Mark Kettenis.          Imported January 23, 2019; released with OpenBSD 6.5.
         Imported October 26, 2012 and first released with OpenBSD 5.3.      <li><a href="https://man.openbsd.org/openrsync.1">openrsync(1)</a>:
     </li>          Written by Kristaps Dzonsons.
     <li>          Imported February 10, 2019; released with OpenBSD 6.5.
         <a href="https://man.openbsd.org/sndiod.8">sndiod(8)</a>:  
         Written and maintained by Alexandre Ratchov.  
         Imported November 23, 2012 and first released with OpenBSD 5.3.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/cu.1">cu(1)</a>:  
         Written and maintained by Nicholas Marriott.  
         Imported July 10, 2012 and first released with OpenBSD 5.4.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/identd.8">identd(8)</a>:  
         Written and maintained by David Gwynne.  
         Imported March 18, 2013 and first released with OpenBSD 5.4.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/slowcgi.8">slowcgi(8)</a>:  
         Written and maintained by Florian Obser.  
         Imported May 23, 2013 and first released with OpenBSD 5.4.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/signify.1">signify(1)</a>:  
         Written and maintained by <a href="http://www.tedunangst.com/flak/post/signify">Ted Unangst</a>.  
         Imported December 31, 2013 and first released with OpenBSD 5.5.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/htpasswd.1">htpasswd(1)</a>:  
         Written and maintained by Florian Obser.  
         Imported March 17, 2014 and first released with OpenBSD 5.6.  
     </li>  
     <li>  
         <a href="https://www.libressl.org/">LibreSSL</a>:  
         Started by Ted Unangst, Bob Beck, Joel Sing, Miod Vallat, Philip Guenther,  
         and Theo de Raadt on April 13, 2014, as a fork of OpenSSL 1.0.1g.  
         First released with OpenBSD 5.6.  
         Portable version maintained by Brent Cook.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>:  
         Started by Reyk Floeter.  
         Imported July 12, 2014 and first released with OpenBSD 5.6.  
         Maintained by Reyk Floeter and Florian Obser.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/rcctl.8">rcctl(8)</a>:  
         Written and maintained by Antoine Jacoutot.  
         Imported August 19, 2014 and first released with OpenBSD 5.7.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/file.1">file(1)</a>:  
         Rewritten from scratch and maintained by Nicholas Marriott.  
         Imported April 24, 2015 and first released with OpenBSD 5.8.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/doas.1">doas(1)</a>:  
         Written and maintained by Ted Unangst.  
         Imported July 16, 2015 and first released with OpenBSD 5.8.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>:  
         Written and maintained by YASUOKA Masahiko.  
         Imported July 21, 2015 and first released with OpenBSD 5.8.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,  
         <a href="https://man.openbsd.org/eigrpctl.8">eigrpctl(8)</a>:  
         Written and maintained by Renato Westphal.  
         Imported October 2, 2015 and first released with OpenBSD 5.9.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/rebound.8">rebound(8)</a>:  
         Written and maintained by Ted Unangst.  
         Imported October 15, 2015 and first released with OpenBSD 5.9.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/vmm.4">vmm(4)</a>,  
         <a href="https://man.openbsd.org/vmd.8">vmd(8)</a>,  
         <a href="https://man.openbsd.org/vmctl.8">vmctl(8)</a>:  
         Written and maintained by Mike Larkin and Reyk Floeter.  
         Imported November 13, 2015 and first released with OpenBSD 5.9.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/pdisk.8">pdisk(8)</a>:  
         Originally written by Eryk Vershen in 1996-1998,  
         rewritten and maintained by Kenneth Westerback since January 11, 2016  
         and first released with OpenBSD 5.9.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/mknod.8">mknod(8)</a>:  
         Original version from Version 6 AT&amp;T UNIX (1975),  
         last rewritten by Marc Espie on March 5, 2016  
         and first released with OpenBSD 6.0.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/audioctl.1">audioctl(1)</a>:  
         Originally written by Lennart Augustsson in 1997,  
         rewritten and maintained by Alexandre Ratchov since June 21, 2016  
         and first released with OpenBSD 6.0.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/switchd.8">switchd(8)</a>,  
         <a href="https://man.openbsd.org/switchctl.8">switchctl(8)</a>:  
         Written and maintained by Reyk Floeter.  
         Imported July 19, 2016; released with OpenBSD 6.1.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/acme-client.1">acme-client(1)</a>:  
         Written by Kristaps Dzonsons, imported August 31, 2016; released  
         with OpenBSD 6.1.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/syspatch.8">syspatch(8)</a>:  
         Written and maintained by Antoine Jacoutot.  
         Imported September 5, 2016; released with OpenBSD 6.1.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/ping.8">ping(8)</a>:  
         Restructured to include IPv6 functionality and maintained by Florian Obser.  
         The separate  
         <a href="https://man.openbsd.org/OpenBSD-6.0/ping6.8">ping6(8)</a>  
         was superseded on September 17, 2016,  
         and the new, combined version was released with OpenBSD 6.1.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/xenodm.1">xenodm(1)</a>:  
         Cleaned-up fork of  
         <a href="https://man.openbsd.org/OpenBSD-6.0/xdm.1">xdm(1)</a>  
         maintained by Matthieu Herrb.  
         Imported October 23, 2016; released with OpenBSD 6.1.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/ocspcheck.8">ocspcheck(8)</a>:  
         Written and maintained by Bob Beck.  
         Imported January 24, 2017; released with OpenBSD 6.1.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>:  
         Written and maintained by Florian Obser.  
         Imported March 18, 2017; released with OpenBSD 6.2.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/rad.8">rad(8)</a>:  
         Written and maintained by Florian Obser.  
         Imported July 10, 2018; released with OpenBSD 6.4.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/unwind.8">unwind(8)</a>:  
         Written and maintained by Florian Obser.  
         Imported January 23, 2019; released with OpenBSD 6.5.  
     </li>  
     <li>  
         <a href="https://man.openbsd.org/openrsync.1">openrsync(1)</a>:  
         Written by Kristaps Dzonsons.  
         Imported February 10, 2019; released with OpenBSD 6.5.  
     </li>  
 </ul>  </ul>
   
 <h3>Projects maintained by OpenBSD developers outside OpenBSD</h3>  <h3>Projects maintained by OpenBSD developers outside OpenBSD</h3>
   
 <ul>  <ul>
     <li>      <li><a href="http://www.sudo.ws/">sudo</a>:
         <a href="http://www.sudo.ws/">sudo</a>:          Started by Bob Coggeshall and Cliff Spencer around 1980.
         Started by Bob Coggeshall and Cliff Spencer around 1980.          Imported November 18, 1999, first released with OpenBSD 2.7.
         Imported November 18, 1999, first released with OpenBSD 2.7.          Now maintained by Todd Miller.
         Now maintained by Todd Miller.      <li><a href="http://bulabula.org/femail/">femail</a>:
     </li>          Written and maintained by Henning Brauer.
     <li>          Started in 2005, port available since September 22, 2005.
         <a href="http://bulabula.org/femail/">femail</a>:      <li><a href="http://www.midish.org/">midish</a>:
         Written and maintained by Henning Brauer.          Written and maintained by Alexandre Ratchov.
         Started in 2005, port available since September 22, 2005.          Started in 2003, port available since November 4, 2005.
     </li>      <li><a href="https://github.com/nicm/fdm">fdm</a>:
     <li>          Written and maintained by Nicholas Marriott.
         <a href="http://www.midish.org/">midish</a>:          Started in 2006, port available since January 18, 2007.
         Written and maintained by Alexandre Ratchov.      <li><a href="https://github.com/ajacoutot/toad/">toad</a>:
         Started in 2003, port available since November 4, 2005.          Written and maintained by Antoine Jacoutot.
     </li>          Started in 2013, port available since October 8, 2013.
     <li>      <li><a href="https://mandoc.bsd.lv/docbook2mdoc/">docbook2mdoc</a>:
         <a href="https://github.com/nicm/fdm">fdm</a>:          Started by Kristaps Dzonsons in 2014, maintained by Ingo Schwarze.
         Written and maintained by Nicholas Marriott.          Port available since April 3, 2014.
         Started in 2006, port available since January 18, 2007.      <li><a href="http://jasperla.github.io/portroach/">portroach</a>:
     </li>          Written and maintained by Jasper Lievisse Adriaanse,
     <li>          originally forked from FreeBSD's portscout.
         <a href="https://github.com/ajacoutot/toad/">toad</a>:          Started in 2014, port available since September 5, 2014.
         Written and maintained by Antoine Jacoutot.      <li><a href="https://github.com/yasuoka/cvs2gitdump">cvs2gitdump</a>:
         Started in 2013, port available since October 8, 2013.          Written and maintained by YASUOKA Masahiko.
     </li>          Started in 2012, port available since August 1, 2016.
     <li>  
         <a href="https://mandoc.bsd.lv/docbook2mdoc/">docbook2mdoc</a>:  
         Started by Kristaps Dzonsons in 2014, maintained by Ingo Schwarze.  
         Port available since April 3, 2014.  
     </li>  
     <li>  
         <a href="http://jasperla.github.io/portroach/">portroach</a>:  
         Written and maintained by Jasper Lievisse Adriaanse,  
         originally forked from FreeBSD's portscout.  
         Started in 2014, port available since September 5, 2014.  
     </li>  
     <li>  
         <a href="https://github.com/yasuoka/cvs2gitdump">cvs2gitdump</a>:  
         Written and maintained by YASUOKA Masahiko.  
         Started in 2012, port available since August 1, 2016.  
     </li>  
 </ul>  </ul>

Legend:
Removed from v.1.77  
changed lines
  Added in v.1.78