@@ -15,12 +15,12 @@ license = "LGPL-3.0+"
gitlab = { repository = "lumi/xmpp-rs" }
[dependencies]
-xml-rs = "0.3.6"
+xml-rs = "0.4.1"
openssl = "0.9.7"
-base64 = "0.4.0"
-minidom = "0.2.0"
+base64 = "0.5.2"
+minidom = "0.3.0"
jid = "0.2.0"
-sasl = "0.3.0"
+sasl = "0.4.0"
sha-1 = "0.3.2"
[features]
@@ -5,12 +5,10 @@ use ns;
use plugin::{Plugin, PluginProxyBinding};
use event::AbstractEvent;
use connection::{Connection, C2S};
-use sasl::{ Mechanism as SaslMechanism
- , Credentials as SaslCredentials
- , Secret as SaslSecret
- , ChannelBinding
- };
-use sasl::mechanisms::{Plain, Scram, Sha1, Sha256};
+use sasl::client::Mechanism as SaslMechanism;
+use sasl::client::mechanisms::{Plain, Scram};
+use sasl::common::{Credentials as SaslCredentials, Identity, Secret, ChannelBinding};
+use sasl::common::scram::{Sha1, Sha256};
use components::sasl_error::SaslError;
use util::FromElement;
@@ -64,8 +62,8 @@ impl ClientBuilder {
/// Sets the password to use.
pub fn password<P: Into<String>>(mut self, password: P) -> ClientBuilder {
self.credentials = SaslCredentials {
- username: Some(self.jid.node.clone().expect("JID has no node")),
- secret: SaslSecret::Password(password.into()),
+ identity: Identity::Username(self.jid.node.clone().expect("JID has no node")),
+ secret: Secret::password_plain(password),
channel_binding: ChannelBinding::None,
};
self
@@ -14,7 +14,7 @@ use xml::writer::Error as EmitterError;
use minidom::Error as MinidomError;
-use base64::Base64Error;
+use base64::DecodeError;
use components::sasl_error::SaslError;
@@ -27,7 +27,7 @@ pub enum Error {
HandshakeError(HandshakeError<TcpStream>),
OpenSslErrorStack(ErrorStack),
MinidomError(MinidomError),
- Base64Error(Base64Error),
+ Base64Error(DecodeError),
SaslError(Option<String>),
XmppSaslError(SaslError),
FormatError(FormatError),
@@ -71,8 +71,8 @@ impl From<MinidomError> for Error {
}
}
-impl From<Base64Error> for Error {
- fn from(err: Base64Error) -> Error {
+impl From<DecodeError> for Error {
+ fn from(err: DecodeError) -> Error {
Error::Base64Error(err)
}
}
@@ -20,7 +20,7 @@ use error::Error;
#[allow(unused_imports)]
use openssl::ssl::{SslMethod, Ssl, SslContextBuilder, SslStream, SSL_VERIFY_NONE, SslConnectorBuilder};
-use sasl::ChannelBinding;
+use sasl::common::ChannelBinding;
/// A trait which transports are required to implement.
pub trait Transport {