Giter Club home page Giter Club logo

tools's Introduction

Welcome to the OpenSSL Project

openssl logo

github actions ci badge appveyor badge

OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit for the TLS (formerly SSL), DTLS and QUIC (currently client side only) protocols.

The protocol implementations are based on a full-strength general purpose cryptographic library, which can also be used stand-alone. Also included is a cryptographic module validated to conform with FIPS standards.

OpenSSL is descended from the SSLeay library developed by Eric A. Young and Tim J. Hudson.

The official Home Page of the OpenSSL Project is www.openssl.org.

Table of Contents

Overview

The OpenSSL toolkit includes:

  • libssl an implementation of all TLS protocol versions up to TLSv1.3 (RFC 8446), DTLS protocol versions up to DTLSv1.2 (RFC 6347) and the QUIC (currently client side only) version 1 protocol (RFC 9000).

  • libcrypto a full-strength general purpose cryptographic library. It constitutes the basis of the TLS implementation, but can also be used independently.

  • openssl the OpenSSL command line tool, a swiss army knife for cryptographic tasks, testing and analyzing. It can be used for

    • creation of key parameters
    • creation of X.509 certificates, CSRs and CRLs
    • calculation of message digests
    • encryption and decryption
    • SSL/TLS/DTLS and client and server tests
    • QUIC client tests
    • handling of S/MIME signed or encrypted mail
    • and more...

Download

For Production Use

Source code tarballs of the official releases can be downloaded from www.openssl.org/source. The OpenSSL project does not distribute the toolkit in binary form.

However, for a large variety of operating systems precompiled versions of the OpenSSL toolkit are available. In particular, on Linux and other Unix operating systems, it is normally recommended to link against the precompiled shared libraries provided by the distributor or vendor.

We also maintain a list of third parties that produce OpenSSL binaries for various Operating Systems (including Windows) on the Binaries page on our wiki.

For Testing and Development

Although testing and development could in theory also be done using the source tarballs, having a local copy of the git repository with the entire project history gives you much more insight into the code base.

The official OpenSSL Git Repository is located at git.openssl.org. There is a GitHub mirror of the repository at github.com/openssl/openssl, which is updated automatically from the former on every commit.

A local copy of the Git Repository can be obtained by cloning it from the original OpenSSL repository using

git clone git://git.openssl.org/openssl.git

or from the GitHub mirror using

git clone https://github.com/openssl/openssl.git

If you intend to contribute to OpenSSL, either to fix bugs or contribute new features, you need to fork the OpenSSL repository openssl/openssl on GitHub and clone your public fork instead.

git clone https://github.com/yourname/openssl.git

This is necessary because all development of OpenSSL nowadays is done via GitHub pull requests. For more details, see Contributing.

Build and Install

After obtaining the Source, have a look at the INSTALL file for detailed instructions about building and installing OpenSSL. For some platforms, the installation instructions are amended by a platform specific document.

Specific notes on upgrading to OpenSSL 3.x from previous versions can be found in the ossl-guide-migration(7ossl) manual page.

Documentation

README Files

There are some README.md files in the top level of the source distribution containing additional information on specific topics.

The OpenSSL Guide

There are some tutorial and introductory pages on some important OpenSSL topics within the OpenSSL Guide.

Manual Pages

The manual pages for the master branch and all current stable releases are available online.

Demos

The are numerous source code demos for using various OpenSSL capabilities in the demos subfolder.

Wiki

There is a Wiki at wiki.openssl.org which is currently not very active. It contains a lot of useful information, not all of which is up-to-date.

License

OpenSSL is licensed under the Apache License 2.0, which means that you are free to get and use it for commercial and non-commercial purposes as long as you fulfill its conditions.

See the LICENSE.txt file for more details.

Support

There are various ways to get in touch. The correct channel depends on your requirement. See the SUPPORT file for more details.

Contributing

If you are interested and willing to contribute to the OpenSSL project, please take a look at the CONTRIBUTING file.

Legalities

