Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Text Library: RSA Public-key Encryption

This library has 21 classes.

ECF: public-key-encryption.ecf

Extends Colin LeMahieu's arbitrary precision integer library to conform to some RSA standards. The most important is the ability to read key-pairs conforming to the X509 PKCS1 standard. The top level class to access these facilities is EL_MODULE_X509.

The private key reader however uses a non-standard encryption scheme. It assumes the file is encrypted using the Eiffel-Loop utility contained in el_toolkit.

Directory: library/text/rsa-encryption

[ . ]

. /eiffel

. /imp_common/x509

. /x509

[ . ]

EL_INTEGER_X_READER_WRITER

Adapter interface to read a INTEGER_X item from EL_READABLE and write an item to EL_WRITABLE

EL_MODULE_RSA

Module rsa

EL_RANDOM_SEED_INTEGER_X

Object to time seed random state

EL_REFLECTIVE_RSA_KEY

RSA key reflectively createable from PKCS1 standard names. Base class for EL_RSA_PUBLIC_KEY and EL_RSA_PRIVATE_KEY.

EL_RSA_CRYPTO_COMMAND_SHELL

EL_CRYPTO_COMMAND_SHELL with addition of RSA public-key cryptography operations

EL_RSA_KEY_PAIR

Rsa key pair

EL_RSA_PRIVATE_KEY

RSA private key with attributes reflectively settable from PKCS1 standard names

RSAPrivateKey ::= SEQUENCE {
    version           Version,
    modulus           INTEGER,
    publicExponent    INTEGER,
    privateExponent   INTEGER,
    prime1            INTEGER,
    prime2            INTEGER,
    exponent1         INTEGER,
    exponent2         INTEGER,
    coefficient       INTEGER,
    otherPrimeInfos   OtherPrimeInfos OPTIONAL
}

Further Information

Click on class link to see client examples.

EL_RSA_PUBLIC_KEY

Reflectively createable RSA public key

EL_RSA_ROUTINES

RSA routines

EL_RSA_USER_CRYPTO_OPERATIONS

EL_USER_CRYPTO_OPERATIONS with addition of RSA public-key cryptography operations

eiffel

EL_PUBLIC_KEY_FIELD

Obfuscates an INTEGER_X into an array of factorized numbers

Further Information

Click on class link to see notes.

EL_PUBLIC_KEY_MANIFEST_CLASS

Public key manifest class

EL_SIGNED_EIFFEL_CLASS

Eiffel class with signed fields

Further Information

Click on class link to see client examples.

EL_SIGNED_EIFFEL_FIELD

Signed Eiffel field

imp_common/x509

EL_X509_PRIVATE_READER_COMMAND_IMP

Implementation of EL_X509_PRIVATE_READER_COMMAND_I interface

Further Information

Click on class link to see client examples.

EL_X509_PUBLIC_READER_COMMAND_IMP

Implementation of EL_X509_PUBLIC_READER_COMMAND_I interface

x509

EL_MODULE_X509

Shared access to instance of EL_X509_CERTIFICATE_ROUTINES

Further Information

Click on class link to see client examples.

EL_X509_CERTIFICATE_READER_COMMAND_I

Parse RSA key certificate from output text

SAMPLE CERTIFICATE

Certificate:

Data:
   Version: 3 (0x2)
   Serial Number: 13356565485226223335 (0xb95c0d8aee26e6e7)
Signature Algorithm: sha1WithRSAEncryption
   Issuer: C=IE, ST=Meath, L=Dunboyne, O=Yibook, OU=None, CN=Finnian/emailAddress=finnian@eiffel-loop.com
   Validity
      Not Before: May  2 12:48:51 2012 GMT
      Not After : Jan 27 12:48:51 2015 GMT
   Subject: C=IE, ST=Meath, L=Dunboyne, O=Yibook, OU=None, CN=Finnian/emailAddress=finnian@eiffel-loop.com
   Subject Public Key Info:
      Public Key Algorithm: rsaEncryption
         Public-Key: (1024 bit)
         Modulus:
            00:d9:61:6e:a7:03:21:2f:70:d2:22:38:d7:99:d4:
            bc:6d:55:7f:cc:97:9a:5d:8b:a3:d3:84:d3:2b:a2:
            1a:ba:67:3f:d5:17:68:e0:3d:a7:ed:23:5f:04:b6:
            8e:70:0d:f5:bc:d3:dd:03:cd:78:ec:4b:64:93:91:
            8a:4d:e5:d1:a9:01:4b:83:f9:2e:9c:a7:df:d8:6a:
            bc:1a:cf:80:f6:03:97:2a:a5:f8:1f:0e:02:81:51:
            14:cb:72:66:46:2a:b9:c2:f4:13:22:fd:d0:fc:4d:
            15:86:14:3b:5d:fc:25:65:26:31:5b:f9:d5:6d:a5:
            0d:26:e4:68:74:85:a7:0a:ad
         Exponent: 65537 (0x10001)

EL_X509_CERTIFICATE_ROUTINES

X509 certificate routines

EL_X509_PRIVATE_READER_COMMAND_I

Reads private key from X509 certificate file with extension .key

Further Information

Click on class link to see client examples.

EL_X509_PUBLIC_READER_COMMAND_I

Reads public key from X509 certificate file with extension .crt