comp.lang.ada
 help / color / mirror / Atom feed
* ANN: Simple components for Ada v4.41 released
@ 2019-08-05 11:57 Dmitry A. Kazakov
  2019-08-05 14:22 ` Shark8
  0 siblings, 1 reply; 5+ messages in thread
From: Dmitry A. Kazakov @ 2019-08-05 11:57 UTC (permalink / raw)


The new release is focused on ASN.1 support. The implementation does not 
require ASN.1 compiler. It is based on reflection of Ada attributes. The 
objects corresponding to ASN.1 objects are put together into record 
types and the encoding is deduced from the placement. The implementation 
provides arena pool to allocate data associated with ASN.1 objects. This 
allows to handle very large and indefinite ASN.1 objects without 
allocating maximum possible memory in advance. This also enables sharing 
memory between ASN.1 CHOICE alternatives as well as recursively defined 
ASN.1 objects. Implementations of LDAP and X.509 certificates based on 
ASN.1 are provided.

    http://www.dmitry-kazakov.de/ada/components.htm

Changes to the previous version:

- The package OpenSSL was extended;
- Added implementation of ASN.1 encoding;
- X.509 ASN.1 certificates implementation added;
- LDAP implementation added.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ANN: Simple components for Ada v4.41 released
  2019-08-05 11:57 ANN: Simple components for Ada v4.41 released Dmitry A. Kazakov
@ 2019-08-05 14:22 ` Shark8
  2019-08-05 15:56   ` Dmitry A. Kazakov
  0 siblings, 1 reply; 5+ messages in thread
From: Shark8 @ 2019-08-05 14:22 UTC (permalink / raw)


On Monday, August 5, 2019 at 5:57:20 AM UTC-6, Dmitry A. Kazakov wrote:
> The new release is focused on ASN.1 support. The implementation does not 
> require ASN.1 compiler. It is based on reflection of Ada attributes. The 
> objects corresponding to ASN.1 objects are put together into record 
> types and the encoding is deduced from the placement. The implementation 
> provides arena pool to allocate data associated with ASN.1 objects. This 
> allows to handle very large and indefinite ASN.1 objects without 
> allocating maximum possible memory in advance. This also enables sharing 
> memory between ASN.1 CHOICE alternatives as well as recursively defined 
> ASN.1 objects. Implementations of LDAP and X.509 certificates based on 
> ASN.1 are provided.
> 
>     http://www.dmitry-kazakov.de/ada/components.htm
> 
> Changes to the previous version:
> 
> - The package OpenSSL was extended;
> - Added implementation of ASN.1 encoding;
> - X.509 ASN.1 certificates implementation added;
> - LDAP implementation added.
> 
> -- 
> Regards,
> Dmitry A. Kazakov
> http://www.dmitry-kazakov.de

Wow!
This is incredible news, especially for things like the Wasabee browser project.
There was someone who was working on an Ada/SPARK ASN.1 compiler (Peter Chapin?) and I think the people doing this project -- https://github.com/ttsiodras/asn1scc -- which *is* an ASN.1 compiler.

WRT the OpenSSL dependency, how much work would it be to get rid of it?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ANN: Simple components for Ada v4.41 released
  2019-08-05 14:22 ` Shark8
@ 2019-08-05 15:56   ` Dmitry A. Kazakov
  2019-09-13  0:40     ` R Srinivasan
  0 siblings, 1 reply; 5+ messages in thread
From: Dmitry A. Kazakov @ 2019-08-05 15:56 UTC (permalink / raw)


On 2019-08-05 16:22, Shark8 wrote:

> Wow!
> This is incredible news, especially for things like the Wasabee browser project.
> There was someone who was working on an Ada/SPARK ASN.1 compiler (Peter Chapin?) and I think the people doing this project -- 

    https://github.com/ttsiodras/asn1scc -- which *is* an ASN.1 compiler.

I am aware of ASN1SCC, but I wanted an alternative approach that does 
not require code generator and can handle constraints dynamically.

ASN.1 specifications are infested with objects defined up to "MAX" 
items. E.g. the LDAP filter is a variable record (CHOICE) with 
disjunctive and conjunctive forms as alternatives containing the LDAP 
filter recursively as terms. The number of terms is an unspecified MAX 
and the depth of recursion is kind of infinite. I have no idea how the 
generators handle this mess. If compiled literally, e.g. with MAX=256 
depth=32, it would take a huge amount of memory while in reality it is 
bounded from above just by the message length.

> WRT the OpenSSL dependency, how much work would it be to get rid of it?

There is no dependency on OpenSSL.

OpenSSL and GNUTLS are two back-ends used in the corresponding 
implementations of the secure connection handler. Both are separate 
gpr-projects.

All network stacks are designed to work with any handler implementation. 
Should Ada TLS become available I would use it in yet another 
implementation of.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ANN: Simple components for Ada v4.41 released
  2019-08-05 15:56   ` Dmitry A. Kazakov
@ 2019-09-13  0:40     ` R Srinivasan
  2019-09-13  7:29       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 5+ messages in thread
From: R Srinivasan @ 2019-09-13  0:40 UTC (permalink / raw)


Could you please clarify "there is no dependency on OpenSSL". Is this a binding to the openssl libraries?

I should download and check but does it support all the encryption / decryption algorithms support by openssl?

thanks, srini


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ANN: Simple components for Ada v4.41 released
  2019-09-13  0:40     ` R Srinivasan
@ 2019-09-13  7:29       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 5+ messages in thread
From: Dmitry A. Kazakov @ 2019-09-13  7:29 UTC (permalink / raw)


On 2019-09-13 02:40, R Srinivasan wrote:
> Could you please clarify "there is no dependency on OpenSSL". Is this a binding to the openssl libraries?
> 
> I should download and check but does it support all the encryption / decryption algorithms support by openssl?

It depends on what exactly you mean.

The library comes with some encryption algorithms, e.g. it provides 100% 
Ada implementation of ChaCha20 and Poly1305.

However OpenSSL and GNUTLS are more than mere encryption, they implement 
the complicated TLS handshake protocol and lot of other stuff. The 
library provides bindings to both of them.

Now regarding the protocols that *may* use TLS, e.g. HTTP, MQTT, LDAP, 
SMTP, whatever. The implementations of these protocols in the library do 
not depend on any concrete implementation (bindings) of TLS. You can use 
them without OpenSSL, with no TLS at all, as well as with your own 
implementation of TLS or with provided OpenSSL or GNUTLS bindings.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-09-13  7:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-05 11:57 ANN: Simple components for Ada v4.41 released Dmitry A. Kazakov
2019-08-05 14:22 ` Shark8
2019-08-05 15:56   ` Dmitry A. Kazakov
2019-09-13  0:40     ` R Srinivasan
2019-09-13  7:29       ` Dmitry A. Kazakov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox