<commit_before>![Logo](https://litsec.github.io/eidas-opensaml/img/litsec-small.png)

------

# eidas-opensaml

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/se.litsec.eidas/eidas-opensaml3/badge.svg)](https://maven-badges.herokuapp.com/maven-central/se.litsec.eidas/eidas-opensaml3) 

<!-- [![Known Vulnerabilities](https://snyk.io/test/github/litsec/eidas-opensaml/badge.svg?targetFile=opensaml3%2Fpom.xml)](https://snyk.io/test/github/litsec/eidas-opensaml?targetFile=opensaml3%2Fpom.xml) -->

OpenSAML extensions for the eIDAS Framework.

eIDAS (EU REGULATION [910/2014](http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32014R0910&from=EN) on electronic identification and trust services for electronic transactions in the European internal market) defines requirements on cross-border recognition of electronic identification means in EU.

The eIDAS technical specifications defines a number of SAML elements and attribute definitions which are normally not supported by standard SAML software. The **eidas-opensaml** Open Source Java library extends the OpenSAML 3.X framework with support for the definitions from the eIDAS technical specifications.

The following eIDAS specifications are implemented:
* [eIDAS - Interoperability Architechture v1.2](https://github.com/litsec/eidas-opensaml/files/3236262/2019_05_23_eIDAS.Interoperability.Architecture.v1.2_Final2_CT.pdf)

* [ eIDAS - Cryptographic requirements for the Interoperability Framework v1.2](https://github.com/litsec/eidas-opensaml/files/3236260/2019_05_21_eIDAS.Crypto.Requirements_v1.2_Final2.pdf)

* [eIDAS SAML Message Format v1.2](https://github.com/litsec/eidas-opensaml/files/2219283/eIDAS.Message.Format_v1.2_final.docx)

* [eIDAS SAML Attribute Profile v1.2](https://github.com/litsec/eidas-opensaml/files/3236266/eIDAS.SAML.Attribute.Profile.v1.2-FINAL.pdf)

> **Note**: Support for OpenSAML 2.X has been discontinued. The last release of eidas-opensaml supporting OpenSAML 2.X is 1.0.6.

### How to use the use the eidas-opensaml library

The eidas-opensaml artifacts are published to Maven central and a dependency to the library should be included as follows in the application POM-file:

```
<dependency>
  <groupId>se.litsec.eidas</groupId>
  <artifactId>eidas-opensaml3</artifactId>
  <version>${eidas-opensaml.version}</version>
</dependency>
```

### Documentation

* API documentation - [https://litsec.github.io/eidas-opensaml/javadoc/opensaml3/1.4.0](https://litsec.github.io/eidas-opensaml/javadoc/opensaml3/1.4.0/index.html).
* Generated project documentation - [https://litsec.github.io/eidas-opensaml/site](https://litsec.github.io/eidas-opensaml/site/index.html).

### Examples

#### Creating an eIDAS AuthnRequest message

The [eIDAS SAML Message Format v1.2](https://github.com/litsec/eidas-opensaml/files/2219283/eIDAS.Message.Format_v1.2_final.docx) specification describes how a SAML `AuthnRequest` message should be put together to comply to the eIDAS specifications. 

[CreateAuthnRequestExample.java](https://github.com/litsec/eidas-opensaml/blob/master/opensaml3/src/test/java/se/litsec/eidas/opensaml/examples/CreateAuthnRequestExample.java) illustrates how you could create an authentication request message using the eidas-opensaml library.
<commit_msg>Fixed link to API docs<commit_after>![Logo](https://litsec.github.io/eidas-opensaml/img/litsec-small.png)

------

# eidas-opensaml

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/se.litsec.eidas/eidas-opensaml3/badge.svg)](https://maven-badges.herokuapp.com/maven-central/se.litsec.eidas/eidas-opensaml3) 

<!-- [![Known Vulnerabilities](https://snyk.io/test/github/litsec/eidas-opensaml/badge.svg?targetFile=opensaml3%2Fpom.xml)](https://snyk.io/test/github/litsec/eidas-opensaml?targetFile=opensaml3%2Fpom.xml) -->

OpenSAML extensions for the eIDAS Framework.

eIDAS (EU REGULATION [910/2014](http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32014R0910&from=EN) on electronic identification and trust services for electronic transactions in the European internal market) defines requirements on cross-border recognition of electronic identification means in EU.

The eIDAS technical specifications defines a number of SAML elements and attribute definitions which are normally not supported by standard SAML software. The **eidas-opensaml** Open Source Java library extends the OpenSAML 3.X framework with support for the definitions from the eIDAS technical specifications.

The following eIDAS specifications are implemented:
* [eIDAS - Interoperability Architechture v1.2](https://github.com/litsec/eidas-opensaml/files/3236262/2019_05_23_eIDAS.Interoperability.Architecture.v1.2_Final2_CT.pdf)

* [ eIDAS - Cryptographic requirements for the Interoperability Framework v1.2](https://github.com/litsec/eidas-opensaml/files/3236260/2019_05_21_eIDAS.Crypto.Requirements_v1.2_Final2.pdf)

* [eIDAS SAML Message Format v1.2](https://github.com/litsec/eidas-opensaml/files/2219283/eIDAS.Message.Format_v1.2_final.docx)

* [eIDAS SAML Attribute Profile v1.2](https://github.com/litsec/eidas-opensaml/files/3236266/eIDAS.SAML.Attribute.Profile.v1.2-FINAL.pdf)

> **Note**: Support for OpenSAML 2.X has been discontinued. The last release of eidas-opensaml supporting OpenSAML 2.X is 1.0.6.

### How to use the use the eidas-opensaml library

The eidas-opensaml artifacts are published to Maven central and a dependency to the library should be included as follows in the application POM-file:

```
<dependency>
  <groupId>se.litsec.eidas</groupId>
  <artifactId>eidas-opensaml3</artifactId>
  <version>${eidas-opensaml.version}</version>
</dependency>
```

### Documentation

* API documentation - [https://litsec.github.io/eidas-opensaml/javadoc/opensaml3/1.4.1](https://litsec.github.io/eidas-opensaml/javadoc/opensaml3/1.4.1/index.html).
* Generated project documentation - [https://litsec.github.io/eidas-opensaml/site](https://litsec.github.io/eidas-opensaml/site/index.html).

### Examples

#### Creating an eIDAS AuthnRequest message

The [eIDAS SAML Message Format v1.2](https://github.com/litsec/eidas-opensaml/files/2219283/eIDAS.Message.Format_v1.2_final.docx) specification describes how a SAML `AuthnRequest` message should be put together to comply to the eIDAS specifications. 

[CreateAuthnRequestExample.java](https://github.com/litsec/eidas-opensaml/blob/master/opensaml3/src/test/java/se/litsec/eidas/opensaml/examples/CreateAuthnRequestExample.java) illustrates how you could create an authentication request message using the eidas-opensaml library.

{'fraction_non_alphanumeric': 0.12585979803892872, 'fraction_numerical': 0.03424557295477828, 'mean_word_length': 5.3690587138863, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 23, 'https://': 34, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2156334', 'n_tokens_mistral': 2442, 'n_tokens_neox': 2236, 'n_words': 440}