cryptimeleon / cryptimeleon.github.io Goto Github PK
View Code? Open in Web Editor NEWDocumentation for the Cryptimeleon cryptography libraries.
License: Apache License 2.0
Documentation for the Cryptimeleon cryptography libraries.
License: Apache License 2.0
Please add an example how to set "useCurrentBranch" in settings.gradle to the Composite build page.
Questions:
includeBuild
-depends" on math and craco, can I turn it off in my project or do I need to modify craco
's settings.gradle?As it stands, it was easier for me to comment out the line that throws an exception rather than read into gradle syntax for setting properties (naive attempts failed). The documentation should be more helpful here.
To be able to render Jupyter notebooks on the documentation page, they need to be converted to the Markdown format supported by the Kramdown parser we use.
The conversion included in Jupyter does not do this correctly; therefore, a script to automate the process would be useful.
The script has to:
mathjax: true
and/or toc: true
to render LaTex and/or a table of contents. Could use optional commandline arguments to make this configurable.assets
folder, and update the link in the Markdown fileThere is already an existing Jupyter Notebook to Jekyll Markdown converter.
We could use that via a Github Actions workflow to automatically do the conversion like here. It does require adding additional metadata to the Notebook to enable YAML Front Matter (as shown on the script's page).
The installation instructions need to be rewritten once we have published it online (or ideally shortly beforehand).
The jupyter notebooks don't work anymore due to the recent Math and Craco reorganizations. This needs to be fixed.
I noticed that we sometimes use full capitalization for headers, e.g. the representation page, and sometimes regular sentence capitalization, e.g. the first steps page. We should decide on one style and then stick with that. I personally prefer the regular sentence capitalization; I think it looks better and you don't need to worry about edge cases like "Do you capitalize single letter words such as 'a'?".
Figuring out whether the libraries offer any existing tests for your schemes is currently fairly difficult without consulting our own tests.
For example, to use the standalone tests you need to add the math-tests
dependency to your project and then correctly use the standalone test. Similarly for the Craco tests via craco-tests
.
It would be nice if we had a page that
I originally started on something like this and then stopped, because I wanted to make the tests more uniform first (see this issue). I still think that should be addressed first (especially the signature tests). However, since the standalone tests have been rewritten already, one could at least write something for those.
Due to the math rewrite, work on the documentation has been halted until now. Once the next release is feature-complete, we should write documentation to support the release.
My plans for the documentation currently would be as follows:
contributors.md
file as seen in other github projects.Find nice way to include the ipynb stuff.
Ideas:
ipynb
s where appropriate.Add official reference for BBS signature scheme variant to libraries.md. We can additionally cite the thesis.
@InProceedings{SCN:AuSusMu06,
author = "Man Ho Au and
Willy Susilo and
Yi Mu",
title = "Constant-Size Dynamic k-{TAA}",
pages = "111--125",
editor = scn06ed,
booktitle = scn06name,
volume = scn06vol,
address = scn06addr,
month = scn06month,
publisher = scnpub,
series = mylncs,
year = 2006,
doi = "10.1007/11832072_8",
}
The Gradle library allows for selecting which version of Gradle you use and then shows the right documentation for that version. Once we have more than just version 1.0.0, it would be nice to offer a similar functionality for our documentation page.
Since we have multiple projects in our documentation, it would probably make sense to bundle up specific version of each library in a bigger "all of upb.crypto" version, similar to how Math 1.0.0, Craco 1.0.0, etc. are designed to work together. Then the selection would just differentiate between these bundles.
see cryptimeleon/craco#76 for details.
Also the existing citation is wrong it should be eprint 2014/944 as in the class mentioned in the above issue.
(This issue has been imported from the Gitlab repository because it seems to not have been addressed yet)
Add coding guidelines to Wiki that includes stuff like
On group membership: we should check whenever creating a (group) Element from user-supplied data. So any instantiated object should correspond to a valid Element (throw an exception otherwise).
Can we enforce such things using findbugs rules?
Can we enforce such things using findbugs rules?
Probably not (at least the first three points seems too complicated and diverse to check with a general rule). But it's generally a cool idea to think about adding some findbugs checks :)
[at]feidens what are findbugs rules? I think we could implement a generic subgroup membership test given that the factorization of the group order is known. IEEE also proposes such checks that are basically:
Check 2 might be expensive for large groups. For small cofactors a check based on exponentiation with cofactors might be more efficient. How to do this without introducing vulnerabilities to small subgroup attack will be part of the wiki.
I think the findbugs rules were shown in our last meeting through the sonarqube example (e.g. code smell) or are there further questions?
I wanted to discuss how we write the different library names in the documentation, for example upb.crypto.math. I used to write this in bold text, but I found that too distracting. Therefore, I switched over to just regular text which seems consistent with what I see in other docs. I also saw upb.crypto.math
in the 5-minute tutorial, but that obviously suffers the same issue plus I would like to reserve code text for actual code such as method or class names.
More problematic I find is the necessity for writing out upb.crypto.math each time. It disrupts the readers flow a bit. Sadly, math is such a generic name that I would not just call it Math instead. We could, however, only write out upb.crypto.math on first use on each page, and then use a shortened name such as Math instead (although this may actually may be more confusing than just using Math immediately since it suggests we mean different things?). Or, if we finally find a name for our whole library collection, we could prefix Math with that name, for example "Craco.Math" which is a tad bit nicer.
Just want to make sure we are on the same page in this regard so we are using matching styles when writing the docs.
It seems like the representation page in the docs could use some improvements.
What I think could be improved:
ReprUtil
since a few classes still use thatI'd suggest the following:
computeSync()
. Instead, tell them to do a complete x.getRepresentation(); send(); x = fromRepresentation()
cycle, simulating a real application.A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.