91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.47MB
    文件類型: .gz
    金幣: 1
    下載: 0 次
    發布日期: 2024-01-30
  • 語言: 其他
  • 標簽: openssh??

資源簡介

OpenSSH是SSH協議遠程登錄的首選連接工具。它加密所有流量以消除竊聽,連接劫持和其他攻擊。另外,OpenSSH提供了一套安全的隧道功能,多種認證方法和復雜的配置選項。

OpenSSH套件包含以下工具:

遠程操作使用 ssh, scp和 sftp完成。
使用ssh-add, ssh-keysign, ssh-keyscan和 ssh-keygen進行密鑰管理 。
服務 端由sshd, sftp-server和 ssh-agent組成。
OpenSSH是由OpenBSD項目的一些開發人員開發的, 并且可以使用BSD格式的許可證。

OpenSSH被納入到許多商業產品中,但這些公司中很少有公司通過資助協助OpenSSH。

資源截圖

代碼片段和文件信息

/*	$OpenBSD:?addrmatch.cv?1.13?2016/09/21?16:55:42?djm?Exp?$?*/

/*
?*?Copyright?(c)?2004-2008?Damien?Miller?
?*
?*?Permission?to?use?copy?modify?and?distribute?this?software?for?any
?*?purpose?with?or?without?fee?is?hereby?granted?provided?that?the?above
?*?copyright?notice?and?this?permission?notice?appear?in?all?copies.
?*
?*?THE?SOFTWARE?IS?PROVIDED?“AS?IS“?AND?THE?AUTHOR?DISCLAIMS?ALL?WARRANTIES
?*?WITH?REGARD?TO?THIS?SOFTWARE?INCLUDING?ALL?IMPLIED?WARRANTIES?OF
?*?MERCHANTABILITY?AND?FITNESS.?IN?NO?EVENT?SHALL?THE?AUTHOR?BE?LIABLE?FOR
?*?ANY?SPECIAL?DIRECT?INDIRECT?OR?CONSEQUENTIAL?DAMAGES?OR?ANY?DAMAGES
?*?WHATSOEVER?RESULTING?FROM?LOSS?OF?USE?DATA?OR?PROFITS?WHETHER?IN?AN
?*?ACTION?OF?CONTRACT?NEGLIGENCE?OR?OTHER?TORTIOUS?ACTION?ARISING?OUT?OF
?*?OR?IN?CONNECTION?WITH?THE?USE?OR?PERFORMANCE?OF?THIS?SOFTWARE.
?*/

#include?“includes.h“

#include?
#include?
#include?
#include?

#include?
#include?
#include?
#include?
#include?

#include?“match.h“
#include?“log.h“

struct?xaddr?{
sa_family_t af;
union?{
struct?in_addr v4;
struct?in6_addr v6;
u_int8_t addr8[16];
u_int32_t addr32[4];
}?xa; ????/*?128-bit?address?*/
u_int32_t scope_id; /*?iface?scope?id?for?v6?*/
#define?v4 xa.v4
#define?v6 xa.v6
#define?addr8 xa.addr8
#define?addr32 xa.addr32
};

static?int
addr_unicast_masklen(int?af)
{
switch?(af)?{
case?AF_INET:
return?32;
case?AF_INET6:
return?128;
default:
return?-1;
}
}

static?inline?int
masklen_valid(int?af?u_int?masklen)
{
switch?(af)?{
case?AF_INET:
return?masklen?<=?32???0?:?-1;
case?AF_INET6:
return?masklen?<=?128???0?:?-1;
default:
return?-1;
}
}

/*
?*?Convert?struct?sockaddr?to?struct?xaddr
?*?Returns?0?on?success?-1?on?failure.
?*/
static?int
addr_sa_to_xaddr(struct?sockaddr?*sa?socklen_t?slen?struct?xaddr?*xa)
{
struct?sockaddr_in?*in4?=?(struct?sockaddr_in?*)sa;
struct?sockaddr_in6?*in6?=?(struct?sockaddr_in6?*)sa;

memset(xa?‘\0‘?sizeof(*xa));

switch?(sa->sa_family)?{
case?AF_INET:
if?(slen? return?-1;
xa->af?=?AF_INET;
memcpy(&xa->v4?&in4->sin_addr?sizeof(xa->v4));
break;
case?AF_INET6:
if?(slen? return?-1;
xa->af?=?AF_INET6;
memcpy(&xa->v6?&in6->sin6_addr?sizeof(xa->v6));
#ifdef?HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
xa->scope_id?=?in6->sin6_scope_id;
#endif
break;
default:
return?-1;
}

return?0;
}

/*
?*?Calculate?a?netmask?of?length?‘l‘?for?address?family?‘af‘?and
?*?store?it?in?‘n‘.
?*?Returns?0?on?success?-1?on?failure.
?*/
static?int
addr_netmask(int?af?u_int?l?struct?xaddr?*n)
{
int?i;

if?(masklen_valid(af?l)?!=?0?||?n?==?NULL)
return?-1;

memset(n?‘\0‘?sizeof(*n));
switch?(af)?{
case?AF_INET:
n->af?=?AF_INET;
if?(l?==?0)
return?0;
n->v4.s_addr?=?htonl((0xffffffff?< return?0;
case?AF_INET6:
n->af?=?A

評論

共有 條評論