mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-12-15 23:33:56 +08:00
eb8b60e320
[PROTOCOL PROTOCOL.agent PROTOCOL.certkeys auth2-jpake.c authfd.c] [authfile.c buffer.h dns.c kex.c kex.h key.c key.h monitor.c] [monitor_wrap.c myproposal.h packet.c packet.h pathnames.h readconf.c] [ssh-add.1 ssh-add.c ssh-agent.1 ssh-agent.c ssh-keygen.1 ssh-keygen.c] [ssh-keyscan.1 ssh-keyscan.c ssh-keysign.8 ssh.1 ssh.c ssh2.h] [ssh_config.5 sshconnect.c sshconnect2.c sshd.8 sshd.c sshd_config.5] [uuencode.c uuencode.h bufec.c kexecdh.c kexecdhc.c kexecdhs.c ssh-ecdsa.c] Implement Elliptic Curve Cryptography modes for key exchange (ECDH) and host/user keys (ECDSA) as specified by RFC5656. ECDH and ECDSA offer better performance than plain DH and DSA at the same equivalent symmetric key length, as well as much shorter keys. Only the mandatory sections of RFC5656 are implemented, specifically the three REQUIRED curves nistp256, nistp384 and nistp521 and only ECDH and ECDSA. Point compression (optional in RFC5656 is NOT implemented). Certificate host and user keys using the new ECDSA key types are supported. Note that this code has not been tested for interoperability and may be subject to change. feedback and ok markus@
182 lines
5.7 KiB
C
182 lines
5.7 KiB
C
/* $OpenBSD: pathnames.h,v 1.20 2010/08/31 11:54:45 djm Exp $ */
|
|
|
|
/*
|
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
|
* All rights reserved
|
|
*
|
|
* As far as I am concerned, the code I have written for this software
|
|
* can be used freely for any purpose. Any derived versions of this
|
|
* software must be clearly marked as such, and if the derived work is
|
|
* incompatible with the protocol description in the RFC file, it must be
|
|
* called by a name other than "ssh" or "Secure Shell".
|
|
*/
|
|
|
|
#define ETCDIR "/etc"
|
|
|
|
#ifndef SSHDIR
|
|
#define SSHDIR ETCDIR "/ssh"
|
|
#endif
|
|
|
|
#ifndef _PATH_SSH_PIDDIR
|
|
#define _PATH_SSH_PIDDIR "/var/run"
|
|
#endif
|
|
|
|
/*
|
|
* System-wide file containing host keys of known hosts. This file should be
|
|
* world-readable.
|
|
*/
|
|
#define _PATH_SSH_SYSTEM_HOSTFILE SSHDIR "/ssh_known_hosts"
|
|
/* backward compat for protocol 2 */
|
|
#define _PATH_SSH_SYSTEM_HOSTFILE2 SSHDIR "/ssh_known_hosts2"
|
|
|
|
/*
|
|
* Of these, ssh_host_key must be readable only by root, whereas ssh_config
|
|
* should be world-readable.
|
|
*/
|
|
#define _PATH_SERVER_CONFIG_FILE SSHDIR "/sshd_config"
|
|
#define _PATH_HOST_CONFIG_FILE SSHDIR "/ssh_config"
|
|
#define _PATH_HOST_KEY_FILE SSHDIR "/ssh_host_key"
|
|
#define _PATH_HOST_DSA_KEY_FILE SSHDIR "/ssh_host_dsa_key"
|
|
#define _PATH_HOST_ECDSA_KEY_FILE SSHDIR "/ssh_host_ecdsa_key"
|
|
#define _PATH_HOST_RSA_KEY_FILE SSHDIR "/ssh_host_rsa_key"
|
|
#define _PATH_DH_MODULI SSHDIR "/moduli"
|
|
/* Backwards compatibility */
|
|
#define _PATH_DH_PRIMES SSHDIR "/primes"
|
|
|
|
#ifndef _PATH_SSH_PROGRAM
|
|
#define _PATH_SSH_PROGRAM "/usr/bin/ssh"
|
|
#endif
|
|
|
|
/*
|
|
* The process id of the daemon listening for connections is saved here to
|
|
* make it easier to kill the correct daemon when necessary.
|
|
*/
|
|
#define _PATH_SSH_DAEMON_PID_FILE _PATH_SSH_PIDDIR "/sshd.pid"
|
|
|
|
/*
|
|
* The directory in user's home directory in which the files reside. The
|
|
* directory should be world-readable (though not all files are).
|
|
*/
|
|
#define _PATH_SSH_USER_DIR ".ssh"
|
|
|
|
/*
|
|
* Per-user file containing host keys of known hosts. This file need not be
|
|
* readable by anyone except the user him/herself, though this does not
|
|
* contain anything particularly secret.
|
|
*/
|
|
#define _PATH_SSH_USER_HOSTFILE "~/.ssh/known_hosts"
|
|
/* backward compat for protocol 2 */
|
|
#define _PATH_SSH_USER_HOSTFILE2 "~/.ssh/known_hosts2"
|
|
|
|
/*
|
|
* Name of the default file containing client-side authentication key. This
|
|
* file should only be readable by the user him/herself.
|
|
*/
|
|
#define _PATH_SSH_CLIENT_IDENTITY ".ssh/identity"
|
|
#define _PATH_SSH_CLIENT_ID_DSA ".ssh/id_dsa"
|
|
#define _PATH_SSH_CLIENT_ID_ECDSA ".ssh/id_ecdsa"
|
|
#define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa"
|
|
|
|
/*
|
|
* Configuration file in user's home directory. This file need not be
|
|
* readable by anyone but the user him/herself, but does not contain anything
|
|
* particularly secret. If the user's home directory resides on an NFS
|
|
* volume where root is mapped to nobody, this may need to be world-readable.
|
|
*/
|
|
#define _PATH_SSH_USER_CONFFILE ".ssh/config"
|
|
|
|
/*
|
|
* File containing a list of those rsa keys that permit logging in as this
|
|
* user. This file need not be readable by anyone but the user him/herself,
|
|
* but does not contain anything particularly secret. If the user's home
|
|
* directory resides on an NFS volume where root is mapped to nobody, this
|
|
* may need to be world-readable. (This file is read by the daemon which is
|
|
* running as root.)
|
|
*/
|
|
#define _PATH_SSH_USER_PERMITTED_KEYS ".ssh/authorized_keys"
|
|
|
|
/* backward compat for protocol v2 */
|
|
#define _PATH_SSH_USER_PERMITTED_KEYS2 ".ssh/authorized_keys2"
|
|
|
|
/*
|
|
* Per-user and system-wide ssh "rc" files. These files are executed with
|
|
* /bin/sh before starting the shell or command if they exist. They will be
|
|
* passed "proto cookie" as arguments if X11 forwarding with spoofing is in
|
|
* use. xauth will be run if neither of these exists.
|
|
*/
|
|
#define _PATH_SSH_USER_RC ".ssh/rc"
|
|
#define _PATH_SSH_SYSTEM_RC SSHDIR "/sshrc"
|
|
|
|
/*
|
|
* Ssh-only version of /etc/hosts.equiv. Additionally, the daemon may use
|
|
* ~/.rhosts and /etc/hosts.equiv if rhosts authentication is enabled.
|
|
*/
|
|
#define _PATH_SSH_HOSTS_EQUIV SSHDIR "/shosts.equiv"
|
|
#define _PATH_RHOSTS_EQUIV "/etc/hosts.equiv"
|
|
|
|
/*
|
|
* Default location of askpass
|
|
*/
|
|
#ifndef _PATH_SSH_ASKPASS_DEFAULT
|
|
#define _PATH_SSH_ASKPASS_DEFAULT "/usr/X11R6/bin/ssh-askpass"
|
|
#endif
|
|
|
|
/* Location of ssh-keysign for hostbased authentication */
|
|
#ifndef _PATH_SSH_KEY_SIGN
|
|
#define _PATH_SSH_KEY_SIGN "/usr/libexec/ssh-keysign"
|
|
#endif
|
|
|
|
/* Location of ssh-pkcs11-helper to support keys in tokens */
|
|
#ifndef _PATH_SSH_PKCS11_HELPER
|
|
#define _PATH_SSH_PKCS11_HELPER "/usr/libexec/ssh-pkcs11-helper"
|
|
#endif
|
|
|
|
/* xauth for X11 forwarding */
|
|
#ifndef _PATH_XAUTH
|
|
#define _PATH_XAUTH "/usr/X11R6/bin/xauth"
|
|
#endif
|
|
|
|
/* UNIX domain socket for X11 server; displaynum will replace %u */
|
|
#ifndef _PATH_UNIX_X
|
|
#define _PATH_UNIX_X "/tmp/.X11-unix/X%u"
|
|
#endif
|
|
|
|
/* for scp */
|
|
#ifndef _PATH_CP
|
|
#define _PATH_CP "cp"
|
|
#endif
|
|
|
|
/* for sftp */
|
|
#ifndef _PATH_SFTP_SERVER
|
|
#define _PATH_SFTP_SERVER "/usr/libexec/sftp-server"
|
|
#endif
|
|
|
|
/* chroot directory for unprivileged user when UsePrivilegeSeparation=yes */
|
|
#ifndef _PATH_PRIVSEP_CHROOT_DIR
|
|
#define _PATH_PRIVSEP_CHROOT_DIR "/var/empty"
|
|
#endif
|
|
|
|
/* for passwd change */
|
|
#ifndef _PATH_PASSWD_PROG
|
|
#define _PATH_PASSWD_PROG "/usr/bin/passwd"
|
|
#endif
|
|
|
|
#ifndef _PATH_LS
|
|
#define _PATH_LS "ls"
|
|
#endif
|
|
|
|
/* path to login program */
|
|
#ifndef LOGIN_PROGRAM
|
|
# ifdef LOGIN_PROGRAM_FALLBACK
|
|
# define LOGIN_PROGRAM LOGIN_PROGRAM_FALLBACK
|
|
# else
|
|
# define LOGIN_PROGRAM "/usr/bin/login"
|
|
# endif
|
|
#endif /* LOGIN_PROGRAM */
|
|
|
|
/* Askpass program define */
|
|
#ifndef ASKPASS_PROGRAM
|
|
#define ASKPASS_PROGRAM "/usr/lib/ssh/ssh-askpass"
|
|
#endif /* ASKPASS_PROGRAM */
|