irc: add support of "ecdsa-nist256p-challenge" SASL mechanism (closes #251)

v2.8-utf8proc
Sébastien Helleu 2015-01-19 23:52:33 +01:00
parent 083a6c741d
commit e2be01833f
32 changed files with 1096 additions and 248 deletions

View File

@ -17,6 +17,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
=== New features
* irc: add support of "ecdsa-nist256p-challenge" SASL mechanism (closes #251)
* core: add priority in plugins to initialize them in order
* doc: add Russian man page

View File

@ -568,13 +568,18 @@
** Typ: integer
** Werte: continue, reconnect, disconnect (Standardwert: `continue`)
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
** Beschreibung: `file with ECC private key for mechanism "ecdsa-nist256p-challenge" ("%h" will be replaced by WeeChat home, "~/.weechat" by default)`
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette (Standardwert: `""`)
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
** Beschreibung: `Verfahren welches bei einer SASL Authentifizierung angewandt werden soll: "plain" Passwort wird im Klartext gesendet, "dh-blowfish" Passwort wird mittels blowfish verschlüsselt, "dh-aes" Passwort wird mittels AES verschlüsselt, "external" SSL Zertifikat welches auf Client Seite vorliegt, wird verwendet`
** Beschreibung: `mechanism for SASL authentication: "plain" for plain text password, "ecdsa-nist256p-challenge" for key-based challenge authentication, "external" for authentication using client side SSL cert, "dh-blowfish" for blowfish crypted password (insecure, not recommended), "dh-aes" for AES crypted password (insecure, not recommended)`
** Typ: integer
** Werte: plain, dh-blowfish, dh-aes, external (Standardwert: `plain`)
** Werte: plain, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes (Standardwert: `plain`)
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
** Beschreibung: `Passwort für SASL Authentifikation (Hinweis: Inhalt wird evaluiert, siehe /help eval)`
** Beschreibung: `password for SASL authentication; this option is not used for mechanisms "ecdsa-nist256p-challenge" and "external" (note: content is evaluated, see /help eval)`
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette (Standardwert: `""`)
@ -584,7 +589,7 @@
** Werte: 1 .. 3600 (Standardwert: `15`)
* [[option_irc.server_default.sasl_username]] *irc.server_default.sasl_username*
** Beschreibung: `Username für SASL Authentifikation (Hinweis: Inhalt wird evaluiert, siehe /help eval)`
** Beschreibung: `username for SASL authentication; this option is not used for mechanism "external" (note: content is evaluated, see /help eval)`
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette (Standardwert: `""`)

View File

@ -102,7 +102,7 @@ welche Pakete optional genutzt werden können.
| libcurl4-gnutls-dev | | *ja* | URL Transfer
| zlib1g-dev | | *ja* | Kompression für Pakete, die mittels Relay- (WeeChat Protokoll), Script-Erweiterung übertragen werden
| libgcrypt20-dev | | *ja* | Geschützte Daten, IRC SASL Authentifikation (DH-BLOWFISH/DH-AES), Skript-Erweiterung
| libgnutls28-dev | ≥ 2.2.0 | | SSL Verbindung zu einem IRC Server, Unterstützung von SSL in der Relay-Erweiterung
| libgnutls28-dev | ≥ 2.2.0 | | SSL Verbindung zu einem IRC Server, Unterstützung von SSL in der Relay-Erweiterung, IRC SASL Authentifikation (ECDSA-NIST256P-CHALLENGE)
| gettext | | | Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch)
| ca-certificates | | | Zertifikate für SSL Verbindungen
| libaspell-dev oder libenchant-dev | | | Aspell Erweiterung
@ -2219,9 +2219,11 @@ Für weiterreichende Informationen lesen Sie bitte: http://www.oftc.net/oftc/Nic
WeeChat unterstützt eine SASL Authentifikation, mittels verschiedener Mechanismen:
* 'plain': Passwort liegt in Klarschrift vor (Standard)
// TRANSLATION MISSING
* 'ecdsa-nist256p-challenge': challenge with public/private key
* 'external': SSL Zertifikat welches auf Client Seite vorliegt
* 'dh-blowfish': Passwort wird mittels blowfish verschlüsselt
* 'dh-aes': Passwort wird mittels AES verschlüsselt
* 'external': SSL Zertifikat welches auf Client Seite vorliegt
[NOTE]
Die "gcrypt" Bibliothek wird beim kompilieren von WeeChat benötigt um
@ -2231,8 +2233,12 @@ Optionen für Server sind:
* 'sasl_mechanism': Mechanismus welcher genutzt werden soll (siehe oben)
* 'sasl_timeout': Zeitüberschreitung für Authentifizierung (in Sekunden)
// TRANSLATION MISSING
* 'sasl_fail': action to perform if authentication fails
* 'sasl_username': Username (Nickname)
* 'sasl_password': Passwort
// TRANSLATION MISSING
* 'sasl_key': path to private key (for mechanism 'ecdsa-nist256p-challenge')
[[irc_tor_freenode]]
==== Verbindung zu Freenode mittels TOR/SASL herstellen

View File

@ -568,13 +568,18 @@
** type: integer
** values: continue, reconnect, disconnect (default value: `continue`)
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
** description: `file with ECC private key for mechanism "ecdsa-nist256p-challenge" ("%h" will be replaced by WeeChat home, "~/.weechat" by default)`
** type: string
** values: any string (default value: `""`)
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
** description: `mechanism for SASL authentication: "plain" for plain text password, "dh-blowfish" for blowfish crypted password, "dh-aes" for AES crypted password, "external" for authentication using client side SSL cert`
** description: `mechanism for SASL authentication: "plain" for plain text password, "ecdsa-nist256p-challenge" for key-based challenge authentication, "external" for authentication using client side SSL cert, "dh-blowfish" for blowfish crypted password (insecure, not recommended), "dh-aes" for AES crypted password (insecure, not recommended)`
** type: integer
** values: plain, dh-blowfish, dh-aes, external (default value: `plain`)
** values: plain, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes (default value: `plain`)
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
** description: `password for SASL authentication (note: content is evaluated, see /help eval)`
** description: `password for SASL authentication; this option is not used for mechanisms "ecdsa-nist256p-challenge" and "external" (note: content is evaluated, see /help eval)`
** type: string
** values: any string (default value: `""`)
@ -584,7 +589,7 @@
** values: 1 .. 3600 (default value: `15`)
* [[option_irc.server_default.sasl_username]] *irc.server_default.sasl_username*
** description: `username for SASL authentication (note: content is evaluated, see /help eval)`
** description: `username for SASL authentication; this option is not used for mechanism "external" (note: content is evaluated, see /help eval)`
** type: string
** values: any string (default value: `""`)

View File

@ -95,7 +95,7 @@ compile WeeChat.
| libcurl4-gnutls-dev | | *yes* | URL transfer
| zlib1g-dev | | *yes* | Compression of packets in relay plugin (weechat protocol), script plugin
| libgcrypt20-dev | | *yes* | Secured data, IRC SASL authentication (DH-BLOWFISH/DH-AES), script plugin
| libgnutls28-dev | ≥ 2.2.0 | | SSL connection to IRC server, support of SSL in relay plugin
| libgnutls28-dev | ≥ 2.2.0 | | SSL connection to IRC server, support of SSL in relay plugin, IRC SASL authentication (ECDSA-NIST256P-CHALLENGE)
| gettext | | | Internationalization (translation of messages; base language is English)
| ca-certificates | | | Certificates for SSL connections
| libaspell-dev or libenchant-dev | | | Aspell plugin
@ -2168,9 +2168,10 @@ For more information, look at http://www.oftc.net/oftc/NickServ/CertFP
WeeChat supports SASL authentication, using different mechanisms:
* 'plain': plain text password (default)
* 'ecdsa-nist256p-challenge': challenge with public/private key
* 'external': client side SSL cert
* 'dh-blowfish': blowfish encrypted password
* 'dh-aes': AES encrypted password
* 'external': client side SSL cert
[NOTE]
The "gcrypt" library is required when compiling WeeChat in order to use
@ -2180,8 +2181,10 @@ Options in servers are:
* 'sasl_mechanism': mechanism to use (see above)
* 'sasl_timeout': timeout (in seconds) for authentication
* 'sasl_fail': action to perform if authentication fails
* 'sasl_username': username (nick)
* 'sasl_password': password
* 'sasl_key': path to private key (for mechanism 'ecdsa-nist256p-challenge')
[[irc_tor_freenode]]
==== Connect to Freenode with TOR/SASL

View File

@ -568,13 +568,18 @@
** type: entier
** valeurs: continue, reconnect, disconnect (valeur par défaut: `continue`)
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
** description: `fichier avec la clé privée ECC pour le mécanisme "ecdsa-nist256p-challenge" ("%h" sera remplacé par le répertoire de base WeeChat, par défaut : "~/.weechat")`
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: `""`)
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
** description: `mécanisme pour l'authentification SASL : "plain" pour un mot de passe en clair, "dh-blowfish" pour un mot de passe chiffré avec blowfish, "dh-aes" pour un mot de passe chiffré avec AES, "external" pour une authentification en utilisant un certificat SSL côté client`
** description: `mécanisme pour l'authentification SASL : "plain" pour un mot de passe en clair, "ecdsa-nist256p-challenge" pour une authentification par challenge avec clé, "external" pour une authentification en utilisant un certificat SSL côté client, "dh-blowfish" pour un mot de passe chiffré avec blowfish (non sûr, non recommandé), "dh-aes" pour un mot de passe chiffré avec AES (non sûr, non recommandé)`
** type: entier
** valeurs: plain, dh-blowfish, dh-aes, external (valeur par défaut: `plain`)
** valeurs: plain, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes (valeur par défaut: `plain`)
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
** description: `mot de passe pour l'authentification SASL (note : le contenu est évalué, voir /help eval)`
** description: `mot de passe pour l'authentification SASL ; cette option n'est pas utilisée pour les mécanismes "ecdsa-nist256p-challenge" et "external" (note : le contenu est évalué, voir /help eval)`
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: `""`)
@ -584,7 +589,7 @@
** valeurs: 1 .. 3600 (valeur par défaut: `15`)
* [[option_irc.server_default.sasl_username]] *irc.server_default.sasl_username*
** description: `nom d'utilisateur pour l'authentification SASL (note : le contenu est évalué, voir /help eval)`
** description: `nom d'utilisateur pour l'authentification SASL ; cette option n'est pas utilisée pour le mécanisme "external" (note : le contenu est évalué, voir /help eval)`
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: `""`)

