Typesetting

* Fixed sentence spacing and paragraph alignment following conversion
  from reST format.
This commit is contained in:
Ben McGinnes 2015-06-27 03:27:10 +10:00
parent 434dd67170
commit bd91d40ba5
2 changed files with 59 additions and 58 deletions

View File

@ -7,27 +7,27 @@
*1. Why implement an interactive codebase?* *1. Why implement an interactive codebase?*
For good or ill, modern application development has turned to many web For good or ill, modern application development has turned to many web
based technologies. As a result there are many more developers who no based technologies. As a result there are many more developers who no
longer use or know languages like C. Consequently complete APIs like longer use or know languages like C. Consequently complete APIs like
GPGME are not available to them when they may very well need it or GPGME are not available to them when they may very well need it or
benefit greatly from it. Rather than continuing existing systems which benefit greatly from it. Rather than continuing existing systems which
utilise wrappers calling command line programs (e.g. [[https://bitbucket.org/vinay.sajip/python-gnupg][python-gnupg]]), it utilise wrappers calling command line programs (e.g. [[https://bitbucket.org/vinay.sajip/python-gnupg][python-gnupg]]), it
is best to provide access to GPGME in a manner which can be safely is best to provide access to GPGME in a manner which can be safely
used by newer developers. used by newer developers.
*2. Won't that create bottlenecks or performance issues?* *2. Won't that create bottlenecks or performance issues?*
It might, but chances are these will be negligible for most It might, but chances are these will be negligible for most
implementations. Projects which truly needs greater optimisation should implementations. Projects which truly needs greater optimisation
consider utilising the GPGME C code directly. should consider utilising the GPGME C code directly.
*3. I want (or need) to use a proprietary licence with my project, can I *3. I want (or need) to use a proprietary licence with my project, can I
use this?* use this?*
Yes, when interacting with GPyGME as a stand alone API it is much the Yes, when interacting with GPyGME as a stand alone API it is much the
same as using any external API. That is, your code is simply same as using any external API. That is, your code is simply
communicating with another system and not integrating that system into communicating with another system and not integrating that system into
your own code. Only when implementing your project in Python and your own code. Only when implementing your project in Python and
importing the API as a module or library would your code then become importing the API as a module or library would your code then become
subject to the LGPL 2.1+ (which might be fine anyway, consult with a subject to the LGPL 2.1+ (which might be fine anyway, consult with a
lawyer for issues pertaining to your specific situation). lawyer for issues pertaining to your specific situation).
@ -38,19 +38,19 @@ lawyer for issues pertaining to your specific situation).
problems with ITAR and the Wassenaar Arrangement?* problems with ITAR and the Wassenaar Arrangement?*
I'm not developing a cryptosystem or any encryption algorithms, I'm I'm not developing a cryptosystem or any encryption algorithms, I'm
developing an API. So I should not be affected one way or the other by developing an API. So I should not be affected one way or the other
the provisions of the [[http://www.austlii.edu.au/au/legis/cth/num_act/dtca2012207/][Defence Trade Control Act 2012]] (DTCA), by the provisions of the [[http://www.austlii.edu.au/au/legis/cth/num_act/dtca2012207/][Defence Trade Control Act 2012]] (DTCA),
particularly with the 2015 amendments which have been passed by the particularly with the 2015 amendments which have been passed by the
Australian Parliament. Australian Parliament.
*2. What if you're wrong about that?* *2. What if you're wrong about that?*
That seems somewhat unlikely. The DSGL explicitly cites cryptography That seems somewhat unlikely. The DSGL explicitly cites cryptography
and encryption software as being in Part 2 of the [[http://www.austlii.edu.au/au/legis/cth/num_act/dtca2012207/s4.html#defense_trade_cooperation_munitions_list][Defence Trade and encryption software as being in Part 2 of the [[http://www.austlii.edu.au/au/legis/cth/num_act/dtca2012207/s4.html#defense_trade_cooperation_munitions_list][Defence Trade
Cooperation Munitions List]], but neither GPGME nor GPyGME are Cooperation Munitions List]], but neither GPGME nor GPyGME are
encryption software directly. Even GPGME simply provides a means of encryption software directly. Even GPGME simply provides a means of
accessing what it refers to as encryption engines; currently the accessing what it refers to as encryption engines; currently the
engines it supports are GnuPG and GpgSM. As long as I do not develop engines it supports are GnuPG and GpgSM. As long as I do not develop
any of these encryption engines my work is not affected by the any of these encryption engines my work is not affected by the
provisions of Australia's export controls, no matter how backward or provisions of Australia's export controls, no matter how backward or
useless I might consider those controls to be. useless I might consider those controls to be.
@ -63,56 +63,56 @@ naming me and this work as falling under the purview of the DTCA, then
yes; otherwise no. yes; otherwise no.
The only other way it could happen is if the Defence definition of The only other way it could happen is if the Defence definition of
"public domain" changes or if exemptions based on something being in the "public domain" changes or if exemptions based on something being in
public domain are removed. the public domain are removed.
*4. What assurances can you give that this will remain the case and *4. What assurances can you give that this will remain the case and
everything will be fine?* everything will be fine?*
The Department of Defence's [[http://www.defence.gov.au/DECO/Default.asp][Defence Export Control Office]] (DECO) The Department of Defence's [[http://www.defence.gov.au/DECO/Default.asp][Defence Export Control Office]] (DECO)
provides numerous resources to address concerns relating to this type provides numerous resources to address concerns relating to this type
of development. Included in this is the [[https://dsgl.defence.gov.au/pages/home.aspx][Defence and Strategic Goods of development. Included in this is the [[https://dsgl.defence.gov.au/pages/home.aspx][Defence and Strategic Goods
List]] (DSGL) and its accompanying [[https://dsgl.defence.gov.au/pages/questionnaire.aspx][Activity Questionnaire]] and [[https://dsgl.defence.gov.au/pages/search.aspx][Online List]] (DSGL) and its accompanying [[https://dsgl.defence.gov.au/pages/questionnaire.aspx][Activity Questionnaire]] and [[https://dsgl.defence.gov.au/pages/search.aspx][Online
DSGL Search Tool]]. DSGL Search Tool]].
I completed the questionaire using the following conservative I completed the questionaire using the following conservative
assumptions: that this work is either or both of supply and publishing assumptions: that this work is either or both of supply and publishing
of software and technology; and that the entire project really is in of software and technology; and that the entire project really is in
the category of Part 2 of the DSGL as a dual-use technology. Even the category of Part 2 of the DSGL as a dual-use technology. Even
though I am still pretty sure that only GPG itself and GpgSM would be though I am still pretty sure that only GPG itself and GpgSM would be
placed in that category. Maybe libassuan, dirmngr and pinentry would placed in that category. Maybe libassuan, dirmngr and pinentry would
too. Still, assuming that it all did, including GPGME and GPyGME, the too. Still, assuming that it all did, including GPGME and GPyGME, the
results are clear that both supply and publication are fine. The results are clear that both supply and publication are fine. The
[[http://dfat.gov.au/international-relations/security/sanctions/sanctions-regimes/Pages/sanctions-regimes.aspx][definitions of supply and publishing]], however, indicate that this work [[http://dfat.gov.au/international-relations/security/sanctions/sanctions-regimes/Pages/sanctions-regimes.aspx][definitions of supply and publishing]], however, indicate that this work
would likely only ever be considered publishing. would likely only ever be considered publishing.
The reason for this is that all the existing software on which this work The reason for this is that all the existing software on which this
is built is what Defence classifies as being in the public domain. In work is built is what Defence classifies as being in the public
this context that is not the same as the term is used for copyright and domain. In this context that is not the same as the term is used for
licensing, it means that the software and information is already freely copyright and licensing, it means that the software and information is
available to anyone. Thus it would be the same for all or almost all already freely available to anyone. Thus it would be the same for all
free (libre) and open source software. or almost all free (libre) and open source software.
Only Australian cryptographers developing entirely new encryption Only Australian cryptographers developing entirely new encryption
algortithms are likely to be directly impacted by the provisions of the algortithms are likely to be directly impacted by the provisions of
DCTA. I am very much /not/ in that category. Furthermore, any algorithm the DCTA. I am very much /not/ in that category. Furthermore, any
added to the specifications for GPG would need to pass through an algorithm added to the specifications for GPG would need to pass
international selection process anyway, by which stage it would be through an international selection process anyway, by which stage it
exempt from these types of restrictions because it would already be in would be exempt from these types of restrictions because it would
the public domain as far as Australia's Department of Defence is already be in the public domain as far as Australia's Department of
concerned. Defence is concerned.
The results of my completed questionnaire are available [[Australian_DCTA_export_DECO_Questionnaire_Results.pdf][here]] (PDF) and The results of my completed questionnaire are available [[Australian_DCTA_export_DECO_Questionnaire_Results.pdf][here]] (PDF) and
a GPG signature of the file is [[Australian_DCTA_export_DECO_Questionnaire_Results.pdf.sig][here]]. The file is signed with my key a GPG signature of the file is [[Australian_DCTA_export_DECO_Questionnaire_Results.pdf.sig][here]]. The file is signed with my key
(ID 0x321E4E2373590E5D). (ID 0x321E4E2373590E5D).
With regards to current sanctions by Australia against any entity as With regards to current sanctions by Australia against any entity as
referenced in that document and available [[http://dfat.gov.au/international-relations/security/sanctions/pages/sanctions.aspx][here]], my method of referenced in that document and available [[http://dfat.gov.au/international-relations/security/sanctions/pages/sanctions.aspx][here]], my method of
publication consists of uploading information to the GPG git server in publication consists of uploading information to the GPG git server in
Germany. Germany is not currently a sanctioned country by Australia, Germany. Germany is not currently a sanctioned country by Australia,
nor are any of the involved companies sanctioned separately. In fact, nor are any of the involved companies sanctioned separately. In fact,
the only reference to Germany on Australia's list of sanctioned the only reference to Germany on Australia's list of sanctioned
entities pertains to a number of individuals, mostly members of entities pertains to a number of individuals, mostly members of
Al-Qaeda, currently serving time in German prisons or having been Al-Qaeda, currently serving time in German prisons or having been
deported from Germany. Additional details on those sanctions can be deported from Germany. Additional details on those sanctions can be
found [[http://dfat.gov.au/international-relations/security/sanctions/Pages/consolidated-list.aspx][here]] and [[http://dfat.gov.au/international-relations/security/sanctions/sanctions-regimes/Pages/sanctions-regimes.aspx][here]]. found [[http://dfat.gov.au/international-relations/security/sanctions/Pages/consolidated-list.aspx][here]] and [[http://dfat.gov.au/international-relations/security/sanctions/sanctions-regimes/Pages/sanctions-regimes.aspx][here]].

View File

@ -3,41 +3,42 @@
** Project Goal ** Project Goal
Intended as both a replacement of the older PyME bindings for Python 2 Intended as both a replacement of the older PyME bindings for Python 2
and Python 3, though it will only be implemented in Python 3. Some and Python 3, though it will only be implemented in Python 3. Some
effort may be made to allow it to work as a module or series of modules effort may be made to allow it to work as a module or series of
in Python 2, but there are no guarantees. modules in Python 2, but there are no guarantees.
GPyGME is intended to be the official API for third party (i.e. non-C) GPyGME is intended to be the official API for third party (i.e.
languages and bindings. While it should be able to be imported into any non-C) languages and bindings. While it should be able to be imported
Python 3 code as a normal Python module or library, this is not the into any Python 3 code as a normal Python module or library, this is
principal goal. The real value is in providing an API for everyone by not the principal goal. The real value is in providing an API for
providing a pseudo-REST style API. It is not actually a REST API because everyone by providing a pseudo-REST style API. It is not actually a
it is not purely web-based, though could be implemented that way (and REST API because it is not purely web-based, though could be
almost certainly will be by many). implemented that way (and almost certainly will be by many).
GPyGME will accept and respond with JSON data types to provide a method GPyGME will accept and respond with JSON data types to provide a
of interaction with GPGME with which most, if not all, modern method of interaction with GPGME with which most, if not all, modern
application developers are familiar. Consequently the bindings ought to application developers are familiar. Consequently the bindings ought
be usable by anyone for any purpose for which GPGME could meet the need. to be usable by anyone for any purpose for which GPGME could meet the
need.
** Project Name ** Project Name
GPyGME, with the first "G" being silent is pronounced the same way as GPyGME, with the first "G" being silent is pronounced the same way as
[[https://en.wikipedia.org/wiki/Pygmy_peoples][pygme]]. It could be thought of as a diminutive form of GPGME with the [[https://en.wikipedia.org/wiki/Pygmy_peoples][pygme]]. It could be thought of as a diminutive form of GPGME with the
ability to unlock just as much power. ability to unlock just as much power.
** Licensing ** Licensing
GPyGME utilises the LGPL 2.1+ license, the same as GPGME itself. As it GPyGME utilises the LGPL 2.1+ license, the same as GPGME itself. As
is built on GPGME this is a requirement. Documentation will be covered it is built on GPGME this is a requirement. Documentation will be
by both the GPLv3+ as with the GPGME documentation and a Creative covered by both the GPLv3+ as with the GPGME documentation and a
Commons license. Creative Commons license.
Note that interacting with the GPyGME API as a stand alone interface Note that interacting with the GPyGME API as a stand alone interface
(i.e. sending and receiving JSON data to it via a socket, command or (i.e. sending and receiving JSON data to it via a socket, command or
other connection type) does not require conforming with either the GPL other connection type) does not require conforming with either the GPL
or LGPL licenses. Only when importing or integrating this code into your or LGPL licenses. Only when importing or integrating this code into
own application does that become a requirement. your own application does that become a requirement.
** Feedback ** Feedback