Skip to content
  • Leigh B. Stoller's avatar
    First round of ssl'ification of tmcd/tmcc. This needs to be looked at · ffe40d2e
    Leigh B. Stoller authored
    by smarter brains by me (I have asked Dave to look it over). Anyway ...
    
    I added a top level ssl directory which has a bunch of goo for
    creating certificates and keys.  I currently create a Certificate
    Authority, a server certificate, and a client certificate. The private
    keys for all three are unencrypted, so no password is required. All
    key/cert combos can be installed on boss. The client side needs the
    key/cert pair (in one file), and the CA cert (no key!). There are
    install targets to do this. NOTE, you do not want to create/install
    these without being careful, since you could instantly invalidate all
    the clients!
    
    I have added the necessary SSL routines to tmcd/tmcc. See the ssl.c
    and ssl.h file. I have set it up so that with all you need to do is
    uncomment three lines in the makefile, and accept,connect,read,write,
    and close are redirected to SSL'ified versions in ssl.c. The current
    security model is that the client and server both "demand" certificate
    verification from the other side (as opposed to just server side
    verification). tmcd reads in server.pem, while tmcc reads in
    client.pem. Both read in the emulab.pem (CA cert with no private
    key).
    
    Initial testing indicates I have done this at least partially
    correctly. Whoever invented this stuff has a really twisted mind
    though. There are some questions at the top of ssl.c that need to be
    answered.
    
    Oh, also redid all the syslog stuff throughout tmcd.
    ffe40d2e