View File

@ -97,7 +97,7 @@ compiler WeeChat.
| libcurl4-gnutls-dev | | *oui* | Transfert d'URL
| zlib1g-dev | | *oui* | Compression des paquets dans l'extension relay (protocole weechat), extension script
| libgcrypt20-dev | | *oui* | Données sécurisées, authentification IRC SASL (DH-BLOWFISH/DH-AES), extension script
| libgnutls28-dev | ≥ 2.2.0 | | Connexion SSL au serveur IRC, support SSL dans l'extension relay
| libgnutls28-dev | ≥ 2.2.0 | | Connexion SSL au serveur IRC, support SSL dans l'extension relay, authentification IRC SASL (ECDSA-NIST256P-CHALLENGE)
| gettext | | | Internationalisation (traduction des messages; la langue de base est l'anglais)
| ca-certificates | | | Certificats pour les connexions SSL
| libaspell-dev ou libenchant-dev | | | Extension aspell
@ -2242,9 +2242,11 @@ WeeChat supporte l'authentification avec SASL, en utilisant différents
mécanismes :
* 'plain' : mot de passe en clair (par défaut)
// TRANSLATION MISSING
* 'ecdsa-nist256p-challenge' : challenge avec clé publique/privée
* 'external' : certificat SSL côté client
* 'dh-blowfish' : mot de passe chiffré avec blowfish
* 'dh-aes' : mot de passe chiffré avec AES
* 'external' : certificat SSL côté client
[NOTE]
La librairie "gcrypt" est requise lors de la compilation de WeeChat pour
@ -2254,8 +2256,11 @@ Les options dans le serveur sont :
* 'sasl_mechanism' : mécanisme à utiliser (voir ci-dessus)
* 'sasl_timeout' : délai d'attente maximum (en secondes) pour l'authentification
* 'sasl_fail' : action à effectuer si l'authentification échoue
* 'sasl_username' : nom d'utilisateur (pseudo)
* 'sasl_password' : mot de passe
* 'sasl_key' : chemin vers la clé privée (pour le mécanisme
'ecdsa-nist256p-challenge')
[[irc_tor_freenode]]
==== Connexion à Freenode avec TOR/SASL

View File

@ -568,13 +568,18 @@
** tipo: intero
** valori: continue, reconnect, disconnect (valore predefinito: `continue`)
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
** descrizione: `file with ECC private key for mechanism "ecdsa-nist256p-challenge" ("%h" will be replaced by WeeChat home, "~/.weechat" by default)`
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: `""`)
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
** descrizione: `meccanismo per l'autenticazione SASL: "plain" per le password in chiaro, "dh-blowfish" per le password cifrate in blowfish, "dh-aes" per le password cifrate in AES "external" per l'autenticazione con certificati SSL lato client`
** descrizione: `mechanism for SASL authentication: "plain" for plain text password, "ecdsa-nist256p-challenge" for key-based challenge authentication, "external" for authentication using client side SSL cert, "dh-blowfish" for blowfish crypted password (insecure, not recommended), "dh-aes" for AES crypted password (insecure, not recommended)`
** tipo: intero
** valori: plain, dh-blowfish, dh-aes, external (valore predefinito: `plain`)
** valori: plain, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes (valore predefinito: `plain`)
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
** descrizione: `password per l'autenticazione SASL (nota: il contenuto viene valutato, consultare /help eval)`
** descrizione: `password for SASL authentication; this option is not used for mechanisms "ecdsa-nist256p-challenge" and "external" (note: content is evaluated, see /help eval)`
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: `""`)
@ -584,7 +589,7 @@
** valori: 1 .. 3600 (valore predefinito: `15`)
* [[option_irc.server_default.sasl_username]] *irc.server_default.sasl_username*
** descrizione: `nome utente per l'autenticazione SASL (nota: il contenuto viene valutato, consultare /help eval)`
** descrizione: `username for SASL authentication; this option is not used for mechanism "external" (note: content is evaluated, see /help eval)`
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: `""`)

View File

