[Vm-dev] Breaking up Cryptography Re: [squeak-dev] SHA512 squeak implementation?

Robert robert.withers at pm.me
Sat Mar 7 16:39:37 UTC 2020


Hi Jakob, Super! I was able to test adding a required package to ParrotTalk-rww.35, which auto-loads Cryptography-v5.3-rww.120.

I used this script, which I got working by specifying the full name with version. It auto-loads Cryptography.

Installer ss
    project: 'Cryptography';
    install: 'ParrotTalk-rww.35';
    yourself.

So now, in thinking about how to fragment Cryptography, using required packages and Installer scripts, here is a sample install script after fragmenting Cryptography.

Installer ss
    project: 'Cryptography';
    install: 'Cryptography-ciphers-rww.1';
    install: 'Cryptography-hash-rww.1';
    yourself.

These have Monticello required packages of ('Cryptography-base-rww.1' 'Cryptography-random-rww.1'). So all of it would load.

Now imagine loading SSL, in the future
Installer ss
    project: 'Cryptography';
    install: 'SSL-rww.50';
    yourself.

With dependencies, this will auto-load the following packages, after fragmentation.:
('Cryptography-base-rww.1'
 'Cryptography-random-rww.1'
 'Cryptography-ciphers-rww.1'
 'Cryptography-hash-rww.1'
 'Cryptography-ASN1-rww.1'
 'Cryptography-X509-rww.1'
 'ParrotTalk-rww.35')

Very well a solution! without using Metacello, which I do not like so much. A different package representation with lots of methods, like 'baseline' & ...., which gets stored separately. I actually spent a lot of time trying to get Tonal loaded in squeak to access the newer representations of github Smalltalk projects. I was unsuccessful.

Now the question becomes, which algorithms should be kept in the pro version?

Base: HashFunction, Registers, BlockCipher, RandomGenerator.

Random & Primes: KeyHolder, MillerRabin, PasswordSaltAndStretch, PBE, PrimesFinder, PrimesWheel, Fortuna, SecureRandom, RandomPool,

Hashes: MD5, SHA1, SHA256, SHA512.

Ciphers & Cipher Modes: DES, TripleDES, AES, Blowfish, CBC, CFB, CTR, OFB, PKCS5Or7PaddingMode...

ASN1: ASN1, ASN1-DefinitionModel, ASN1-Objects, ASN1-Types

X509: X509, X509-Extensions, X509-Readers

There may be lots of Extension methods in ASN1, for instance. These are all the class-side methods on various components of Cryptography that build ASN1Model, #initializeASN1Types. Like for RSA keys.

Comments?

Kindly,
rabbit

On 3/7/20 9:51 AM, Jakob Reschke wrote:

> Robert via Squeak-dev <squeak-dev at lists.squeakfoundation.org> schrieb am Sa., 7. März 2020, 15:39:
>
>> If only Monticello allowed for
>> dependencies,
>
> In fact it does. But it is never used so I suppose some piece is missing.
>
> What about Metacello? Most people use it for package dependency management nowadays.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20200307/e3dd5bf5/attachment.html>


More information about the Vm-dev mailing list