Skip to content
/ Vink Public

An XMPP daemon written in C (previously targeting the deprecated Google Wave Protocol)

License

Notifications You must be signed in to change notification settings

mortehu/Vink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c20b8a4 · Mar 29, 2015
Jan 14, 2010
Feb 15, 2010
Feb 15, 2010
Oct 17, 2009
Oct 17, 2009
Oct 17, 2009
Feb 15, 2010
Sep 11, 2010
Oct 17, 2009
Mar 29, 2015
Feb 12, 2010
Feb 20, 2010
Jan 19, 2010
Jan 23, 2010
Dec 31, 2009
Jan 19, 2010
Jan 23, 2010
Mar 29, 2015
Jan 23, 2010
Jan 21, 2010
Jan 25, 2010
Jan 25, 2010
Sep 11, 2010
Jan 25, 2010
Jan 25, 2010
Jan 25, 2010
Feb 10, 2010
Nov 11, 2009
Jan 19, 2010
Jan 23, 2010
Jan 25, 2010
Jan 19, 2010
Jan 23, 2010
Jan 19, 2010
Dec 29, 2009
Jan 25, 2010
Sep 11, 2010
Jan 25, 2010
Feb 15, 2010
Jan 25, 2010
Jan 23, 2010
Jan 19, 2010
Jan 23, 2010
Jan 21, 2010
Jan 25, 2010
Sep 11, 2010
Jan 3, 2010
Feb 15, 2010
Jan 25, 2010
Jan 23, 2010
Jan 25, 2010
Jan 25, 2010
Jan 23, 2010
Jan 25, 2010
Sep 11, 2010
Feb 2, 2010
Oct 17, 2009
Feb 10, 2010
Jan 23, 2010
Sep 11, 2010
Sep 11, 2010

Repository files navigation

CRYPT-CR

  Server: uniq, salt
  Client: SHA256(uniq ":" crypt(salt, passwd)) XOR passwd

SETTING UP DNS

  You need a record like this in your DNS server configuration:

    _xmpp-server._tcp IN SRV 0 10 5222 xmpp

  xmpp is the hostname of the server the vink daemon is running on.  If your
  domain is "example.org", this would mean "host.example.org" handles the
  "[email protected]" addresses.

SETTING UP TLS

  A TLS server needs a private key and a certificate that verifies the owner
  of this private key.  The certificate is usually provided by a Certificate
  Authority (CA).

  To create the private key, run:

    openssl genrsa -out /etc/vink.d/privkey.pem

  To create a certificate signing request for this key, run:

    openssl req -key /etc/vink.d/privkey.pem -new -out key.csr

  The "Common Name" certificate parameter is what software will look at to
  verify host names.  If your server is hosting "[email protected]", you need to
  enter "example.org" as your Common Name.

  Now you submit the "key.csr" file to a Certificate Authority, and you will
  get a certificate chain in return.  Save that file as
  "/etc/vink.d/certiciates.pem".  The reason why we call it a chain, is that
  there may be a series of certificates verifying each other, before ultimately
  ending up with a signature from someone trusted by all the major operating
  systems.

  You do not need the certificate from a Certificate Authority if you're only
  doing testing, or running on a closed network.  To sign your own certiicate,
  run this command instead of the second command:

    openssl req -key /etc/vink.d/privkey.pem -new -x509 -out /etc/vink.d/certificates.pem

SSL test:

  openssl s_client -CAfile /etc/ssl/certs/ca-certificates.crt -host wave.rashbox.org -port 5222

Discovery result from acmewave.com 2009-11-07

  <iq type="result" id="157-3" from="acmewave.com" to="rashbox.org">
    <query xmlns="http://jabber.org/protocol/disco#info">
      <identity category="server" name="Openfire Server" type="im"/>
      <identity category="pubsub" type="pep"/>
      <feature var="google:jingleinfo"/>
      <feature var="http://jabber.org/protocol/address"/>
      <feature var="http://jabber.org/protocol/commands"/>
      <feature var="http://jabber.org/protocol/disco#info"/>
      <feature var="http://jabber.org/protocol/disco#items"/>
      <feature var="http://jabber.org/protocol/offline"/>
      <feature var="http://jabber.org/protocol/pubsub"/>
      <feature var="http://jabber.org/protocol/pubsub#collections"/>
      <feature var="http://jabber.org/protocol/pubsub#config-node"/>
      <feature var="http://jabber.org/protocol/pubsub#create-and-configure"/>
      <feature var="http://jabber.org/protocol/pubsub#create-nodes"/>
      <feature var="http://jabber.org/protocol/pubsub#default_access_model_open"/>
      <feature var="http://jabber.org/protocol/pubsub#delete-nodes"/>
      <feature var="http://jabber.org/protocol/pubsub#get-pending"/>
      <feature var="http://jabber.org/protocol/pubsub#instant-nodes"/>
      <feature var="http://jabber.org/protocol/pubsub#item-ids"/>
      <feature var="http://jabber.org/protocol/pubsub#manage-subscriptions"/>
      <feature var="http://jabber.org/protocol/pubsub#meta-data"/>
      <feature var="http://jabber.org/protocol/pubsub#modify-affiliations"/>
      <feature var="http://jabber.org/protocol/pubsub#multi-subscribe"/>
      <feature var="http://jabber.org/protocol/pubsub#outcast-affiliation"/>
      <feature var="http://jabber.org/protocol/pubsub#persistent-items"/>
      <feature var="http://jabber.org/protocol/pubsub#presence-notifications"/>
      <feature var="http://jabber.org/protocol/pubsub#publish"/>
      <feature var="http://jabber.org/protocol/pubsub#publisher-affiliation"/>
      <feature var="http://jabber.org/protocol/pubsub#purge-nodes"/>
      <feature var="http://jabber.org/protocol/pubsub#retract-items"/>
      <feature var="http://jabber.org/protocol/pubsub#retrieve-affiliations"/>
      <feature var="http://jabber.org/protocol/pubsub#retrieve-default"/>
      <feature var="http://jabber.org/protocol/pubsub#retrieve-items"/>
      <feature var="http://jabber.org/protocol/pubsub#retrieve-subscriptions"/>
      <feature var="http://jabber.org/protocol/pubsub#subscribe"/>
      <feature var="http://jabber.org/protocol/pubsub#subscription-options"/>
      <feature var="http://jabber.org/protocol/rsm"/>
      <feature var="jabber:iq:last"/>
      <feature var="jabber:iq:privacy"/>
      <feature var="jabber:iq:private"/>
      <feature var="jabber:iq:register"/>
      <feature var="jabber:iq:roster"/>
      <feature var="jabber:iq:time"/>
      <feature var="jabber:iq:version"/>
      <feature var="urn:xmpp:ping"/>
      <feature var="vcard-temp"/>
    </query>
  </iq>

About

An XMPP daemon written in C (previously targeting the deprecated Google Wave Protocol)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published