Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Open source ARC implementation

License

BSD-2-Clause, Unknown licenses found

Licenses found

BSD-2-Clause
LICENSE
Unknown
LICENSE.Sendmail
NotificationsYou must be signed in to change notification settings

lquidfire/OpenARC

 
 

Repository files navigation

build

OpenARC

OpenARC is a community effort to develop and maintain both an opensource library for adding Authenticated Received Chain (ARC) supportto applications and an example filter application using the milterprotocol.

Introduction

ARC is an experimental protocol defined inRFC8617. It provides anauthenticated chain of custody for a message, allowing messagehandlers to see who has handled it before and what those priorhandlers claim the message's authentication status was at that point.

ARC is still experimental and its specification may change. Thispackage is intended for use by operators willing to take part in theexperiment and provide their feedback to the development team.

A substantial amount of the code here is based on code developed aspart of theOpenDKIM project, a TrustedDomain Project activity, which started as a code fork of version 2.8.3of the open sourcedkim-milter package developed and maintainedby Sendmail, Inc. The license used by OpenDKIM and OpenARC is foundin theLICENSE file. Portions of this project are also coveredby the Sendmail Open Source License, which can be found in theLICENSE.Sendmail file. See the copyright notice(s) in each sourcefile to determine which license(s) are applicable to that file.

Dependencies

In order to build OpenARC, you will need:

  • A C compiler. Compilation has been tested withGCCandclang, and other modern compilers should alsowork.
  • make
  • pkg-config or a compatible replacement.
  • OpenSSL >= 1.0.0
  • Native implementations ofstrlcat() andstrlcpy(),libbsd, or some other library thatprovides them.
  • Libidn2

If you are building the filter, you will also need:

If you are building from a git checkout instead of a release tarball,you will also need:

The core OpenARC software will function without it, but tools distributedalongside OpenARC (such asopenarc-keygen) may require:

  • Python >= 3.8

Compatibility with older versions of Python 3 has not beendeliberately broken, but this is the oldest version we test against.

DNF-based systems

$ dnf install autoconf automake gcc jansson-devel libbsd-devel libidn2-devel libtool openssl-devel sendmail-milter-devel

Ubuntu

$ apt install build-essential libbsd-dev libidn2-dev libjansson-dev libmilter-dev libssl-dev

Installation

Installation follows the standard Autotools process.

If you're building from a git checkout, you first need to generate thebuild system:

$ autoreconf -fiv

Once that's done (or if you're building from a release tarball):

$ ./configure$ make$ make install

You can get a list of available flags and environment variables toinfluence the build by running./configure --help.

Testing

Tests can be run withmake check. OpenARC's test suite requires:

There are also optional test dependencies whose associated tests will beskipped if the dependency is not found:

Additional Documentation

The man pages for theopenarc filter are present in theopenarcdirectory of this source distribution.

Legality

A number of legal regimes restrict the use or export of cryptography.If you are potentially subject to such restrictions you should seeklegal advice before using, developing, or distributing cryptographiccode.

Known Runtime Issues

WARNING: symbol 'X' not available

The filter attempted to get some information from the MTA that the MTAdid not provide.

At various points in the interaction between the MTA and the filter,macros containing information about the job in progress or theconnection being handled are passed from the MTA to the filter.

In the case of Sendmail, the names of the macros the MTA shouldpass to the filter are defined by theMilter.macros settings insendmail.cf, e.g.Milter.macros.connect,Milter.macros.envfrom,etc. This message indicates that the filter needed the contents ofmacroX, but that macro was not passed down from the MTA.

Typically the values needed by this filter are passed from the MTA ifthesendmail.cf was generated by the usual M4 method. If you do nothave those options defined in yoursendmail.cf, try rebuilding itand then restarting Sendmail.

MTA Timeouts

Querying nameservers for key data can take longer than the default MTAtimeouts for communication with the filter. This can cause messages tobe rejected, tempfailed, or delivered without processing by the filter,depending on the MTA configuration.

The only way to address this issue if you encounter it is to increasethe time the MTA waits for replies. Consult your MTA's documentationto find out how to do so, but note that increasing timeouts too muchcan cause other problems.

d2i_PUBKEY_bio() failed

After retrieving and decoding a public key to perform a messageverification, the OpenSSL library attempted to make use of that keybut failed. The known possible causes are:

  • Memory exhaustion
  • Key corruption

If you're set to tempfail messages in these cases the remote endwill probably retry the message. If the same message fails againlater, the key is probably corrupted or otherwise invalid.

Message Modifications

In order to verify existing ARC signatures the filter needs to see themessage prior to any local modifications. In order to produce a validARC-Message-Signature the filter needs to see the message after anylocal modifications.

The only way to satisfy both requirements in ADMDs thatmodify messages is to use two instances of the filter whichrun at different points in email handling. The first onemust do verification and inject anAuthentication-Resultsheader, and may do signing; the second one must enablePermitAuthenticationOverrides (make sure that your environmentis compliant with the security requirements inRFC 8601 section1.6) anddo signing.

About

Open source ARC implementation

Resources

License

BSD-2-Clause, Unknown licenses found

Licenses found

BSD-2-Clause
LICENSE
Unknown
LICENSE.Sendmail

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C81.1%
  • Python7.0%
  • M46.2%
  • Roff3.6%
  • Shell1.2%
  • Makefile0.9%

[8]ページ先頭

©2009-2025 Movatter.jp