Comments (18)
@mwcw looks like there's been some organic roadblocks. It'll take a while, but we should definitely start the process.
from pc-dart.
It's also worth noting that pointycastle is one of the most used packages on pub. This is both because of downstream package dependencies and direct users. I think that this is high-urgency given how much code we'd have to port, but this library doesn't use null extensively (so the port should be okay).
from pc-dart.
A Dart dev I know said that Current Dart -> NNBD Dart is sort of like Java -> Kotlin.
Thought it was a good comparison; the code is completely interoperable, but the languages are pretty fundamentally different.
from pc-dart.
Ok,
While it is good to be on the front foot, I think wait until the language feature is stable.
MW
from pc-dart.
Ok,
While it is good to be on the front foot, I think wait until the language feature is stable.
MW
Agreed.
from pc-dart.
@mwcw the null-safety feature is now in beta, and it's recommended for packages to create a prerelease branch which is ported to nullsafety. There has also been a promise of runtime performance improvements, since the language no longer has to perform null checks.
Associated reading:
Feature overview: https://dart.dev/null-safety
Migration guide: https://dart.dev/null-safety/migration-guide
This library is a "core" dependency, so any downstream packages/applications will end up needing this package migrated before they can do so. By starting the process now, we can "get ahead of the curve", so that this library is fully migrated when the feature reaches stable and production applications begin to migrate. It looks like the Dart team has built a migration tool, so this process should be mostly a careful inspection and correction on auto-migration.
from pc-dart.
Hi,
Ok, I am trying to get back onto the dart project, we are heading towards towards a new round of FIPS certifications and it is consuming all of my time at the moment, although the end is in sight.
I will try and take a look at those links in the next day (Melbourne AU).
MW
from pc-dart.
@AKushWarrior @mwcw please migrate this with a pre-release like other packages have done. All packages that consume this package cannot migrate until this one is migrated, so all downstream packages are blocked until you set out a nullsafety pre-release as outlined in the migration guide: https://dart.dev/null-safety/migration-guide
from pc-dart.
You can see here that there are currently 108 packages which depend on pointycastle
on pub.dev, so all of them are in the same blocked state: https://pub.dev/packages?q=dependency%3Apointycastle
from pc-dart.
Working on this on my fork. Will update with more details as I have them. You can view progress at https://github.com/AKushWarrior/pc-dart
@mwcw to avoid merge conflicts, could you not merge PRs into this repository for a few days? I want to make sure that my fork is fast-forward-safe with this one.
from pc-dart.
Hi,
Yep I can do that, did you by chance see an email from me?
MW
from pc-dart.
Haven't seen one. What address did you send it to?
Typically I use [email protected] for open source stuff.
from pc-dart.
Hi,
I have send you another email, I am not sure what happened.
MW
from pc-dart.
It looks like the majority of tests are passing on my fork. It's at 435 passing, 16 failing currently. I think that this should be ready for prerelease by the end of tomorrow, assuming all goes well.
EDIT: 449 passing, 2 failing. The remaining issues are with AES/CBC_CMAC/PKCS7 and RSA key generation. I'm not really sure how to solve them, but I'll give it a shot later.
from pc-dart.
Sure let me know!
Given the size of the change I think it should go out as 2.1.0
MW
from pc-dart.
Sure let me know!
Given the size of the change I think it should go out as 2.1.0
MW
It should be in the form "2.1.0-null-safety" or something of that sort. The dart docs specify; I'll get it set up before I finalize the PR.
from pc-dart.
@mwcw this is taking a really long time. Not sure where these last couple errors are coming from. Going to do some diffs with the old code today and see if that helps.
from pc-dart.
@mwcw @acoutts The migration is finished and the PR is filed. I've taken great care to ensure that the package is publish-ready; all the logistical problems, dependency management, versioning, etc. have been taken care of along with the migration itself.
I declared this version to be 3.0.0 because of this guideline: https://dart.dev/null-safety/migration-guide#package-version. That versioning bump makes sense to me because this is fundamentally a breaking change for downstream users, in that their code would have to be migrated to use this package. That they would have migrated anyways is immaterial to semantic versioning :)
from pc-dart.
Related Issues (20)
- Official ASN1 example not wroking, can't encode bit string. HOT 2
- ECPrivateKey compability with OpenSSL/LibreSSL HOT 3
- Invalid RSA Public key PEM PKCS1 HOT 1
- Speed? I'm encrypting 100mb per 10 seconds...
- tree shaking not working
- Question about AES/CBC speed HOT 7
- Decrypt RSA-OAEP (SHA-256) with label
- RIPEMD160 digest was broken in version 3.6.2 HOT 5
- Uint64List not supported in web mode HOT 7
- How can I do that ? ? (AES)
- PKCS12 Support HOT 3
- AES-GCM - 3 distinct decryption/encryption issues in processBytes(), if called multiple times (e.g. for stream) before doFinal()
- ECIES Encrypt/Decrypt
- Checksum
- Missing stuff from Java HOT 1
- Import conflicts with version 3.7.2 HOT 1
- Incorrect api interface for PSSSigner HOT 5
- ECDSA verifier HOT 1
- Poly1305 support for web
- New release HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pc-dart.