A number of nations restrict the use or export of cryptography. If you are potentially subject to such restrictions, you should seek legal advice before attempting to develop or distribute cryptographic code.

Copyright

Copyright (c) 1998-2024 The OpenSSL Project Authors

Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson

All rights reserved.

tools's People

Contributors

bernd-edlinger avatar ddvo avatar dimitripapadopoulos avatar hlandau avatar iamamoose avatar infohunter avatar johndoe31415 avatar kaduk avatar kroeckx avatar levitte avatar mattcaswell avatar mspncp avatar nhorman avatar paulidale avatar quarckster avatar richsalz avatar romen avatar sashan avatar t8m avatar zengwei2000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tools's Issues

Announcement text for premium releases needs to be changed

Proposed text:



   OpenSSL version 1.0.2zh released
   ================================

   OpenSSL - The Open Source toolkit for SSL/TLS
   https://www.openssl.org/

   The OpenSSL project team is pleased to announce the release of
   version 1.0.2zh of our open source toolkit for SSL/TLS.

   OpenSSL 1.0.2zh is available for download via HTTPS from the following
   location on our support system:

   https://github.openssl.org/openssl/extended-releases/releases/tag/OpenSSL_1_0_2zh

   If you have not yet established access to our support system server,
   please contact us on [email protected] to arrange your set up.

   The distribution file name is:

    o openssl-1.0.2zh.tar.gz
      Size: xxxxxxx
      SHA1 checksum:  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      SHA256 checksum:  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

   The checksums were calculated using the following commands:

    openssl sha1 openssl-1.0.2zh.tar.gz
    openssl sha256 openssl-1.0.2zh.tar.gz

   Yours,

   The OpenSSL Project Team.

Lost (read) access to upstream tools repository

On git fetch from [email protected]:tools.git I get

FATAL -- ACCESS DENIED
Repo            tools                                                       
User            [email protected]                                                
Stage           Before git was called                                       
Operation       Repo read                                                   

======== This repository has been moved to [email protected]:otc/tools.git ========

FATAL: R any tools [email protected] DENIED by fallthru
(or you mis-spelled the reponame)
fatal: Could not read from remote repository.

and when I try fetching from [email protected]:otc/tools.git I get

