Typesetting
* Fixed sentence spacing and paragraph alignment following conversion from reST format.
This commit is contained in:
parent
434dd67170
commit
bd91d40ba5
@ -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]].
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user