@ -112,7 +112,7 @@ compilare WeeChat.
// TRANSLATION MISSING
| libgcrypt20-dev | | *sì* | Secured data, IRC SASL authentication (DH-BLOWFISH/DH-AES), script plugin
// TRANSLATION MISSING
| libgnutls28-dev | ≥ 2.2.0 | | Connessione SSL al server IRC, support of SSL in relay plugin
| libgnutls28-dev | ≥ 2.2.0 | | Connessione SSL al server IRC, support of SSL in relay plugin, IRC SASL authentication (ECDSA-NIST256P-CHALLENGE)
| gettext | | | Internazionalizzazione (traduzione dei messaggi; la lingua base è l'inglese)
| ca-certificates | | | Certificati per le connessioni SSL
| libaspell-dev o libenchant-dev | | | Plugin aspell
@ -2278,10 +2278,12 @@ WeeChat supports SASL authentication, using different mechanisms:
// TRANSLATION MISSING
* 'plain': password in chiaro (default)
// TRANSLATION MISSING
* 'ecdsa-nist256p-challenge': challenge with public/private key
* 'external': certificato SSL da lato client
// TRANSLATION MISSING
* 'dh-blowfish': blowfish encrypted password
// TRANSLATION MISSING
* 'dh-aes': AES encrypted password
* 'external': certificato SSL da lato client
[NOTE]
La libreria "gcrypt" è richiesta per compilare WeeChat al fine di usare il
@ -2292,8 +2294,12 @@ Le opzioni nel server sono:
// TRANSLATION MISSING
* 'sasl_mechanism': meccanismo da usare (see above)
* 'sasl_timeout': timeout (in secondi) per l'autenticazione
// TRANSLATION MISSING
* 'sasl_fail': action to perform if authentication fails
* 'sasl_username': nome utente (nick)
* 'sasl_password': password
// TRANSLATION MISSING
* 'sasl_key': path to private key (for mechanism 'ecdsa-nist256p-challenge')
[[irc_tor_freenode]]
==== Connessione a Freenode con TOR/SASL

View File

@ -568,13 +568,18 @@
** タイプ: 整数
** 値: continue, reconnect, disconnect (デフォルト値: `continue`)
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
** 説明: `file with ECC private key for mechanism "ecdsa-nist256p-challenge" ("%h" will be replaced by WeeChat home, "~/.weechat" by default)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
** 説明: `SASL 認証メカニズム: "plain" は平文パスワード、"dh-blowfish" は blowfish 暗号化パスワード、"dh-aes" は AES 暗号化パスワード、"external" はクライアント側の SSL 証明書を利用した認証`
** 説明: `mechanism for SASL authentication: "plain" for plain text password, "ecdsa-nist256p-challenge" for key-based challenge authentication, "external" for authentication using client side SSL cert, "dh-blowfish" for blowfish crypted password (insecure, not recommended), "dh-aes" for AES crypted password (insecure, not recommended)`
** タイプ: 整数
** 値: plain, dh-blowfish, dh-aes, external (デフォルト値: `plain`)
** 値: plain, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes (デフォルト値: `plain`)
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
** 説明: `SASL 認証のパスワード (注意: 値は評価されます、/help eval を参照してください)`
** 説明: `password for SASL authentication; this option is not used for mechanisms "ecdsa-nist256p-challenge" and "external" (note: content is evaluated, see /help eval)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@ -584,7 +589,7 @@
** 値: 1 .. 3600 (デフォルト値: `15`)
* [[option_irc.server_default.sasl_username]] *irc.server_default.sasl_username*
** 説明: `SASL 認証のユーザ名 (注意: 値は評価されます、/help eval を参照してください)`
** 説明: `username for SASL authentication; this option is not used for mechanism "external" (note: content is evaluated, see /help eval)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)

View File

@ -100,7 +100,8 @@ OS X では、http://brew.sh/[Homebrew] を使ってください:
| libcurl4-gnutls-dev | | *必須* | URL 転送
| zlib1g-dev | | *必須* | relay プラグインでパケットを圧縮 (weechat プロトコル)、スクリプトプラグイン
| libgcrypt20-dev | | *必須* | 保護データ、IRC SASL 認証 (DH-BLOWFISH/DH-AES)、スクリプトプラグイン
| libgnutls28-dev | ≥ 2.2.0 | | IRC サーバへの SSL 接続
// TRANSLATION MISSING
| libgnutls28-dev | ≥ 2.2.0 | | IRC サーバへの SSL 接続, IRC SASL authentication (ECDSA-NIST256P-CHALLENGE)
| gettext | | | 国際化 (メッセージの翻訳; ベース言語は英語です)
| ca-certificates | | | SSL 接続に必要な証明書、relay プラグインで SSL サポート
| libaspell-dev または libenchant-dev | | | aspell プラグイン
@ -2172,9 +2173,11 @@ $ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick
WeeChat は SASL 認証をサポートします、以下の認証メカニズムを利用できます:
* 'plain': 平文パスワード (デフォルト)
// TRANSLATION MISSING
* 'ecdsa-nist256p-challenge': challenge with public/private key
* 'external': クライアント側 SSL 証明書
* 'dh-blowfish': blowfish 暗号パスワード
* 'dh-aes': AES 暗号パスワード
* 'external': クライアント側 SSL 証明書
[NOTE]
"dh-blowfish" メカニズムを利用する場合、"gcrypt" ライブラリが
@ -2184,8 +2187,12 @@ WeeChat のコンパイル時に必要です (<<dependencies,依存関係>>を
* 'sasl_mechanism': 利用する認証メカニズム (上記参照)
* 'sasl_timeout': 認証時のタイムアウト (秒単位)
// TRANSLATION MISSING
* 'sasl_fail': action to perform if authentication fails
* 'sasl_username': ユーザ名 (ニックネーム)
* 'sasl_password': パスワード
// TRANSLATION MISSING
* 'sasl_key': path to private key (for mechanism 'ecdsa-nist256p-challenge')
[[irc_tor_freenode]]
==== TOR/SASL を使って Freenode に接続する場合

View File

@ -568,13 +568,18 @@
** typ: liczba
** wartości: continue, reconnect, disconnect (domyślna wartość: `continue`)
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
** opis: `file with ECC private key for mechanism "ecdsa-nist256p-challenge" ("%h" will be replaced by WeeChat home, "~/.weechat" by default)`
** typ: ciąg
** wartości: dowolny ciąg (domyślna wartość: `""`)
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
** opis: `mechanizm autentykacji SASL: "plain" dla hasła w czystym tekście, "dh-blowfish" dla hasła szyfrowanego za pomocą blowfish, "dh-aes" dla hasła szyfrowanego za pomocą AES, "external" dla uwierzytelnienia za pomocą certyfikatu SSL po stronie klienta`
** opis: `mechanism for SASL authentication: "plain" for plain text password, "ecdsa-nist256p-challenge" for key-based challenge authentication, "external" for authentication using client side SSL cert, "dh-blowfish" for blowfish crypted password (insecure, not recommended), "dh-aes" for AES crypted password (insecure, not recommended)`
** typ: liczba
** wartości: plain, dh-blowfish, dh-aes, external (domyślna wartość: `plain`)
** wartości: plain, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes (domyślna wartość: `plain`)
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
** opis: `hasło dla uwierzytelniania SASL (uwaga: zawartość jest przetwarzana, zobacz /help eval)`
** opis: `password for SASL authentication; this option is not used for mechanisms "ecdsa-nist256p-challenge" and "external" (note: content is evaluated, see /help eval)`
** typ: ciąg
** wartości: dowolny ciąg (domyślna wartość: `""`)
@ -584,7 +589,7 @@
** wartości: 1 .. 3600 (domyślna wartość: `15`)
* [[option_irc.server_default.sasl_username]] *irc.server_default.sasl_username*
** opis: `nazwa użytkownika dla uwierzytelniania SASL (uwaga: zawartość jest przetwarzana, zobacz /help eval)`
** opis: `username for SASL authentication; this option is not used for mechanism "external" (note: content is evaluated, see /help eval)`
** typ: ciąg
** wartości: dowolny ciąg (domyślna wartość: `""`)

View File

@ -101,7 +101,7 @@ WeeChat.
| libcurl4-gnutls-dev | | *tak* | Transfer URL
| zlib1g-dev | | *tak* | Kompresja pakietów we wtyczce relay (protokół weechat), wtyczka script
| libgcrypt20-dev | | *tak* | Zabezpieczone dane, uwierzytelnianie IRC SASL (DH-BLOWFISH/DH-AES), wtyczka script
| libgnutls28-dev | ≥ 2.2.0 | | Połączenia SSL z serwerami IRC, wsparcie dla SSL we wtyczce relay
| libgnutls28-dev | ≥ 2.2.0 | | Połączenia SSL z serwerami IRC, wsparcie dla SSL we wtyczce relay, uwierzytelnianie IRC SASL (ECDSA-NIST256P-CHALLENGE)
| gettext | | | Internacjonalizacja (tłumaczenie wiadomości; język bazowy to Angielski)
| ca-certificates | | | Certyfikaty dla połączeń SSL
| libaspell-dev or libenchant-dev | | | Wtyczka aspell
@ -2189,9 +2189,11 @@ Więcej informacji można znaleźć pod adresem: http://www.oftc.net/oftc/NickSe
WeeChat wspiera uwierzytelnianie SASL, używając różnych mechanizmów:
* 'plain': hasło w czystym tekście (domyślne)
// TRANSLATION MISSING
* 'ecdsa-nist256p-challenge': challenge with public/private key
* 'external': certyfikat SSL po stronie klienta
* 'dh-blowfish': hasło zaszyfrowane algorytmem blowfish
* 'dh-aes': hasło zaszyfrowane algorytmem AES
* 'external': certyfikat SSL po stronie klienta
[NOTE]
Biblioteka "gcrypt" jest wymagana podczas kompilacji WeeChat w celu dodania
@ -2201,8 +2203,12 @@ Opcje dla serwerów to:
* 'sasl_mechanism': mechanizm do użycia (zobacz wyżej)
* 'sasl_timeout': limit czasu (w sekundach) na uwierzytelnienie
// TRANSLATION MISSING
* 'sasl_fail': action to perform if authentication fails
* 'sasl_username': nazwa użytkownika (nick)
* 'sasl_password': hasło
// TRANSLATION MISSING
* 'sasl_key': path to private key (for mechanism 'ecdsa-nist256p-challenge')
[[irc_tor_freenode]]
==== Połączenie z siecią Freenode za pomocą TOR/SASL

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -6692,18 +6692,37 @@ msgid ""
msgstr ""
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
#, fuzzy
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
"heslo vyžadované klienty pro přístup k tomuto přesměrováni (prázdná hodnota "
"značí, že heslo není vyžadováno)"
#, fuzzy
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
"heslo vyžadované klienty pro přístup k tomuto přesměrováni (prázdná hodnota "
"značí, že heslo není vyžadováno)"
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"cesta pro hledání pluginů (\"%h\" bude nahrazeno domácím adresářem WeeChat, "
"\"~/.weechat\" je výchozí)"
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr "časový limit (v sekundách) před vzdaním SASL autentizace"
@ -7976,6 +7995,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s%s: server \"%s\" pro přesměrování nenalezen"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%s%s: nemůžu číst soubor \"%s\""
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%sgnutls: nevalidní certifikát \"%s\", chyba: %s"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s%s: nemohu vytvořit rouru"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s%s: nemohu vytvořit rouru"
#, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s%s: chyba při alokování nového serveru"
@ -8830,6 +8869,14 @@ msgstr ""
msgid "tree of windows"
msgstr "seznam oken"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sChyba: nemohu inicializovat plugin \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%sChyba: nemůžu načist plugin \"%s\": %s"
@ -8869,10 +8916,6 @@ msgid "%sError: function \"%s\" not found in plugin \"%s\", failed to load"
msgstr ""
"%sChyba: funkce \"%s\" nebyla v pluginu \"%s\" nalezena, načtení selhalo"
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sChyba: nemohu inicializovat plugin \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr "%sChyba: nemohu načíst plugin \"%s\" (nedostatek paměti)"

View File

@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-12-28 13:06+0100\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <>\n"
@ -7628,10 +7628,13 @@ msgstr ""
"multi-prefix, server-time, userhost-in-name (Beispiel: \"away-notify,multi-"
"prefix\")"
#, fuzzy
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
"Verfahren welches bei einer SASL Authentifizierung angewandt werden soll: "
"\"plain\" Passwort wird im Klartext gesendet, \"dh-blowfish\" Passwort wird "
@ -7639,18 +7642,31 @@ msgstr ""
"verschlüsselt, \"external\" SSL Zertifikat welches auf Client Seite "
"vorliegt, wird verwendet"
#, fuzzy
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
msgstr ""
"Username für SASL Authentifikation (Hinweis: Inhalt wird evaluiert, siehe /"
"help eval)"
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
"Passwort für SASL Authentifikation (Hinweis: Inhalt wird evaluiert, siehe /"
"help eval)"
#, fuzzy
msgid ""
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
"Passwort für SASL Authentifikation (Hinweis: Inhalt wird evaluiert, siehe /"
"help eval)"
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"Suchpfad für Erweiterungen (\"%h\"' wird durch das WeeChat-Basisverzeichnis "
"ersetzt, voreingestellt ist \"~/.weechat\")"
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr ""
"Zeitüberschreitung bis zum Abbruch der SASL Authentifizierung (in Sekunden)"
@ -9106,6 +9122,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s%s: Server \"%s\" für eine Weiterleitung wurde nicht gefunden"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%s%s: Datei \"%s\" kann nicht gelesen werden"
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%sgnutls: ungültiges Zertifikat \"%s\". Fehler: %s"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s%s: Pipe kann nicht erstellt werden: Fehler %d %s"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s%s: Adresse kann nicht ausgewertet werden: Fehler %d %s"
#, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s%s: Neuer Server konnte nicht alloziert werden"
@ -9945,6 +9981,14 @@ msgstr "Scroll-Info in Fenstern"
msgid "tree of windows"
msgstr "Baumstruktur der Fenster"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sFehler: Erweiterung \"%s\" kann nicht initialisiert werden"
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%sFehler: kann Erweiterung \"%s\" nicht installieren: %s"
@ -9991,10 +10035,6 @@ msgstr ""
"%sFehler: Funktion \"%s\" nicht in Erweiterung \"%s\" gefunden. Installation "
"fehlgeschlagen"
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sFehler: Erweiterung \"%s\" kann nicht initialisiert werden"
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr ""
@ -12324,3 +12364,10 @@ msgstr "%s%s: Zeitüberschreitung für \"%s\" mit %s"
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr ""
"%s%s: Verbindung konnte nicht hergestellt werden: unerwarteter Fehler (%d)"
#~ msgid ""
#~ "username for SASL authentication (note: content is evaluated, see /help "
#~ "eval)"
#~ msgstr ""
#~ "Username für SASL Authentifikation (Hinweis: Inhalt wird evaluiert, "
#~ "siehe /help eval)"

View File

@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -6937,21 +6937,40 @@ msgstr ""
#, fuzzy
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
"mecanismo de autenticación SASL: \"plain\" para contraseñas en texto plano, "
"\"dh-blowfish\" para contraseña encriptada, \"external\" para autentificar "
"utilizando un certificado SSL del cliente"
#, fuzzy
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
"los clientes requieren una clave para acceder este repetidor (sin valor "
"significa que no se requiere clave)"
#, fuzzy
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
"los clientes requieren una clave para acceder este repetidor (sin valor "
"significa que no se requiere clave)"
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"ruta para encontrar plugins (\"%h\" será reemplazado por el directorio raíz "
"de WeeChat, \"~/.weechat\" por defecto)"
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr ""
@ -8266,6 +8285,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s%s: servidor \"%s\" no encontrado para la redirección"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%s%s: no es posible leer el archivo \"%s\""
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%sgnutls: certificado \"%s\" inválido, error: %s"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s%s: no es posible crear la tubería"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s%s: no es posible crear la tubería"
#, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s%s: no hay suficiente memoria para crear el nuevo servidor"
@ -9114,6 +9153,14 @@ msgstr "información de desplazamiento en ventada"
msgid "tree of windows"
msgstr "árbol de ventanas"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sError: no ha sido posible inicializar el plugin \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%sError: no ha sido posible cargar el plugin \"%s\": %s"
@ -9155,10 +9202,6 @@ msgid "%sError: function \"%s\" not found in plugin \"%s\", failed to load"
msgstr ""
"%sError: función \"%s\" no encontrada en el plugin \"%s\", no se puede cargar"
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sError: no ha sido posible inicializar el plugin \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr ""

View File

@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-12-28 10:53+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2015-01-19 23:46+0100\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@ -7465,26 +7465,43 @@ msgstr ""
"server-time, userhost-in-names (exemple : \"away-notify,multi-prefix\")"
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
"mécanisme pour l'authentification SASL : \"plain\" pour un mot de passe en "
"clair, \"dh-blowfish\" pour un mot de passe chiffré avec blowfish, \"dh-aes"
"\" pour un mot de passe chiffré avec AES, \"external\" pour une "
"authentification en utilisant un certificat SSL côté client"
"clair, \"ecdsa-nist256p-challenge\" pour une authentification par challenge "
"avec clé, \"external\" pour une authentification en utilisant un certificat "
"SSL côté client, \"dh-blowfish\" pour un mot de passe chiffré avec blowfish "
"(non sûr, non recommandé), \"dh-aes\" pour un mot de passe chiffré avec AES "
"(non sûr, non recommandé)"
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
"nom d'utilisateur pour l'authentification SASL (note : le contenu est "
"évalué, voir /help eval)"
"nom d'utilisateur pour l'authentification SASL ; cette option n'est pas "
"utilisée pour le mécanisme \"external\" (note : le contenu est évalué, voir /"
"help eval)"
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
"mot de passe pour l'authentification SASL (note : le contenu est évalué, "
"voir /help eval)"
"mot de passe pour l'authentification SASL ; cette option n'est pas utilisée "
"pour les mécanismes \"ecdsa-nist256p-challenge\" et \"external\" (note : le "
"contenu est évalué, voir /help eval)"
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"fichier avec la clé privée ECC pour le mécanisme \"ecdsa-nist256p-challenge"
"\" (\"%h\" sera remplacé par le répertoire de base WeeChat, par défaut : "
"\"~/.weechat\")"
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr ""
@ -8872,6 +8889,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s%s : serveur \"%s\" non trouvé pour la redirection"
#, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%s%s : impossible de lire la clé privée dans le fichier \"%s\""
#, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%sgnutls : fichier de clé privée invalide : erreur %d %s"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr "%s%s : signature du challenge avec la clé publique ECC : %s"
#, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%sgnutls : impossible d'importer la clé privée : erreur %d %s"
#, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%sgnutls : impossible de signer les données hachées : erreur %d %s"
#, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s%s : impossible d'allouer un nouveau serveur"
@ -9698,6 +9735,14 @@ msgstr "info de défilement dans la fenêtre"
msgid "tree of windows"
msgstr "arbre des fenêtres"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sErreur : impossible d'initialiser l'extension \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%sErreur : impossible de charger l'extension \"%s\" : %s"
@ -9743,10 +9788,6 @@ msgstr ""
"%sErreur : la fonction \"%s\" n'existe pas dans l'extension \"%s\", échec de "
"chargement"
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sErreur : impossible d'initialiser l'extension \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr ""
@ -12060,3 +12101,10 @@ msgstr "%s%s : délai d'attente dépassé pour \"%s\" avec %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s : impossible de se connecter : erreur inattendue (%d)"
#~ msgid ""
#~ "username for SASL authentication (note: content is evaluated, see /help "
#~ "eval)"
#~ msgstr ""
#~ "nom d'utilisateur pour l'authentification SASL (note : le contenu est "
#~ "évalué, voir /help eval)"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -6184,19 +6184,32 @@ msgid ""
msgstr ""
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"modulok elérési útvonala ('%h' helyére automatikusan a WeeChat saját "
"könyvtára, alapértelmezésben ~/.weechat, kerül)"
#, fuzzy
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr "SSL használata a a kapcsolathoz"
@ -7411,6 +7424,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s a \"%s\" szerver nem található\n"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s DCC: nem sikerült a csövet létrehozni\n"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s DCC: nem sikerült a csövet létrehozni\n"
#, fuzzy, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s az új szerver lefoglalása sikertelen\n"
@ -8215,6 +8248,14 @@ msgstr ""
msgid "tree of windows"
msgstr "Mellőzések listája:\n"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, fuzzy, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%s nem sikerült a modult betölteni \"%s\"\n"
#, fuzzy, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%s nem sikerült a modult betölteni \"%s\": %s\n"
@ -8254,10 +8295,6 @@ msgstr ""
"%s a \"weechat_plugin_init\" függvény nem található a \"%s\" modulban, "
"betöltés sikertelen\n"
#, fuzzy, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%s nem sikerült a modult betölteni \"%s\"\n"
#, fuzzy, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr "%s nem sikerült a modult betölteni \"%s\" (nincs elég memória)\n"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -7077,28 +7077,44 @@ msgid ""
"multi-prefix\")"
msgstr ""
#, fuzzy
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
"meccanismo per l'autenticazione SASL: \"plain\" per le password in chiaro, "
"\"dh-blowfish\" per le password cifrate in blowfish, \"dh-aes\" per le "
"password cifrate in AES \"external\" per l'autenticazione con certificati "
"SSL lato client"
#, fuzzy
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
msgstr ""
"nome utente per l'autenticazione SASL (nota: il contenuto viene valutato, "
"consultare /help eval)"
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
"password per l'autenticazione SASL (nota: il contenuto viene valutato, "
"consultare /help eval)"
#, fuzzy
msgid ""
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
"password per l'autenticazione SASL (nota: il contenuto viene valutato, "
"consultare /help eval)"
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"path per la ricerca dei plugin (\"%h\" sarà sostituito dalla home di "
"WeeChat, \"~/.weechat come predefinita)"
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr "timeout (in secondi) prima di annullare l'autenticazione SASL"
@ -8423,6 +8439,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s%s: server \"%s\" non trovato per la redirezione"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%s%s: impossibile leggere il file \"%s\""
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%sgnutls: certificato \"%s\" non valido, errore: %s"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s%s: impossibile creare la pipe: errore %d %s"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s%s: impossibile creare la pipe: errore %d %s"
#, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s%s: errore durante l'allocazione del nuovo server"
@ -9262,6 +9298,14 @@ msgstr "scorrimento delle info nella finestra"
msgid "tree of windows"
msgstr "albero delle finestre"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sErrore: impossibile inizializzare il plugin \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%sErrore: impossibile caricare il plugin \"%s\": %s"
@ -9305,10 +9349,6 @@ msgstr ""
"%sErrore: funzione \"%s\" non trovata nel plugin \"%s\", impossibile "
"caricarlo"
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sErrore: impossibile inizializzare il plugin \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr ""
@ -11356,3 +11396,10 @@ msgstr "%s%s: timeout per \"%s\" con %s"
#, fuzzy, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: impossibile connettersi al mittente"
#~ msgid ""
#~ "username for SASL authentication (note: content is evaluated, see /help "
#~ "eval)"
#~ msgstr ""
#~ "nome utente per l'autenticazione SASL (nota: il contenuto viene valutato, "
#~ "consultare /help eval)"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2015-01-02 09:23+0900\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/translation_ja>\n"
@ -40,11 +40,11 @@ msgid "max chars"
msgstr "最大文字数"
msgid ""
"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
"color number or an alias; attributes are allowed before color (for text "
"color only, not background): \"*\" for bold, \"!\" for reverse, \"/\" for "
"italic, \"_\" for underline"
"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
"terminal color number or an alias; attributes are allowed before color (for "
"text color only, not background): \"*\" for bold, \"!\" for reverse, \"/\" "
"for italic, \"_\" for underline"
msgstr ""
"WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、"
"brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号ま"
@ -5963,8 +5963,8 @@ msgstr ""
" - 内部サーバ名 (/server add で作成されたもの、利用推奨)\n"
" - ホスト名/ポート番号又は IP アドレス/ポート番号、デフォルトの"
"ポート番号は 6667\n"
" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:password]@]"
"irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:"
"password]@]irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" 注意: アドレス/IP/URL を指定した場合、サーバを一時的に作ります "
"(保存しません)、/help irc.look.temporary_servers を参照してください。\n"
" option: サーバに関するオプション (ブール型オプションでは、value は無視さ"
@ -7172,25 +7172,41 @@ msgstr ""
"ト; WeeChat で利用できる機能: away-notify、extended-join、multi-prefix、"
"server-time、userhost-in-names (例: \"away-notify,multi-prefix\")"
#, fuzzy
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
"SASL 認証メカニズム: \"plain\" は平文パスワード、\"dh-blowfish\" は blowfish "
"暗号化パスワード、\"dh-aes\" は AES 暗号化パスワード、\"external\" はクライア"
"ント側の SSL 証明書を利用した認証"
#, fuzzy
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
msgstr ""
"SASL 認証のユーザ名 (注意: 値は評価されます、/help eval を参照してください)"
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
"SASL 認証のパスワード (注意: 値は評価されます、/help eval を参照してください)"
#, fuzzy
msgid ""
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
"SASL 認証のパスワード (注意: 値は評価されます、/help eval を参照してください)"
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"プラグイン検索パス (\"%h\" は WeeChat ホームに置換される、デフォルトでは "
"\"~/.weechat\")"
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr "SASL 認証を諦める前のタイムアウト (秒単位)"
@ -8530,6 +8546,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s%s: リダイレクトサーバ \"%s\" が見つかりません"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%s%s: ファイル \"%s\" を読み込めません"
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%sgnutls: 無効な証明書 \"%s\"、エラー: %s"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s%s: パイプを作成できません: エラー %d %s"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s%s: アドレスを解決できません: エラー %d %s"
#, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s%s: 新しいサーバの割り当て中にエラー"
@ -9332,6 +9368,14 @@ msgstr "ウィンドウ内のスクロール情報"
msgid "tree of windows"
msgstr "ウィンドウツリー"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sエラー: プラグイン \"%s\" の初期化に失敗"
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%sエラー: プラグイン \"%s\" のロードに失敗: %s"
@ -9373,10 +9417,6 @@ msgid "%sError: function \"%s\" not found in plugin \"%s\", failed to load"
msgstr ""
"%sエラー: 関数 \"%s\" がプラグイン \"%s\" の中に見つかりません、ロード失敗"
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sエラー: プラグイン \"%s\" の初期化に失敗"
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr "%sエラー: プラグイン \"%s\" のロードに失敗 (メモリ不足)"
@ -10950,8 +10990,8 @@ msgid ""
"Examples (you can also look at default triggers with /trigger listdefault):\n"
" add text attributes *bold*, _underline_ and /italic/ (only in user "
"messages):\n"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*"
"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"=="
"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
"underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:"
"italic}${re:1}${color:-italic}/\"\n"
" hide nicklist bar on small terminals:\n"
@ -11027,8 +11067,8 @@ msgstr ""
"\n"
"例 (/trigger listdefault でデフォルトトリガを見ることができます):\n"
" テキスト属性 *太字*、_下線_、/イタリック/ を追加 (ユーザメッセージのみ):\n"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*"
"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"=="
"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
"underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:"
"italic}${re:1}${color:-italic}/\"\n"
" 狭い端末ではニックネームリストバーを隠す:\n"
@ -11598,3 +11638,10 @@ msgstr "%s%s: \"%s\" のタイムアウト %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: 接続できません: 未定義のエラー (%d)"
#~ msgid ""
#~ "username for SASL authentication (note: content is evaluated, see /help "
#~ "eval)"
#~ msgstr ""
#~ "SASL 認証のユーザ名 (注意: 値は評価されます、/help eval を参照してくださ"
#~ "い)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-12-26 19:51+0100\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -7323,28 +7323,44 @@ msgstr ""
"multi-prefix, server-time, userhost-in-names (przykład: \"away-notify,multi-"
"prefix\")"
#, fuzzy
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
"mechanizm autentykacji SASL: \"plain\" dla hasła w czystym tekście, \"dh-"
"blowfish\" dla hasła szyfrowanego za pomocą blowfish, \"dh-aes\" dla hasła "
"szyfrowanego za pomocą AES, \"external\" dla uwierzytelnienia za pomocą "
"certyfikatu SSL po stronie klienta"
#, fuzzy
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
msgstr ""
"nazwa użytkownika dla uwierzytelniania SASL (uwaga: zawartość jest "
"przetwarzana, zobacz /help eval)"
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
"hasło dla uwierzytelniania SASL (uwaga: zawartość jest przetwarzana, zobacz /"
"help eval)"
#, fuzzy
msgid ""
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
"hasło dla uwierzytelniania SASL (uwaga: zawartość jest przetwarzana, zobacz /"
"help eval)"
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"ścieżka wyszukiwania wtyczek (\"%h\" zostanie zastąpione katalogiem domowym "
"WeeChat - domyślnie \"~/.weechat\")"
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr ""
"czas oczekiwania (w sekundach) przed zaprzestaniem uwierzytelniania SASL"
@ -8712,6 +8728,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s%s: serwer \"%s\" nie został znaleziony dla przekierowania"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%s%s: nie można odczytać pliku \"%s\""
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%sgnutls: błędny certyfikat \"%s\", błąd: %s"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s%s: nie można utworzyć strumienia: błąd %d %s"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s%s: nie można zinterpretować adresu: błąd %d %s"
#, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s%s: błąd podczas przydzielania nowego serwera"
@ -9519,6 +9555,14 @@ msgstr "informacje o przewijaniu w oknie"
msgid "tree of windows"
msgstr "drzewo okien"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sBłąd: nie można zainicjować wtyczki \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%sBłąd: nie można załadować wtyczki \"%s\": %s"
@ -9563,10 +9607,6 @@ msgstr ""
"%sBłąd: funkcja \"%s\" nie znaleziona we wtyczce \"%s\", nie udało się "
"załadować"
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sBłąd: nie można zainicjować wtyczki \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr "%sBłąd: nie można załadować wtyczki \"%s\" (za mało pamięci)"
@ -11819,3 +11859,10 @@ msgstr "%s%s: przekroczono czas na \"%s\" z %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: nie można połączyć: niespodziewany błąd (%d)"
#~ msgid ""
#~ "username for SASL authentication (note: content is evaluated, see /help "
#~ "eval)"
#~ msgstr ""
#~ "nazwa użytkownika dla uwierzytelniania SASL (uwaga: zawartość jest "
#~ "przetwarzana, zobacz /help eval)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -6433,18 +6433,37 @@ msgid ""
msgstr ""
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
#, fuzzy
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
"senha necessária para clientes acessarem este relay (vazio significa que "
"nenhuma senha é necessária)"
#, fuzzy
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
"senha necessária para clientes acessarem este relay (vazio significa que "
"nenhuma senha é necessária)"
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"caminho para a busca por plugins (\"%h\" será substituído pelo diretório do "
"WeeChat, \"~/.weechat/\" por padrão)"
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr "limite de tempo (sem segundos) antes de desistir da autenticação SASL"
@ -7674,6 +7693,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s%s: servidor \"%s\" não encontrado para redirecionamento"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%s%s: não foi possível ler arquivo \"%s\""
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%sgnutls: certificado \"%s\" inválido, erro: %s"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s%s: não foi possível criar pipe"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s%s: não foi possível criar pipe"
#, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s%s: erro ao alocar novo servidor"
@ -8490,6 +8529,14 @@ msgstr "rolar informação na janela"
msgid "tree of windows"
msgstr "árvore de janelas"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sErro: não foi possível inicializar plugin \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%sErro: não foi possível carregar plugin \"%s\": %s"
@ -8531,10 +8578,6 @@ msgid "%sError: function \"%s\" not found in plugin \"%s\", failed to load"
msgstr ""
"%sErro: função \"%s\" não encontrada no plugin \"%s\", falhou ao carregar"
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%sErro: não foi possível inicializar plugin \"%s\""
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr "%sErro: não foi possível carregar plugin \"%s\" (memória insuficiente)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -6210,19 +6210,32 @@ msgid ""
msgstr ""
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
#, fuzzy
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
"путь поиска pluginов ('%h' заменяется на домашний каталог WeeChat, по "
"умолчанию - ~/.weechat)"
#, fuzzy
msgid "timeout (in seconds) before giving up SASL authentication"
msgstr "использовать SSL при связи с сервером"
@ -7444,6 +7457,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr "%s сервер \"%s\" не найден\n"
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "Не могу записать лог-файл \"%s\"\n"
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "Не могу записать лог-файл \"%s\"\n"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr "%s DCC: не могу создать pipe\n"
#, fuzzy, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr "%s DCC: не могу создать pipe\n"
#, fuzzy, c-format
msgid "%s%s: error when allocating new server"
msgstr "%s не могу расположить новый сервер\n"
@ -8244,6 +8277,14 @@ msgstr ""
msgid "tree of windows"
msgstr "Список игнорирования:\n"
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, fuzzy, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%s не могу инициализировать plugin \"%s\"\n"
#, fuzzy, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr "%s не могу загрузить plugin \"%s\": %s\n"
@ -8282,10 +8323,6 @@ msgstr ""
"%s функция \"weechat_plugin_init\" не найдена в plugin'е \"%s\", загрузка не "
"удалась\n"
#, fuzzy, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr "%s не могу инициализировать plugin \"%s\"\n"
#, fuzzy, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr "%s не могу загрузить plugin \"%s\" (недостаточно памяти)\n"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-07-25 07:50+0200\n"
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -5533,17 +5533,27 @@ msgid ""
msgstr ""
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
msgid "timeout (in seconds) before giving up SASL authentication"
@ -6668,6 +6678,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr ""
#, fuzzy, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr "%sHata: dosya \"%s\" oluşturulamaz"
#, fuzzy, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr "%s%s: \"%s\" adresi bulunamadı"
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr ""
#, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr ""
#, c-format
msgid "%s%s: error when allocating new server"
msgstr ""
@ -7401,6 +7431,14 @@ msgstr ""
msgid "tree of windows"
msgstr ""
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr ""
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr ""
@ -7434,10 +7472,6 @@ msgstr ""
msgid "%sError: function \"%s\" not found in plugin \"%s\", failed to load"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr ""
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr ""

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"POT-Creation-Date: 2015-01-19 23:45+0100\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -5469,17 +5469,27 @@ msgid ""
msgstr ""
msgid ""
"mechanism for SASL authentication: \"plain\" for plain text password, \"dh-"
"blowfish\" for blowfish crypted password, \"dh-aes\" for AES crypted "
"password, \"external\" for authentication using client side SSL cert"
"mechanism for SASL authentication: \"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based challenge authentication, "
"\"external\" for authentication using client side SSL cert, \"dh-blowfish\" "
"for blowfish crypted password (insecure, not recommended), \"dh-aes\" for "
"AES crypted password (insecure, not recommended)"
msgstr ""
msgid ""
"username for SASL authentication (note: content is evaluated, see /help eval)"
"username for SASL authentication; this option is not used for mechanism "
"\"external\" (note: content is evaluated, see /help eval)"
msgstr ""
msgid ""
"password for SASL authentication (note: content is evaluated, see /help eval)"
"password for SASL authentication; this option is not used for mechanisms "
"\"ecdsa-nist256p-challenge\" and \"external\" (note: content is evaluated, "
"see /help eval)"
msgstr ""
msgid ""
"file with ECC private key for mechanism \"ecdsa-nist256p-challenge\" (\"%h\" "
"will be replaced by WeeChat home, \"~/.weechat\" by default)"
msgstr ""
msgid "timeout (in seconds) before giving up SASL authentication"
@ -6604,6 +6614,26 @@ msgstr ""
msgid "%s%s: server \"%s\" not found for redirect"
msgstr ""
#, c-format
msgid "%s%s: unable to read private key in file \"%s\""
msgstr ""
#, c-format
msgid "%sgnutls: invalid private key file: error %d %s"
msgstr ""
#, c-format
msgid "%s%s: signing the challenge with ECC public key: %s"
msgstr ""
#, c-format
msgid "%sgnutls: unable to import the private key: error %d %s"
msgstr ""
#, c-format
msgid "%sgnutls: unable to sign the hashed data: error %d %s"
msgstr ""
#, c-format
msgid "%s%s: error when allocating new server"
msgstr ""
@ -7337,6 +7367,14 @@ msgstr ""
msgid "tree of windows"
msgstr ""
#, c-format
msgid "Initializing plugin \"%s\" (priority: %d)"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr ""
#, c-format
msgid "%sError: unable to load plugin \"%s\": %s"
msgstr ""
@ -7370,10 +7408,6 @@ msgstr ""
msgid "%sError: function \"%s\" not found in plugin \"%s\", failed to load"
msgstr ""
#, c-format
msgid "%sError: unable to initialize plugin \"%s\""
msgstr ""
#, c-format
msgid "%sError: unable to load plugin \"%s\" (not enough memory)"
msgstr ""

View File

@ -4477,6 +4477,14 @@ irc_command_display_server (struct t_irc_server *server, int with_detail)
weechat_printf (NULL, " sasl_password. . . . : %s%s",
IRC_COLOR_CHAT_VALUE,
_("(hidden)"));
/* sasl_key */
if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SASL_KEY]))
weechat_printf (NULL, " sasl_key. . . . . . : ('%s')",
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SASL_KEY));
else
weechat_printf (NULL, " sasl_key. . . . . . : %s'%s'",
IRC_COLOR_CHAT_VALUE,
weechat_config_string (server->options[IRC_SERVER_OPTION_SASL_KEY]));
/* sasl_timeout */
if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SASL_TIMEOUT]))
weechat_printf (NULL, " sasl_timeout . . . . : (%d %s)",

View File

@ -1723,11 +1723,18 @@ irc_config_server_new_option (struct t_config_file *config_file,
new_option = weechat_config_new_option (
config_file, section,
option_name, "integer",
N_("mechanism for SASL authentication: \"plain\" for plain text "
"password, \"dh-blowfish\" for blowfish crypted password, "
"\"dh-aes\" for AES crypted password, \"external\" "
"for authentication using client side SSL cert"),
"plain|dh-blowfish|dh-aes|external", 0, 0,
N_("mechanism for SASL authentication: "
"\"plain\" for plain text password, "
"\"ecdsa-nist256p-challenge\" for key-based "
"challenge authentication, "
"\"external\" for authentication using client side SSL "
"cert, "
"\"dh-blowfish\" for blowfish crypted password "
"(insecure, not recommended), "
"\"dh-aes\" for AES crypted password "
"(insecure, not recommended)"),
"plain|ecdsa-nist256p-challenge|external|dh-blowfish|dh-aes",
0, 0,
default_value, value,
null_value_allowed,
callback_check_value, callback_check_value_data,
@ -1738,7 +1745,8 @@ irc_config_server_new_option (struct t_config_file *config_file,
new_option = weechat_config_new_option (
config_file, section,
option_name, "string",
N_("username for SASL authentication "
N_("username for SASL authentication; this option is not used "
"for mechanism \"external\" "
"(note: content is evaluated, see /help eval)"),
NULL, 0, 0,
default_value, value,
@ -1751,7 +1759,9 @@ irc_config_server_new_option (struct t_config_file *config_file,
new_option = weechat_config_new_option (
config_file, section,
option_name, "string",
N_("password for SASL authentication "
N_("password for SASL authentication; this option is not used "
"for mechanisms \"ecdsa-nist256p-challenge\" and "
"\"external\" "
"(note: content is evaluated, see /help eval)"),
NULL, 0, 0,
default_value, value,
@ -1760,6 +1770,21 @@ irc_config_server_new_option (struct t_config_file *config_file,
callback_change, callback_change_data,
NULL, NULL);
break;
case IRC_SERVER_OPTION_SASL_KEY:
new_option = weechat_config_new_option (
config_file, section,
option_name, "string",
N_("file with ECC private key for mechanism "
"\"ecdsa-nist256p-challenge\" "
"(\"%h\" will be replaced by WeeChat home, "
"\"~/.weechat\" by default)"),
NULL, 0, 0,
default_value, value,
null_value_allowed,
callback_check_value, callback_check_value_data,
callback_change, callback_change_data,
NULL, NULL);
break;
case IRC_SERVER_OPTION_SASL_TIMEOUT:
new_option = weechat_config_new_option (
config_file, section,

View File

@ -205,6 +205,7 @@ IRC_PROTOCOL_CALLBACK(authenticate)
{
int sasl_mechanism;
char *sasl_username, *sasl_password, *answer;
const char *sasl_key;
IRC_PROTOCOL_MIN_ARGS(2);
@ -218,26 +219,28 @@ IRC_PROTOCOL_CALLBACK(authenticate)
sasl_password = weechat_string_eval_expression (
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SASL_PASSWORD),
NULL, NULL, NULL);
sasl_key = IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SASL_KEY);
answer = NULL;
switch (sasl_mechanism)
{
case IRC_SASL_MECHANISM_DH_BLOWFISH:
answer = irc_sasl_mechanism_dh_blowfish (argv_eol[1],
sasl_username,
sasl_password);
case IRC_SASL_MECHANISM_PLAIN:
answer = irc_sasl_mechanism_plain (sasl_username,
sasl_password);
break;
case IRC_SASL_MECHANISM_DH_AES:
answer = irc_sasl_mechanism_dh_aes (argv_eol[1],
sasl_username,
sasl_password);
case IRC_SASL_MECHANISM_ECDSA_NIST256P_CHALLENGE:
answer = irc_sasl_mechanism_ecdsa_nist256p_challenge (
server, argv[1], sasl_username, sasl_key);
break;
case IRC_SASL_MECHANISM_EXTERNAL:
answer = strdup ("+");
break;
case IRC_SASL_MECHANISM_PLAIN:
default:
answer = irc_sasl_mechanism_plain (sasl_username,
sasl_password);
case IRC_SASL_MECHANISM_DH_BLOWFISH:
answer = irc_sasl_mechanism_dh_blowfish (
argv[1], sasl_username, sasl_password);
break;
case IRC_SASL_MECHANISM_DH_AES:
answer = irc_sasl_mechanism_dh_aes (
argv[1], sasl_username, sasl_password);
break;
}
if (answer)
@ -303,8 +306,10 @@ IRC_PROTOCOL_CALLBACK(away)
IRC_PROTOCOL_CALLBACK(cap)
{
char *ptr_caps, **caps_supported, **caps_requested, *cap_option, *cap_req;
char str_msg_auth[512];
const char *ptr_cap_option;
int num_caps_supported, num_caps_requested, sasl_requested, sasl_to_do;
int num_caps_supported, num_caps_requested;
int sasl_requested, sasl_to_do, sasl_mechanism;
int i, j, timeout, length;
IRC_PROTOCOL_MIN_ARGS(4);
@ -437,35 +442,26 @@ IRC_PROTOCOL_CALLBACK(cap)
}
if (sasl_to_do)
{
switch (IRC_SERVER_OPTION_INTEGER(server,
IRC_SERVER_OPTION_SASL_MECHANISM))
sasl_mechanism = IRC_SERVER_OPTION_INTEGER(
server, IRC_SERVER_OPTION_SASL_MECHANISM);
if ((sasl_mechanism >= 0)
&& (sasl_mechanism < IRC_NUM_SASL_MECHANISMS))
{
case IRC_SASL_MECHANISM_DH_BLOWFISH:
irc_server_sendf (server, 0, NULL,
"AUTHENTICATE DH-BLOWFISH");
break;
case IRC_SASL_MECHANISM_DH_AES:
irc_server_sendf (server, 0, NULL,
"AUTHENTICATE DH-AES");
break;
case IRC_SASL_MECHANISM_EXTERNAL:
irc_server_sendf (server, 0, NULL,
"AUTHENTICATE EXTERNAL");
break;
case IRC_SASL_MECHANISM_PLAIN:
default:
irc_server_sendf (server, 0, NULL,
"AUTHENTICATE PLAIN");
break;
snprintf (str_msg_auth, sizeof (str_msg_auth),
"AUTHENTICATE %s",
irc_sasl_mechanism_string[sasl_mechanism]);
weechat_string_toupper(str_msg_auth);
irc_server_sendf (server, 0, NULL, str_msg_auth);
if (server->hook_timer_sasl)
weechat_unhook (server->hook_timer_sasl);
timeout = IRC_SERVER_OPTION_INTEGER(
server, IRC_SERVER_OPTION_SASL_TIMEOUT);
server->hook_timer_sasl = weechat_hook_timer (
timeout * 1000,
0, 1,
&irc_server_timer_sasl_cb,
server);
}
if (server->hook_timer_sasl)
weechat_unhook (server->hook_timer_sasl);
timeout = IRC_SERVER_OPTION_INTEGER(server,
IRC_SERVER_OPTION_SASL_TIMEOUT);
server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
0, 1,
&irc_server_timer_sasl_cb,
server);
}
}
}

View File

@ -25,13 +25,23 @@
#include <arpa/inet.h>
#include <gcrypt.h>
#ifdef HAVE_GNUTLS
#include <gnutls/gnutls.h>
#include <gnutls/abstract.h>
#endif
#include "../weechat-plugin.h"
#include "irc.h"
#include "irc-sasl.h"
#include "irc-server.h"
/*
* these names are sent to the IRC server (as upper case), so they must be
* valid values for the AUTHENTICATE command (example: "AUTHENTICATE PLAIN")
*/
char *irc_sasl_mechanism_string[IRC_NUM_SASL_MECHANISMS] =
{ "plain", "dh-blowfish", "dh-aes", "external" };
{ "plain", "ecdsa-nist256p-challenge", "external", "dh-blowfish", "dh-aes" };
/*
@ -67,6 +77,216 @@ irc_sasl_mechanism_plain (const char *sasl_username, const char *sasl_password)
return answer_base64;
}
/*
* Returns the content of file with SASL key.
*
* Note: result must be freed after use.
*/
char *
irc_sasl_get_key_content (struct t_irc_server *server, const char *sasl_key)
{
const char *weechat_dir;
char *key_path1, *key_path2, *content;
if (!sasl_key)
return NULL;
content = NULL;
weechat_dir = weechat_info_get ("weechat_dir", "");
key_path1 = weechat_string_replace (sasl_key, "%h", weechat_dir);
key_path2 = (key_path1) ?
weechat_string_expand_home (key_path1) : NULL;
if (key_path2)
content = weechat_file_get_content (key_path2);
if (!content)
{
weechat_printf (
server->buffer,
_("%s%s: unable to read private key in file \"%s\""),
weechat_prefix ("error"),
IRC_PLUGIN_NAME,
(key_path2) ? key_path2 : ((key_path1) ? key_path1 : sasl_key));
}
if (key_path1)
free (key_path1);
if (key_path2)
free (key_path2);
return content;
}
/*
* Builds answer for SASL authentication, using mechanism
* "ECDSA-NIST256P-CHALLENGE".
*
* Note: result must be freed after use.
*/
char *
irc_sasl_mechanism_ecdsa_nist256p_challenge (struct t_irc_server *server,
const char *data_base64,
const char *sasl_username,
const char *sasl_key)
{
char *data, *string, *answer_base64;
int length_data, length_username, length, ret;
char *str_privkey, *pubkey, *pubkey_base64;
gnutls_x509_privkey_t x509_privkey;
gnutls_privkey_t privkey;
gnutls_ecc_curve_t curve;
gnutls_datum_t filedatum, x, y, k, decoded_data, signature;
answer_base64 = NULL;
string = NULL;
length = 0;
if (strcmp (data_base64, "+") == 0)
{
/* send "username" + '\0' + "username" */
answer_base64 = NULL;
length_username = strlen (sasl_username);
length = length_username + 1 + length_username;
string = malloc (length + 1);
if (string)
{
snprintf (string, length + 1, "%s|%s", sasl_username, sasl_username);
string[length_username] = '\0';
}
}
else
{
/* sign the challenge with the private key and return the result */
/* decode the challenge */
data = malloc (strlen (data_base64) + 1);
if (!data)
return NULL;
length_data = weechat_string_decode_base64 (data_base64, data);
/* read file with private key */
str_privkey = irc_sasl_get_key_content (server, sasl_key);
if (!str_privkey)
{
free (data);
return NULL;
}
/* import key */
gnutls_x509_privkey_init (&x509_privkey);
gnutls_privkey_init (&privkey);
filedatum.data = (unsigned char *)str_privkey;
filedatum.size = strlen (str_privkey);
ret = gnutls_x509_privkey_import (x509_privkey, &filedatum,
GNUTLS_X509_FMT_PEM);
free (str_privkey);
if (ret != GNUTLS_E_SUCCESS)
{
weechat_printf (
server->buffer,
_("%sgnutls: invalid private key file: error %d %s"),
weechat_prefix ("error"),
ret,
gnutls_strerror (ret));
gnutls_x509_privkey_deinit (x509_privkey);
gnutls_privkey_deinit (privkey);
free (data);
return NULL;
}
/* read raw values in key, to display public key */
ret = gnutls_x509_privkey_export_ecc_raw (x509_privkey,
&curve, &x, &y, &k);
if (ret == GNUTLS_E_SUCCESS)
{
pubkey = malloc (x.size + 1);
if (pubkey)
{
pubkey[0] = (y.data[y.size - 1] & 1) ? 0x03 : 0x02;
memcpy (pubkey + 1, x.data, x.size);
pubkey_base64 = malloc ((x.size + 1 + 1) * 4);
if (pubkey_base64)
{
weechat_string_encode_base64 (pubkey, x.size + 1,
pubkey_base64);
weechat_printf (
server->buffer,
_("%s%s: signing the challenge with ECC public key: "
"%s"),
weechat_prefix ("network"),
IRC_PLUGIN_NAME,
pubkey_base64);
free (pubkey_base64);
}
free (pubkey);
}
gnutls_free (x.data);
gnutls_free (y.data);
gnutls_free (k.data);
}
/* import private key in an abstract key structure */
ret = gnutls_privkey_import_x509 (privkey, x509_privkey, 0);
if (ret != GNUTLS_E_SUCCESS)
{
weechat_printf (
server->buffer,
_("%sgnutls: unable to import the private key: error %d %s"),
weechat_prefix ("error"),
ret,
gnutls_strerror (ret));
gnutls_x509_privkey_deinit (x509_privkey);
gnutls_privkey_deinit (privkey);
free (data);
return NULL;
}
decoded_data.data = (unsigned char *)data;
decoded_data.size = length_data;
ret = gnutls_privkey_sign_hash (privkey, GNUTLS_DIG_SHA256, 0,
&decoded_data, &signature);
if (ret != GNUTLS_E_SUCCESS)
{
weechat_printf (
server->buffer,
_("%sgnutls: unable to sign the hashed data: error %d %s"),
weechat_prefix ("error"),
ret,
gnutls_strerror (ret));
gnutls_x509_privkey_deinit (x509_privkey);
gnutls_privkey_deinit (privkey);
free (data);
return NULL;
}
gnutls_x509_privkey_deinit (x509_privkey);
gnutls_privkey_deinit (privkey);
string = malloc (signature.size);
if (string)
memcpy (string, signature.data, signature.size);
length = signature.size;
gnutls_free (signature.data);
free (data);
}
if (string && (length > 0))
{
answer_base64 = malloc ((length + 1) * 4);
if (answer_base64)
weechat_string_encode_base64 (string, length, answer_base64);
free (string);
}
return answer_base64;
}
/*
* Reads key sent by server (Diffie-Hellman key exchange).
*
@ -186,6 +406,7 @@ dhend:
*
* Note: result must be freed after use.
*/
char *
irc_sasl_mechanism_dh_blowfish (const char *data_base64,
const char *sasl_username,
@ -249,7 +470,7 @@ irc_sasl_mechanism_dh_blowfish (const char *data_base64,
memcpy (ptr_answer, password_crypted, length_password);
/* encode answer to base64 */
answer_base64 = malloc (length_answer * 4);
answer_base64 = malloc ((length_answer + 1) * 4);
if (answer_base64)
weechat_string_encode_base64 (answer, length_answer, answer_base64);
@ -279,6 +500,7 @@ bfend:
*
* Note: result must be freed after use.
*/
char *
irc_sasl_mechanism_dh_aes (const char *data_base64,
const char *sasl_username,
@ -370,7 +592,7 @@ irc_sasl_mechanism_dh_aes (const char *data_base64,
memcpy (ptr_answer, userpass_crypted, length_userpass);
/* encode answer to base64 */
answer_base64 = malloc (length_answer * 4);
answer_base64 = malloc ((length_answer + 1) * 4);
if (answer_base64)
weechat_string_encode_base64 (answer, length_answer, answer_base64);

View File

@ -20,14 +20,17 @@
#ifndef WEECHAT_IRC_SASL_H
#define WEECHAT_IRC_SASL_H 1
struct t_irc_server;
/* SASL authentication mechanisms */
enum t_irc_sasl_mechanism
{
IRC_SASL_MECHANISM_PLAIN = 0,
IRC_SASL_MECHANISM_ECDSA_NIST256P_CHALLENGE,
IRC_SASL_MECHANISM_EXTERNAL,
IRC_SASL_MECHANISM_DH_BLOWFISH,
IRC_SASL_MECHANISM_DH_AES,
IRC_SASL_MECHANISM_EXTERNAL,
/* number of SASL mechanisms */
IRC_NUM_SASL_MECHANISMS,
};
@ -36,6 +39,10 @@ extern char *irc_sasl_mechanism_string[];
extern char *irc_sasl_mechanism_plain (const char *sasl_username,
const char *sasl_password);
extern char *irc_sasl_mechanism_ecdsa_nist256p_challenge (struct t_irc_server *server,
const char *data_base64,
const char *sasl_username,
const char *sasl_key);
extern char *irc_sasl_mechanism_dh_blowfish (const char *data_base64,
const char *sasl_username,
const char *sasl_password);

View File

@ -89,6 +89,7 @@ char *irc_server_options[IRC_SERVER_NUM_OPTIONS][2] =
{ "sasl_mechanism", "plain" },
{ "sasl_username", "" },
{ "sasl_password", "" },
{ "sasl_key", "", },
{ "sasl_timeout", "15" },
{ "sasl_fail", "continue" },
{ "autoconnect", "off" },
@ -335,6 +336,7 @@ irc_server_sasl_enabled (struct t_irc_server *server)
{
int sasl_mechanism, rc;
char *sasl_username, *sasl_password;
const char *sasl_key;
sasl_mechanism = IRC_SERVER_OPTION_INTEGER(
server, IRC_SERVER_OPTION_SASL_MECHANISM);
@ -344,12 +346,18 @@ irc_server_sasl_enabled (struct t_irc_server *server)
sasl_password = weechat_string_eval_expression (
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SASL_PASSWORD),
NULL, NULL, NULL);
sasl_key = IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SASL_KEY);
/*
* SASL is enabled if using mechanism "external"
* or if both username AND password are set
* SASL is enabled if one of these conditions is true:
* - mechanism is "external"
* - mechanism is "ecdsa-nist256p-challenge" with username/key set
* - another mechanism with username/password set
*/
rc = ((sasl_mechanism == IRC_SASL_MECHANISM_EXTERNAL)
|| ((sasl_mechanism == IRC_SASL_MECHANISM_ECDSA_NIST256P_CHALLENGE)
&& sasl_username && sasl_username[0]
&& sasl_key && sasl_key[0])
|| (sasl_username && sasl_username[0]
&& sasl_password && sasl_password[0])) ? 1 : 0;
@ -5220,6 +5228,9 @@ irc_server_add_to_infolist (struct t_infolist *infolist,
if (!weechat_infolist_new_var_string (ptr_item, "sasl_password",
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SASL_PASSWORD)))
return 0;
if (!weechat_infolist_new_var_string (ptr_item, "sasl_key",
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SASL_KEY)))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "sasl_fail",
IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_SASL_FAIL)))
return 0;
@ -5475,12 +5486,19 @@ irc_server_print_log ()
IRC_SERVER_OPTION_STRING(ptr_server, IRC_SERVER_OPTION_SASL_USERNAME));
else
weechat_log_printf (" sasl_username. . . . : '%s'",
weechat_config_string (ptr_server->options[IRC_SERVER_OPTION_USERNAME]));
weechat_config_string (ptr_server->options[IRC_SERVER_OPTION_SASL_USERNAME]));
/* sasl_password */
if (weechat_config_option_is_null (ptr_server->options[IRC_SERVER_OPTION_SASL_PASSWORD]))
weechat_log_printf (" sasl_password. . . . : null");
else
weechat_log_printf (" sasl_password. . . . : (hidden)");
/* sasl_key */
if (weechat_config_option_is_null (ptr_server->options[IRC_SERVER_OPTION_SASL_KEY]))
weechat_log_printf (" sasl_key. . . . . . : null ('%s')",
IRC_SERVER_OPTION_STRING(ptr_server, IRC_SERVER_OPTION_SASL_KEY));
else
weechat_log_printf (" sasl_key. . . . . . : '%s'",
weechat_config_string (ptr_server->options[IRC_SERVER_OPTION_SASL_KEY]));
/* sasl_fail */
if (weechat_config_option_is_null (ptr_server->options[IRC_SERVER_OPTION_SASL_FAIL]))
weechat_log_printf (" sasl_fail. . . . . . : null ('%s')",

View File

@ -57,6 +57,7 @@ enum t_irc_server_option
IRC_SERVER_OPTION_SASL_MECHANISM,/* mechanism for SASL authentication */
IRC_SERVER_OPTION_SASL_USERNAME, /* username for SASL authentication */
IRC_SERVER_OPTION_SASL_PASSWORD, /* password for SASL authentication */
IRC_SERVER_OPTION_SASL_KEY, /* key for ECDSA-NIST256P-CHALLENCE */
IRC_SERVER_OPTION_SASL_TIMEOUT, /* timeout for SASL authentication */
IRC_SERVER_OPTION_SASL_FAIL, /* action on SASL fail */
IRC_SERVER_OPTION_AUTOCONNECT, /* autoconnect to server at startup */