[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

addrev --release requires too many reviewers

With a release commit the review rules are relaxed and the author of a commit (assuming they are a committer) is counted as a reviewer. This doesn't work with addrev --release which requires 2 reviewers excluding the author.

Auto add approval: done label

It's currently changing approval: done to approval: ready to merge, but it would also be handy that it adds the approval: done automatically.

`addrev` fails with `Server error: Can't verify SSL peers without knowing which Certificate Authorities to trust`

gitaddrev (regardless of any parameters provided) gives me this:

Use of uninitialized value in concatenation (.) or string at /Library/Perl/5.30/OpenSSL/Query/PersonREST.pm line 75.
Server error: Can't verify SSL peers without knowing which Certificate Authorities to trust at /Library/Perl/5.30/OpenSSL/Query.pm line 118.
 at [...]/tools/review-tools/gitaddrev line 42.

Maybe this issue is specific to MacOS.

I got this after successfully installing the Perl support as mentioned in #134 (comment).

addrev script can't locate OpenSSL/Query/REST.pm

It seems like my addrev script stopped working a while ago. (Don't know when, haven't been using it for a while).

msp@office:~/src/openssl/master$ addrev --prnum=20106 @beldmit
Rewrite 8eaa815234dc00804c07d6ab7a1e5d7283c81df8 (1/1) (0 seconds passed, remaining 0 predicted)    Can't locate OpenSSL/Query/REST.pm in @INC (you may need to install the OpenSSL::Query::REST module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at /home/msp/openssl/tools/review-tools/gitaddrev line 9.
BEGIN failed--compilation aborted at /home/msp/openssl/tools/review-tools/gitaddrev line 9.
msg filter failed: gitaddrev --prnum=20106 --reviewer=@abc [email protected]
 
addrev failed
Died at /home/msp/openssl/tools/review-tools/addrev line 89.

I checked that my tools directory is up-to-date

msp@office:~/src/openssl/master$ which addrev
/home/msp/openssl/tools/review-tools/addrev
msp@office:~/src/openssl/master$ cd /home/msp/openssl/tools/
msp@office:~/openssl/tools$ git log --oneline -1
ec24476 pick-to-branch: fix exit message by making variable name consistent

and the review-tools/README tells me to look for a README.md in the OpenSSL-Query folder:

* OpenSSL-Query: Follow the instructions in its README.md

The README.md however has been removed in commit 0d8b319 by @levitte.

What am I missing?

Notifications on ready-to-merge

It would be nice if we sent out a notification to openssl-commits when a PR becomes ready-to-merge, mentioning the reviewer names in the notification as a reminder that they might want to come back and merge the PR

Man pages for master on the website are incomplete

I am opening the issue here supposing that there is some script in here that is used to update the manmaster section of the website.

A full installation of current master would create manpages for the various commands, including e.g.
https://www.openssl.org/docs/manmaster/man1/openssl-pkeyutl.html
but not all manpages are being loaded to the web server.

Ping @mattcaswell /@levitte as this seems to be quite relevant for the imminent alpha1 release.

ghmerge creates wrong link

The "merged from" line is wrong if not in the openssl repo:

- Log -----------------------------------------------------------------
commit fe185a2b8f12669f7a9a88582cb63ad316cd2382
Author: Dr. Matthias St. Pierre <[email protected]>
Date:   Wed Aug 14 01:24:55 2019 +0200

...    
    Reviewed-by: Richard Levitte <[email protected]>
    (Merged from https://github.com/openssl/openssl/pull/40)

Notifications on "urgent" labels

Addition of labels doesn't result in a notification being sent out. It would be good if we sent out a notification when an urgent label has been applied to a PR

Do CLA trivial label magic

Why wasn't the CLA: trivial label set earlier? AFAIK there is no automatic labelling if a commit contains "CLA: trivial" in the header.It's purely manual. Perhaps @iamamoose could work his magic...?

Run run-checker with GOST test switched on

Now that openssl/openssl#6650 has been merged we have a test capable of testing GOST ciphersuites if a GOST engine in present. The test requires that the environment variable OPENSSL_GOST_ENGINE_SO is set to point at gost.so. We should set up run-checker so that this is configured.

addrev: Recent strong warning with newer git versions

When using addrev just now, I got this big fat warning:

WARNING: git-filter-branch has a glut of gotchas generating mangled history
	 rewrites.  Hit Ctrl-C before proceeding to abort, then use an
	 alternative filtering tool such as 'git filter-repo'
	 (https://github.com/newren/git-filter-repo/) instead.  See the
	 filter-branch manual page for more details; to squelch this warning,
	 set FILTER_BRANCH_SQUELCH_WARNING=1.
Proceeding with filter-branch...

It took about a second or two before the last line appeared.

I didn't interrupt this because I'm confident in what addrev does and that I can recover from mistakes ('cause I've done them), but addrev should probably be reworked to use filter-repo anyway.

Default for the stage release script should not be the current user

When running stage-release.sh if you neglect to supply the "--local-user" argument then it defaults to the current user. This is almost never the correct answer since it signs the release tarball with the current user's gpg key, rather than the team key.

It probably should default to the team key, or alternatively fail.

addrev needs adjusting for release commits

The new rules that say the author cannot be one of the reviewers of a pull request do not apply to release commits and CHANGES/NEWS updates. But addrev doesn't know about this special case and refuses to add the appropriate headers.

Email announcements user is unclear/wrong

HOWTO-publish-a-release says this about sending email announcements:

They
should be sent from the account of the person that owns the key used for
signing the release announcement

But, the email announcements are now signed by the team key (openssl-security/openssl-omc). It's unclear which user account needs to be used.

Sending from the wrong user account means that the gpg signatures will fail to verify in some email clients.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.