| ||||||||||||||||||||
Frequently Asked Questions
[MISC]
1. Which is the current version of OpenSSL?The current version is available from http://www.openssl.org. In addition to the current stable release, you can also access daily snapshots of the OpenSSL development version at ftp://ftp.openssl.org/snapshot/, or get it by anonymous Git access.
2. Where is the documentation?OpenSSL is a library that provides cryptographic functionality to applications such as secure web servers. Be sure to read the documentation of the application you want to use. The INSTALL file explains how to install this library. OpenSSL includes a command line utility that can be used to perform a variety of cryptographic functions. It is described in the openssl(1) manpage. Documentation for developers is currently being written. Many manual pages are available; overviews over libcrypto and libssl are given in the crypto(3) and ssl(3) manpages. The OpenSSL manpages are installed in /usr/local/ssl/man/ (or a different directory if you specified one as described in INSTALL). In addition, you can read the most current versions at http://www.openssl.org/docs/. Note that the online documents refer to the very latest development versions of OpenSSL and may include features not present in released versions. If in doubt refer to the documentation that came with the version of OpenSSL you are using. The pod format documentation is included in each OpenSSL distribution under the docs directory. There is some documentation about certificate extensions and PKCS#12 in doc/openssl.txt The original SSLeay documentation is included in OpenSSL as doc/ssleay.txt. It may be useful when none of the other resources help, but please note that it reflects the obsolete version SSLeay 0.6.6.
3. How can I contact the OpenSSL developers?The README file describes how to submit bug reports and patches to OpenSSL. Information on the OpenSSL mailing lists is available from http://www.openssl.org.
4. Where can I get a compiled version of OpenSSL?You can finder pointers to binary distributions in http://www.openssl.org/related/binaries.html . Some applications that use OpenSSL are distributed in binary form. When using such an application, you don't need to install OpenSSL yourself; the application will include the required parts (e.g. DLLs). If you want to build OpenSSL on a Windows system and you don't have a C compiler, read the "Mingw32" section of INSTALL.W32 for information on how to obtain and install the free GNU C compiler. A number of Linux and *BSD distributions include OpenSSL.
5. Why aren't tools like 'autoconf' and 'libtool' used?autoconf will probably be used in future OpenSSL versions. If it was less Unix-centric, it might have been used much earlier.
6. What is an 'engine' version?With version 0.9.6 OpenSSL was extended to interface to external crypto hardware. This was realized in a special release '0.9.6-engine'. With version 0.9.7 the changes were merged into the main development line, so that the special release is no longer necessary.
7. How do I check the authenticity of the OpenSSL distribution?We provide MD5 digests and ASC signatures of each tarball. Use MD5 to check that a tarball from a mirror site is identical: md5sum TARBALL | awk '{print $1;}' | cmp - TARBALL.md5You can check authenticity using pgp or gpg. You need the OpenSSL team member public key used to sign it (download it from a key server, see a list of keys at http://www.openssl.org/about/). Then just do: pgp TARBALL.ascAfter the release of OpenSSL 1.0.0 the versioning scheme changed. Letter releases (e.g. 1.0.1a) can only contain bug and security fixes and no new features. Minor releases change the last number (e.g. 1.0.2) and can contain new features that retain binary compatibility. Changes to the middle number are considered major releases and neither source nor binary compatibility is guaranteed. Therefore the answer to the common question "when will feature X be backported to OpenSSL 1.0.0/0.9.8?" is "never" but it could appear in the next minor release.
9. What happens when the letter release reaches z?It was decided after the release of OpenSSL 0.9.8y the next version should be 0.9.8za then 0.9.8zb and so on. [LEGAL]
1. Do I need patent licenses to use OpenSSL?For information on intellectual property rights, please consult a lawyer. The OpenSSL team does not offer legal advice. You can configure OpenSSL so as not to use IDEA, MDC2 and RC5 by using ./config no-idea no-mdc2 no-rc5On many systems including the major Linux and BSD distributions, yes (the GPL does not place restrictions on using libraries that are part of the normal operating system distribution). On other systems, the situation is less clear. Some GPL software copyright holders claim that you infringe on their rights if you use OpenSSL with their software on operating systems that don't normally include OpenSSL. If you develop open source software that uses OpenSSL, you may find it useful to choose an other license than the GPL, or state explicitly that "This program is released under the GPL with the additional exemption that compiling, linking, and/or using OpenSSL is allowed." If you are using GPL software developed by others, you may want to ask the copyright holder for permission to use their software with OpenSSL. [USER]
1. Why do I get a "PRNG not seeded" error message?Cryptographic software needs a source of unpredictable data to work correctly. Many open source operating systems provide a "randomness device" (/dev/urandom or /dev/random) that serves this purpose. All OpenSSL versions try to use /dev/urandom by default; starting with version 0.9.7, OpenSSL also tries /dev/random if /dev/urandom is not available. On other systems, applications have to call the RAND_add() or RAND_seed() function with appropriate data before generating keys or performing public key encryption. (These functions initialize the pseudo-random number generator, PRNG.) Some broken applications do not do this. As of version 0.9.5, the OpenSSL functions that need randomness report an error if the random number generator has not been seeded with at least 128 bits of randomness. If this error occurs and is not discussed in the documentation of the application you are using, please contact the author of that application; it is likely that it never worked correctly. OpenSSL 0.9.5 and later make the error visible by refusing to perform potentially insecure encryption. If you are using Solaris 8, you can add /dev/urandom and /dev/random devices by installing patch 112438 (Sparc) or 112439 (x86), which are available via the Patchfinder at http://sunsolve.sun.com (Solaris 9 includes these devices by default). For /dev/random support for earlier Solaris versions, see Sun's statement at http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsrdb/27606&zone_32=SUNWski (the SUNWski package is available in patch 105710). On systems without /dev/urandom and /dev/random, it is a good idea to use the Entropy Gathering Demon (EGD); see the RAND_egd() manpage for details. Starting with version 0.9.7, OpenSSL will automatically look for an EGD socket at /var/run/egd-pool, /dev/egd-pool, /etc/egd-pool and /etc/entropy. Most components of the openssl command line utility automatically try to seed the random number generator from a file. The name of the default seeding file is determined as follows: If environment variable RANDFILE is set, then it names the seeding file. Otherwise if environment variable HOME is set, then the seeding file is $HOME/.rnd. If neither RANDFILE nor HOME is set, versions up to OpenSSL 0.9.6 will use file .rnd in the current directory while OpenSSL 0.9.6a uses no default seeding file at all. OpenSSL 0.9.6b and later will behave similarly to 0.9.6a, but will use a default of "C:\" for HOME on Windows systems if the environment variable has not been set. If the default seeding file does not exist or is too short, the "PRNG not seeded" error message may occur. The openssl command line utility will write back a new state to the default seeding file (and create this file if necessary) unless there was no sufficient seeding. Pointing $RANDFILE to an Entropy Gathering Daemon socket does not work. Use the "-rand" option of the OpenSSL command line tools instead. The $RANDFILE environment variable and $HOME/.rnd are only used by the OpenSSL command line tools. Applications using the OpenSSL library provide their own configuration options to specify the entropy source, please check out the documentation coming the with application.
2. Why do I get an "unable to write 'random state'" error message?Sometimes the openssl command line utility does not abort with a "PRNG not seeded" error message, but complains that it is "unable to write 'random state'". This message refers to the default seeding file (see previous answer). A possible reason is that no default filename is known because neither RANDFILE nor HOME is set. (Versions up to 0.9.6 used file ".rnd" in the current directory in this case, but this has changed with 0.9.6a.)
3. How do I create certificates or certificate requests?Check out the CA.pl(1) manual page. This provides a simple wrapper round the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check out the manual pages for the individual utilities and the certificate extensions documentation (in ca(1), req(1), x509v3_config(5) )
4. Why can't I create certificate requests?You typically get the error: unable to find 'distinguished_name' in config problems making Certificate Request This is because it can't find the configuration file. Check out the DIAGNOSTICS section of req(1) for more information.
5. Why does <SSL program> fail with a certificate verify error?This problem is usually indicated by log messages saying something like "unable to get local issuer certificate" or "self signed certificate". When a certificate is verified its root CA must be "trusted" by OpenSSL this typically means that the CA certificate must be placed in a directory or file and the relevant program configured to read it. The OpenSSL program 'verify' behaves in a similar way and issues similar error messages: check the verify(1) program manual page for more information.
6. Why can I only use weak ciphers when I connect to a server using OpenSSL?This is almost certainly because you are using an old "export grade" browser which only supports weak encryption. Upgrade your browser to support 128 bit ciphers.
7. How can I create DSA certificates?Check the CA.pl(1) manual page for a DSA certificate example.
8. Why can't I make an SSL connection to a server using a DSA certificate?Typically you'll see a message saying there are no shared ciphers when the same setup works fine with an RSA certificate. There are two possible causes. The client may not support connections to DSA servers most web browsers (including Netscape and MSIE) only support connections to servers supporting RSA cipher suites. The other cause is that a set of DH parameters has not been supplied to the server. DH parameters can be created with the dhparam(1) command and loaded using the SSL_CTX_set_tmp_dh() for example: check the source to s_server in apps/s_server.c for an example.
9. How can I remove the passphrase on a private key?Firstly you should be really *really* sure you want to do this. Leaving a private key unencrypted is a major security risk. If you decide that you do have to do this check the EXAMPLES sections of the rsa(1) and dsa(1) manual pages.
10. Why can't I use OpenSSL certificates with SSL client authentication?What will typically happen is that when a server requests authentication it will either not include your certificate or tell you that you have no client certificates (Netscape) or present you with an empty list box (MSIE). The reason for this is that when a server requests a client certificate it includes a list of CAs names which it will accept. Browsers will only let you select certificates from the list on the grounds that there is little point presenting a certificate which the server will reject. The solution is to add the relevant CA certificate to your servers "trusted CA list". How you do this depends on the server software in uses. You can print out the servers list of acceptable CAs using the OpenSSL s_client tool: openssl s_client -connect www.some.host:443 -prexit If your server only requests certificates on certain URLs then you may need to manually issue an HTTP GET command to get the list when s_client connects: GET /some/page/needing/a/certificate.html If your CA does not appear in the list then this confirms the problem.
11. Why does my browser give a warning about a mismatched hostname?Browsers expect the server's hostname to match the value in the commonName (CN) field of the certificate. If it does not then you get a warning.
12. How do I install a CA certificate into a browser?The usual way is to send the DER encoded certificate to the browser as MIME type application/x-x509-ca-cert, for example by clicking on an appropriate link. On MSIE certain extensions such as .der or .cacert may also work, or you can import the certificate using the certificate import wizard. You can convert a certificate to DER form using the command: openssl x509 -in ca.pem -outform DER -out ca.der Occasionally someone suggests using a command such as: openssl pkcs12 -export -out cacert.p12 -in cacert.pem -inkey cakey.pem DO NOT DO THIS! This command will give away your CAs private key and reduces its security to zero: allowing anyone to forge certificates in whatever name they choose.
13. Why is OpenSSL x509 DN output not conformant to RFC2253?The ways to print out the oneline format of the DN (Distinguished Name) have been extended in version 0.9.7 of OpenSSL. Using the new X509_NAME_print_ex() interface, the "-nameopt" option could be introduded. See the manual page of the "openssl x509" command line tool for details. The old behaviour has however been left as default for the sake of compatibility.
14. What is a "128 bit certificate"? Can I create one with OpenSSL?The term "128 bit certificate" is a highly misleading marketing term. It does *not* refer to the size of the public key in the certificate! A certificate containing a 128 bit RSA key would have negligible security. There were various other names such as "magic certificates", "SGC certificates", "step up certificates" etc. You can't generally create such a certificate using OpenSSL but there is no need to any more. Nowadays web browsers using unrestricted strong encryption are generally available. When there were tight restrictions on the export of strong encryption software from the US only weak encryption algorithms could be freely exported (initially 40 bit and then 56 bit). It was widely recognised that this was inadequate. A relaxation of the rules allowed the use of strong encryption but only to an authorised server. Two slightly different techniques were developed to support this, one used by Netscape was called "step up", the other used by MSIE was called "Server Gated Cryptography" (SGC). When a browser initially connected to a server it would check to see if the certificate contained certain extensions and was issued by an authorised authority. If these test succeeded it would reconnect using strong encryption. Only certain (initially one) certificate authorities could issue the certificates and they generally cost more than ordinary certificates. Although OpenSSL can create certificates containing the appropriate extensions the certificate would not come from a permitted authority and so would not be recognized. The export laws were later changed to allow almost unrestricted use of strong encryption so these certificates are now obsolete.
15. Why does OpenSSL set the authority key identifier (AKID) extension incorrectly?It doesn't: this extension is often the cause of confusion. Consider a certificate chain A->B->C so that A signs B and B signs C. Suppose certificate C contains AKID. The purpose of this extension is to identify the authority certificate B. This can be done either by including the subject key identifier of B or its issuer name and serial number. In this latter case because it is identifying certifcate B it must contain the issuer name and serial number of B. It is often wrongly assumed that it should contain the subject name of B. If it did this would be redundant information because it would duplicate the issuer name of C.
16. How can I set up a bundle of commercial root CA certificates?The OpenSSL software is shipped without any root CA certificate as the OpenSSL project does not have any policy on including or excluding any specific CA and does not intend to set up such a policy. Deciding about which CAs to support is up to application developers or administrators. Other projects do have other policies so you can for example extract the CA bundle used by Mozilla and/or modssl as described in this article<EMAIL_ADDRESS>1.0.1 is the first release to support TLS 1.2, among other things, this increases the size of the default ClientHello message to more than 255 bytes in length. Some software cannot handle this and hangs. For more details and workarounds see: http://rt.openssl.org/Ticket/Display.html?user=guest&pass=guest&id=2771Maybe the compilation was interrupted, and make doesn't notice that something is missing. Run "make clean; make". If you used ./Configure instead of ./config, make sure that you selected the right target. File formats may differ slightly between OS versions (for example sparcv8/sparcv9, or a.out/elf). In case you get errors about the following symbols, use the config option "no-asm", as described in INSTALL: BF_cbc_encrypt, BF_decrypt, BF_encrypt, CAST_cbc_encrypt, CAST_decrypt, CAST_encrypt, RC4, RC5_32_cbc_encrypt, RC5_32_decrypt, RC5_32_encrypt, bn_add_words, bn_div_words, bn_mul_add_words, bn_mul_comba4, bn_mul_comba8, bn_mul_words, bn_sqr_comba4, bn_sqr_comba8, bn_sqr_words, bn_sub_words, des_decrypt3, des_ede3_cbc_encrypt, des_encrypt, des_encrypt2, des_encrypt3, des_ncbc_encrypt, md5_block_asm_host_order, sha1_block_asm_data_orderIf none of these helps, you may want to try using the current snapshot. If the problem persists, please submit a bug report.
2. Why does the OpenSSL test fail with "bc: command not found"?You didn't install "bc", the Unix calculator. If you want to run the tests, get GNU bc from ftp://ftp.gnu.org or from your OS distributor.
3. Why does the OpenSSL test fail with "bc: 1 no implemented"?On some SCO installations or versions, bc has a bug that gets triggered when you run the test suite (using "make test"). The message returned is "bc: 1 not implemented". The best way to deal with this is to find another implementation of bc and compile/install it. GNU bc (see http://www.gnu.org/software/software.html for download instructions) can be safely used, for example.
4. Why does the OpenSSL test fail with "bc: stack empty"?On some DG/ux versions, bc seems to have a too small stack for calculations that the OpenSSL bntest throws at it. This gets triggered when you run the test suite (using "make test"). The message returned is "bc: stack empty". The best way to deal with this is to find another implementation of bc and compile/install it. GNU bc (see http://www.gnu.org/software/software.html for download instructions) can be safely used, for example.
5. Why does the OpenSSL compilation fail on Alpha Tru64 Unix?On some Alpha installations running Tru64 Unix and Compaq C, the compilation of crypto/sha/sha_dgst.c fails with the message 'Fatal: Insufficient virtual memory to continue compilation.' As far as the tests have shown, this may be a compiler bug. What happens is that it eats up a lot of resident memory to build something, probably a table. The problem is clearly in the optimization code, because if one eliminates optimization completely (-O0), the compilation goes through (and the compiler consumes about 2MB of resident memory instead of 240MB or whatever one's limit is currently). There are three options to solve this problem: 1. set your current data segment size soft limit higher. Experience shows that about 241000 kbytes seems to be enough on an AlphaServer DS10. You do this with the command 'ulimit -Sd nnnnnn', where 'nnnnnn' is the number of kbytes to set the limit to. 2. If you have a hard limit that is lower than what you need and you can't get it changed, you can compile all of OpenSSL with -O0 as optimization level. This is however not a very nice thing to do for those who expect to get the best result from OpenSSL. A bit more complicated solution is the following:
This will only compile sha_dgst.c with -O0, the rest with the optimization level chosen by the configuration process. When the above is done, do the test and installation and you're set. 3. Reconfigure the toolkit with no-sha0 option to leave out SHA0. It should not be used and is not used in SSL/TLS nor any other recognized protocol in either case.
6. Why does the OpenSSL compilation fail with "ar: command not found"?Getting this message is quite usual on Solaris 2, because Sun has hidden away 'ar' and other development commands in directories that aren't in $PATH by default. One of those directories is '/usr/ccs/bin'. The quickest way to fix this is to do the following (it assumes you use sh or any sh-compatible shell):
and then redo the compilation. What you should really do is make sure '/usr/ccs/bin' is permanently in your $PATH, for example through your '.profile' (again, assuming you use a sh-compatible shell).
7. Why does the OpenSSL compilation fail on Win32 with VC++?Sometimes, you may get reports from VC++ command line (cl) that it can't find standard include files like stdio.h and other weirdnesses. One possible cause is that the environment isn't correctly set up. To solve that problem for VC++ versions up to 6, one should run VCVARS32.BAT which is found in the 'bin' subdirectory of the VC++ installation directory (somewhere under 'Program Files'). For VC++ version 7 (and up?), which is also called VS.NET, the file is called VSVARS32.BAT instead. This needs to be done prior to running NMAKE, and the changes are only valid for the current DOS session.
8. What is special about OpenSSL on Redhat?Red Hat Linux (release 7.0 and later) include a preinstalled limited version of OpenSSL. Red Hat has chosen to disable support for IDEA, RC5 and MDC2 in this version. The same may apply to other Linux distributions. Users may therefore wish to install more or all of the features left out. To do this you MUST ensure that you do not overwrite the openssl that is in /usr/bin on your Red Hat machine. Several packages depend on this file, including sendmail and ssh. /usr/local/bin is a good alternative choice. The libraries that come with Red Hat 7.0 onwards have different names and so are not affected. (eg For Red Hat 7.2 they are /lib/libssl.so.0.9.6b and /lib/libcrypto.so.0.9.6b with symlinks /lib/libssl.so.2 and /lib/libcrypto.so.2 respectively). Please note that we have been advised by Red Hat attempting to recompile the openssl rpm with all the cryptography enabled will not work. All other packages depend on the original Red Hat supplied openssl package. It is also worth noting that due to the way Red Hat supplies its packages, updates to openssl on each distribution never change the package version, only the build number. For example, on Red Hat 7.1, the latest openssl package has version number 0.9.6 and build number 9 even though it contains all the relevant updates in packages up to and including 0.9.6b. A possible way around this is to persuade Red Hat to produce a non-US version of Red Hat Linux.
9. Why does the OpenSSL compilation fail on MacOS X?If the failure happens when trying to build the "openssl" binary, with a large number of undefined symbols, it's very probable that you have OpenSSL 0.9.6b delivered with the operating system (you can find out by running '/usr/bin/openssl version') and that you were trying to build OpenSSL 0.9.7 or newer. The problem is that the loader ('ld') in MacOS X has a misfeature that's quite difficult to go around. Look in the file PROBLEMS for a more detailed explanation and for possible solutions.
10. Why does the OpenSSL test suite fail on MacOS X?If the failure happens when running 'make test' and the RC4 test fails, it's very probable that you have OpenSSL 0.9.6b delivered with the operating system (you can find out by running '/usr/bin/openssl version') and that you were trying to build OpenSSL 0.9.6d. The problem is that the loader ('ld') in MacOS X has a misfeature that's quite difficult to go around and has linked the programs "openssl" and the test programs with /usr/lib/libcrypto.dylib and /usr/lib/libssl.dylib instead of the libraries you just built. Look in the file PROBLEMS for a more detailed explanation and for possible solutions.
11. Why does the OpenSSL test suite fail in BN_sqr test [on a 64-bit platform]?Failure in BN_sqr test is most likely caused by a failure to configure the toolkit for current platform or lack of support for the platform in question. Run './config -t' and './apps/openssl version -p'. Do these platform identifiers match? If they don't, then you most likely failed to run ./config and you're hereby advised to do so before filing a bug report. If ./config itself fails to run, then it's most likely problem with your local environment and you should turn to your system administrator (or similar). If identifiers match (and/or no alternative identifier is suggested by ./config script), then the platform is unsupported. There might or might not be a workaround. Most notably on SPARC64 platforms with GNU C compiler you should be able to produce a working build by running './config -m32'. I understand that -m32 might not be what you want/need, but the build should be operational. For further details turn to<EMAIL_ADDRESS>12. Why does OpenBSD-i386 build fail on des-586.s with "Unimplemented segment type"?As of 0.9.7 assembler routines were overhauled for position independence of the machine code, which is essential for shared library support. For some reason OpenBSD is equipped with an out-of-date GNU assembler which finds the new code offensive. To work around the problem, configure with no-asm (and sacrifice a great deal of performance) or patch your assembler according to http://www.openssl.org/~appro/gas-1.92.3.OpenBSD.patch. For your convenience a pre-compiled replacement binary is provided at http://www.openssl.org/~appro/gas-1.92.3.static.aout.bin. Reportedly elder *BSD a.out platforms also suffer from this problem and remedy should be same. Provided binary is statically linked and should be working across wider range of *BSD branches, not just OpenBSD.
13. Why does the OpenSSL test suite fail in sha512t on x86 CPU?If the test program in question fails withs SIGILL, Illegal Instruction exception, then you more than likely to run SSE2-capable CPU, such as Intel P4, under control of kernel which does not support SSE2 instruction extensions. See accompanying INSTALL file and OPENSSL_ia32cap(3) documentation page for further information.
14. Why does compiler fail to compile sha512.c?OpenSSL SHA-512 implementation depends on compiler support for 64-bit integer type. Few elder compilers [ULTRIX cc, SCO compiler to mention a couple] lack support for this and therefore are incapable of compiling the module in question. The recommendation is to disable SHA-512 by adding no-sha512 to ./config [or ./Configure] command line. Another possible alternative might be to switch to GCC.
15. Test suite still fails, what to do?Another common reason for test failures is bugs in the toolchain or run-time environment. Known cases of this are documented in the PROBLEMS file, please review it before you beat the drum. Even if you don't find anything in that file, please do consider the possibility of a compiler bug. Compiler bugs often appear in rather bizarre ways, they never make sense, and tend to emerge when you least expect them. One thing to try is to reduce the level of optimization (such as by editing the CFLAG variable line in the top-level Makefile), and then recompile and re-run the test.
16. I think I've found a bug, what should I do?If you are a new user then it is quite likely you haven't found a bug and something is happening you aren't familiar with. Check this FAQ, the associated documentation and the mailing lists for similar queries. If you are still unsure whether it is a bug or not submit a query to the openssl-users mailing list. If you think you have found a bug based on the output of static analysis tools then please manually check the issue is genuine. Such tools can produce a LOT of false positives.
17. I'm SURE I've found a bug, how do I report it?To avoid duplicated reports check the mailing lists and release notes for the relevant version of OpenSSL to see if the problem has been reported already. Bug reports with no security implications should be sent to the request tracker. This can be done by mailing the report to<EMAIL_ADDRESS>(or its alias <openssl-bugs@openssl.org>), please note that messages sent to the request tracker also appear in the public openssl-dev mailing list. The report should be in plain text. Any patches should be sent as plain text attachments because some mailers corrupt patches sent inline. If your issue affects multiple versions of OpenSSL check any patches apply cleanly and, if possible include patches to each affected version. The report should be given a meaningful subject line briefly summarising the issue. Just "bug in OpenSSL" or "bug in OpenSSL 0.9.8n" is not very helpful. By sending reports to the request tracker the bug can then be given a priority and assigned to the appropriate maintainer. The history of discussions can be accessed and if the issue has been addressed or a reason why not. If patches are only sent to openssl-dev they can be mislaid if a team member has to wade through months of old messages to review the discussion. See also http://www.openssl.org/support/rt.html
18. I've found a security issue, how do I report it?If you think your bug has security implications then please send it to<EMAIL_ADDRESS>if you don't get a prompt reply at least acknowledging receipt then resend or mail it directly to one of the more active team members (e.g. Steve). If you wish to use PGP to send in a report please use one or more of the keys of the team members listed at http://www.openssl.org/about/ Note that bugs only present in the openssl utility are not in general considered to be security issues. [PROG]
1. Is OpenSSL thread-safe?Yes (with limitations: an SSL connection may not concurrently be used by multiple threads). On Windows and many Unix systems, OpenSSL automatically uses the multi-threaded versions of the standard libraries. If your platform is not one of these, consult the INSTALL file. Multi-threaded applications must provide two callback functions to OpenSSL by calling CRYPTO_set_locking_callback() and CRYPTO_set_id_callback(), for all versions of OpenSSL up to and including 0.9.8[abc...]. As of version 1.0.0, CRYPTO_set_id_callback() and associated APIs are deprecated by CRYPTO_THREADID_set_callback() and friends. This is described in the threads(3) manpage.
2. I've compiled a program under Windows and it crashes: why?This is usually because you've missed the comment in INSTALL.W32. Your application must link against the same version of the Win32 C-Runtime against which your openssl libraries were linked. The default version for OpenSSL is /MD - "Multithreaded DLL". If you are using Microsoft Visual C++'s IDE (Visual Studio), in many cases, your new project most likely defaulted to "Debug Singlethreaded" - /ML. This is NOT interchangeable with /MD and your program will crash, typically on the first BIO related read or write operation. For each of the six possible link stage configurations within Win32, your application must link against the same by which OpenSSL was built. If you are using MS Visual C++ (Studio) this can be changed by: 1. Select Settings... from the Project Menu. 2. Select the C/C++ Tab. 3. Select "Code Generation from the "Category" drop down list box 4. Select the Appropriate library (see table below) from the "Use run-time library" drop down list box. Perform this step for both your debug and release versions of your application (look at the top left of the settings panel to change between the two)Note that debug and release libraries are NOT interchangeable. If you built OpenSSL with /MD your application must use /MD and cannot use /MDd. As per 0.9.8 the above limitation is eliminated for .DLLs. OpenSSL .DLLs compiled with some specific run-time option [we insist on the default /MD] can be deployed with application compiled with different option or even different compiler. But there is a catch! Instead of re-compiling OpenSSL toolkit, as you would have to with prior versions, you have to compile small C snippet with compiler and/or options of your choice. The snippet gets installed as <install-root>/include/openssl/applink.c and should be either added to your application project or simply #include-d in one [and only one] of your application source files. Failure to link this shim module into your application manifests itself as fatal "no OPENSSL_Applink" run-time error. An explicit reminder is due that in this situation [mixing compiler options] it is as important to add CRYPTO_malloc_init prior first call to OpenSSL.
3. How do I read or write a DER encoded buffer using the ASN1 functions?You have two options. You can either use a memory BIO in conjunction with the i2d_*_bio() or d2i_*_bio() functions or you can use the i2d_*(), d2i_*() functions directly. Since these are often the cause of grief here are some code fragments using PKCS7 as an example: unsigned char *buf, *p; int len;At this point buf contains the len bytes of the DER encoding of p7. The opposite assumes we already have len bytes in buf: unsigned char *p; p = buf; p7 = d2i_PKCS7(NULL, &p, len);At this point p7 contains a valid PKCS7 structure or NULL if an error occurred. If an error occurred ERR_print_errors(bio) should give more information. The reason for the temporary variable 'p' is that the ASN1 functions increment the passed pointer so it is ready to read or write the next structure. This is often a cause of problems: without the temporary variable the buffer pointer is changed to point just after the data that has been read or written. This may well be uninitialized data and attempts to free the buffer will have unpredictable results because it no longer points to the same address. Memory allocation and encoding can also be combined in a single operation by the ASN1 routines: unsigned char *buf = NULL; /* mandatory */ int len; len = i2d_PKCS7(p7, &buf); if (len < 0)/* Error */ /* Do some things with 'buf' */ /* Finished with buf: free it */ OPENSSL_free(buf);In this special case the "buf" parameter is *not* incremented, it points to the start of the encoding.
4. OpenSSL uses DER but I need BER format: does OpenSSL support BER?The short answer is yes, because DER is a special case of BER and OpenSSL ASN1 decoders can process BER. The longer answer is that ASN1 structures can be encoded in a number of different ways. One set of ways is the Basic Encoding Rules (BER) with various permissible encodings. A restriction of BER is the Distinguished Encoding Rules (DER): these uniquely specify how a given structure is encoded. Therefore, because DER is a special case of BER, DER is an acceptable encoding for BER.
5. I've tried using <M_some_evil_pkcs12_macro> and I get errors why?This usually happens when you try compiling something using the PKCS#12 macros with a C++ compiler. There is hardly ever any need to use the PKCS#12 macros in a program, it is much easier to parse and create PKCS#12 files using the PKCS12_parse() and PKCS12_create() functions documented in doc/openssl.txt and with examples in demos/pkcs12. The 'pkcs12' application has to use the macros because it prints out debugging information.
6. I've called <some function> and it fails, why?Before submitting a report or asking in one of the mailing lists, you should try to determine the cause. In particular, you should call ERR_print_errors() or ERR_print_errors_fp() after the failed call and see if the message helps. Note that the problem may occur earlier than you think -- you should check for errors after every call where it is possible, otherwise the actual problem may be hidden because some OpenSSL functions clear the error state.
7. I just get a load of numbers for the error output, what do they mean?The actual format is described in the ERR_print_errors() manual page. You should call the function ERR_load_crypto_strings() before hand and the message will be output in text form. If you can't do this (for example it is a pre-compiled binary) you can use the errstr utility on the error code itself (the hex digits after the second colon).
8. Why do I get errors about unknown algorithms?The cause is forgetting to load OpenSSL's table of algorithms with OpenSSL_add_all_algorithms(). See the manual page for more information. This can cause several problems such as being unable to read in an encrypted PEM file, unable to decrypt a PKCS#12 file or signature failure when verifying certificates.
9. Why can't the OpenSSH configure script detect OpenSSL?Several reasons for problems with the automatic detection exist. OpenSSH requires at least version 0.9.5a of the OpenSSL libraries. Sometimes the distribution has installed an older version in the system locations that is detected instead of a new one installed. The OpenSSL library might have been compiled for another CPU or another mode (32/64 bits). Permissions might be wrong. The general answer is to check the config.log file generated when running the OpenSSH configure script. It should contain the detailed information on why the OpenSSL library was not detected or considered incompatible.
10. Can I use OpenSSL's SSL library with non-blocking I/O?Yes; make sure to read the SSL_get_error(3) manual page! A pitfall to avoid: Don't assume that SSL_read() will just read from the underlying transport or that SSL_write() will just write to it -- it is also possible that SSL_write() cannot do any useful work until there is data to read, or that SSL_read() cannot do anything until it is possible to send data. One reason for this is that the peer may request a new TLS/SSL handshake at any time during the protocol, requiring a bi-directional message exchange; both SSL_read() and SSL_write() will try to continue any pending handshake.
11. Why doesn't my server application receive a client certificate?Due to the TLS protocol definition, a client will only send a certificate, if explicitly asked by the server. Use the SSL_VERIFY_PEER flag of the SSL_CTX_set_verify() function to enable the use of client certificates.
12. Why does compilation fail due to an undefined symbol NID_uniqueIdentifier?For OpenSSL 0.9.7 the OID table was extended and corrected. In earlier versions, uniqueIdentifier was incorrectly used for X.509 certificates. The correct name according to RFC2256 (LDAP) is x500UniqueIdentifier. Change your code to use the new name when compiling against OpenSSL 0.9.7.
13. I think I've detected a memory leak, is this a bug?In most cases the cause of an apparent memory leak is an OpenSSL internal table that is allocated when an application starts up. Since such tables do not grow in size over time they are harmless. These internal tables can be freed up when an application closes using various functions. Currently these include following: Thread-local cleanup functions: ERR_remove_state()Application-global cleanup functions that are aware of usage (and therefore thread-safe): ENGINE_cleanup() and CONF_modules_unload()"Brutal" (thread-unsafe) Application-global cleanup functions: ERR_free_strings(), EVP_cleanup() and CRYPTO_cleanup_all_ex_data().When OpenSSL's PRNG routines are called to generate random numbers the supplied buffer contents are mixed into the entropy pool: so it technically does not matter whether the buffer is initialized at this point or not. Valgrind (and other test tools) will complain about this. When using Valgrind, make sure the OpenSSL library has been compiled with the PURIFY macro defined (-DPURIFY) to get rid of these warnings.
15. Why doesn't a memory BIO work when a file does?This can occur in several cases for example reading an S/MIME email message. The reason is that a memory BIO can do one of two things when all the data has been read from it. The default behaviour is to indicate that no more data is available and that the call should be retried, this is to allow the application to fill up the BIO again if necessary. Alternatively it can indicate that no more data is available and that EOF has been reached. If a memory BIO is to behave in the same way as a file this second behaviour is needed. This must be done by calling: BIO_set_mem_eof_return(bio, 0);See the manual pages for more details.
16. Where are the declarations and implementations of d2i_X509() etc?These are defined and implemented by macros of the form: DECLARE_ASN1_FUNCTIONS(X509) and IMPLEMENT_ASN1_FUNCTIONS(X509)The implementation passes an ASN1 "template" defining the structure into an ASN1 interpreter using generalised functions such as ASN1_item_d2i().
17. When debugging I observe SIGILL during OpenSSL initialization: why?OpenSSL adapts to processor it executes on and for this reason has to query its capabilities. Unfortunately on some processors the only way to achieve this for non-privileged code is to attempt instructions that can cause Illegal Instruction exceptions. The initialization procedure is coded to handle these exceptions to manipulate corresponding bits in capabilities vector. This normally appears transparent, except when you execute it under debugger, which stops prior delivering signal to handler. Simply resuming execution does the trick, but when debugging a lot it might feel counterproductive. Two options. Either set explicit capability environment variable in order to bypass the capability query (see corresponding crypto/*cap.c for details). Or configure debugger not to stop upon SIGILL exception, e.g. in gdb case add 'handle SIGILL nostop' to your .gdbinit.
| ||||||||||||||||||||


One of the best places we went to, was the island of Capri, which is located inside the Gulf of Naples in Southern Italy. We took a boat from a city called Sorrento, that took us around the entirety of the island, which was absolutely spectacular. The rock of the island was crazy, forming endless stalacites, and numerous grottos and caves. The island sits in the Tyrrhenian Sea, the water was extremely blue and clear around the island, and was the naturally warmest body of water I have ever swam in. The water felt like a pool, with the exception of the salt. Around the island there was an absoultely astonishing amount of mansions, what a dream that would be.
This part of the trip was truly one of the best, it was an absoulte perfect paradise here, if you get rid of all the tourists that is.


Select the HTML Elements Using 'Data-Mapping-Enabled' Attribute
Detailed information about the following elements will be retrieved and displayed right in the generated PDF:
Visit EVO HTML to PDF Converter Website


The list of results below is server-side paginated...
10"
[totalRecords]="currentPage.totalElements"
(onLazyLoad)="loadPage($event)"
selectionMode="single"
(onRowSelect)="onRowSelect($event)"
[rowsPerPageOptions]="[5,10,20,50,100]"
[responsive]="true">
{{header}} (count: {{currentPage.totalElements}})


In ..., ... launched PyPdf as a ... At the end of 2011, after consultation with ... and others, Phaseit sponsored PyPDF2 as a fork of PyPdf.
[Compare PyPdf and PyPDF2.]
[Explain documentation of PyPDF2.]
Plans for PyPDF2 include:


Package org.apache.sis.xml
Interface NilObject
-
public interface NilObject
A marker interface for nil XML elements providing an explanation about why the information is absent. GeoAPI getter methods usually return anull
value when no information is available for a given attribute. However it is possible to specify why an information is absent, in which case the corresponding getter method will rather return an instance of thisNilObject
interface. The information may be absent for various reasons, including the attribute being inapplicable in the metadata context (NilReason.INAPPLICABLE
), the information probably exists but is unknown to the data provider (UNKNOW
), the information may not exist at all (MISSING
) or can not be divulged (WITHHELD
).Nil objects appear most frequently in XML documents because if a mandatory ISO 19115-1 attribute is absent, then the ISO 19115-3 standard requires us to said why it is absent. The following example shows a
CI_Citation
fragment with an ordinaryCI_Series
element on the left side, and an unknownCI_Series
element on the right side:
If theExample of missing object Normal Series
elementUnknown Series
element<cit:CI_Citation> <cit:series> <cit:CI_Series> <!-- Some content here --> </cit:CI_Series> </cit:series> </cit:CI_Citation>
<cit:CI_Citation> <cit:series nilReason="unknown"/> </cit:CI_Citation>
CI_Series
element was completely omitted, thenCitation.getSeries()
method would returnnull
in Apache SIS implementation. But since anilReason
is provided, then the SIS implementation ofgetSeries()
will rather return an object which implement both theSeries
and theNilObject
interfaces, and thegetNilReason()
method on that instance will return theNilReason.UNKNOWN
constant.InstantiationInstances ofNilObject
are created by first fetching the reason why the information is missing, then invokingNilReason.createNilObject(Class)
. The following example instantiates aCitation
object which is nil because the information are missing:Citation nil = NilReason.MISSING.createNilObject(Citation.class);
- Since:
- 0.3
- See Also:
NilReason.createNilObject(Class)
,Numbers.valueOfNil(Class)
Defined in the
sis-metadata
module
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description NilReason
getNilReason()
Returns the reason why this object contains no information.
-
-
-
Method Detail
-
getNilReason
NilReason getNilReason()
Returns the reason why this object contains no information.- Returns:
- the reason why this object contains no information.
- See Also:
NilReason.forObject(Object)
-
-


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.reverseXSL.transform.TransformerFactory
public final class TransformerFactory
A TransformerFactory is instantiated with a source of transformation meta-data, namely mapping selection meta-data as well as parsing DEFinitions and XSL transformation templates.
The distinction between a TransformerFactory and subsequent Transformer objects follows the classical java pattern.
A factory is instantiated, used to set various parameters, and then used to instantiate Transformer objects. All Transformer objects from the same factory inherit and share meta-data from the factory. The factory can be used to tune parameters that control the behaviour of Transformer objects.
Transformer objects are in turn used to execute message parsings and transformations, with the help of resources and parameters inherited from the factory.
Note that the link between the factory and Transformer objects is never broken in the present design: changes to factory parameters may affect the behaviour of Transformer objects already generated! Yet, proper practice recommends to set all factory features before instantiating the first Transformer, and using it.
Transformer
| Method Summary | |
|---|---|
static TransformerFactory |
newInstance()
Instantiates a Transformer Factory that will load meta-data from the software distribution jar file itself. |
Transformer |
newTransformer()
Instantiate a new Transformer from the factory. |
Transformer |
newTransformer(java.util.jar.JarFile jarFile)
Instantiates a Transformer with meta-data from an explicitly specified jar file. |
Transformer |
newTransformer(java.io.Reader myDefinition,
java.io.Reader myXSLT)
Instantiates a new Transformer instance from the factory, which will bypass the Mapping Selection process. |
void |
setExternalMappingSelectionTable(java.io.Reader r)
Imposes the specified Mapping Selection Table meta-data (full replacement). |
void |
setExternalMappingSelectionTable(java.io.Reader r,
java.lang.String path)
Imposes the specified Mapping Selection Table meta-data (full replacement). |
void |
setInputCharSet(java.nio.charset.Charset charset)
Sets the Charset used for decoding input message bytes into characters, using a java Charset object. |
void |
setInputCharSet(java.lang.String charset)
Sets the Charset used for decoding input message bytes into characters, using a java Charset name. |
void |
setInputDataConversions(int specs)
Sets the conversions to perform on input data at byte or character level before applying transformations in proper. |
void |
setOutputCharSet(java.nio.charset.Charset charset)
Sets the Charset used for encoding output message characters into bytes, using a java Charset object. |
void |
setOutputCharSet(java.lang.String charset)
Sets the Charset used for encoding output message characters into bytes, using a java Charset object. |
void |
setParserExceptionThresholds(int maxFatal,
int maxTotal)
Sets specific Parser tolerance to input message syntax errors. |
void |
setParserRemoveNonRepeatableNilOptionalElements(boolean bool)
Would cause (if set TRUE) to remove from the output XML document all data elements with a NIL value that are optional or conditional elements, and whose matching definition indicates that the element is non repeatable (i.e. |
void |
setPrintableXmlIndent(java.lang.String ptrn)
Sets the pattern of chars that will be repeated at each depth level to indent the printable-XML output. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static final TransformerFactory newInstance()
This variant uses the classloader. It is then able to find all meta-data resources that are placed on the CLASSPATH.
public Transformer newTransformer() throws java.io.IOException, TransformerException
java.io.IOException
TransformerException
public Transformer newTransformer(java.util.jar.JarFile jarFile) throws java.io.IOException, TransformerException
The jar file does not need to be on the CLASSPATH and may contain alternative transformation meta-data sets. The jar must contain a Mapping Selection Table and all other dependent meta-data pieces (Parsing DEFs and XSL templates). The specified jar does not take precedence but replaces entirely the default resources, including the mapping selection table.
The method setExternalMappingSelectionTable(Reader)
still allows
to overrride the mapping selection table (over that which can be on the
CALSSPATH, else within the explicitly specified jar).
jarFile
- a JarFile object containing all meta-data resources
java.io.IOException
TransformerException
public Transformer newTransformer(java.io.Reader myDefinition, java.io.Reader myXSLT) throws java.io.IOException
myDefinition
- a Reader on a DEF file or nullmyXSLT
- a Reader on an XSL file or null
java.io.IOException
- in case of read errors from one of the Reader argumentspublic void setExternalMappingSelectionTable(java.io.Reader r) throws java.io.IOException, TransformerException
The CLASSPATH or a JAR will still be used as source for transformation resources (Parsing DEFs and XSL templates), depending upon the method of creating the Transformer.
r
- A Reader from which the table will be loaded
java.io.IOException
TransformerException
public void setExternalMappingSelectionTable(java.io.Reader r, java.lang.String path) throws java.io.IOException, TransformerException
One can provide an optional path argument that will formally be added to the CLASSPATH for loading resources (Parsing DEFs and XSL templates).
r
- A Reader from which the table will be loadedpath
- if not null or empty, a directory path to be used as root
location for loading associated mapping resources
java.io.IOException
TransformerException
public void setInputCharSet(java.nio.charset.Charset charset)
charset
- a java Charset
or null to reset to default UTF-8setInputCharSet(String)
public void setInputCharSet(java.lang.String charset)
Useful character set names to consider are the legacy 7bit "US-ASCII", 8-bit collections like "ISO-8859-1" (ISO Latin Alphabet No. 1 or 2,3,4..), "EBCDIC-INT", and "EBCDIC-CP-US", multibyte sets like "Shift_JIS", and the now standard Unicode Transformation Formats "UTF-8", or "UTF-16". The full listing is available at the IANA Charset Registry (http://www.iana.org/assignments/character-sets).
charset
- a java Charset
name as String or null to reset to
default UTF-8public void setInputDataConversions(int specs)
specs
- add flag values as defined by Data
constants.Data
public void setOutputCharSet(java.nio.charset.Charset charset)
charset
- a java Charset
or null to reset to default UTF-8setOutputCharSet(String)
public void setOutputCharSet(java.lang.String charset)
Useful character set names to consider are the legacy 7bit "US-ASCII", 8-bit collections like "ISO-8859-1" (ISO Latin Alphabet No. 1 or 2,3,4..), "EBCDIC-INT", and "EBCDIC-CP-US", multibyte sets like "Shift_JIS", and the now standard Unicode Transformation Formats "UTF-8", or "UTF-16". The full listing is available at the IANA Charset Registry (http://www.iana.org/assignments/character-sets).
charset
- a java Charset
name as String or null to reset to
default UTF-8public void setParserExceptionThresholds(int maxFatal, int maxTotal)
maxFatal
- new acceptable count of syntax violations conunted as FatalmaxTotal
- new total acceptable count of syntax violations (all as
warnings, or acceptable fatal + acceptable warnings)public void setParserRemoveNonRepeatableNilOptionalElements(boolean bool)
This function is actually quite useful on messages based on the principle of positional data elements within 'segments' (e.g. EDIFACT, TRADACOMS, X12, etc.). Indeed, most positions (think 'slots') in such segments are occupied by optional/conditional data elements, all unique and distinguished by their relative position in the 'segment'. Every unoccupied position will yield a corresponding NIL data element in XML, that can be suppressed from the XML output if this method is set to TRUE.
NIL data elements are supressed only if they have a min/max size
specification (of the kind [1..15]
) with a minimum of at
least 1. Obviously, if 0 is an acceptable size for the element, there's
no reason to suppress the element.
Moreover, the element must be non-repeatable otherwise there is a risk to eat-up intermediate elements within series, causing undesirable rank shifts.
The default value is TRUE.
bool
- whether or not to Remove non-repeatable NIL optionalspublic void setPrintableXmlIndent(java.lang.String ptrn)
Transformer.printableTransform(InputStream, StringBuffer)
ptrn
- a pattern like " ", or "| " for increased readability
(really cool!).
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Snookes1516.github.io
Create Custom Pre-Algebra, Algebra 1 - Kuta Software. High School Math Tutoring, Homework Pre Algebra Homework Help - Math.com. Online Tutoring Homework Help in Math, Science English. Home - James Madison Middle School. Welcome to The Classroom: A one stop free education resource for primary schools, middle schools, high schools, colleges.
Parents, students and teachers searching for Homework Help found the articles and resources below helpful. Online dissertation help shopping Middle School Algebra Homework Help online book report service i need help on my accounting homework.
MySchoolBucks is a website for parents to pay for their childs school meals using a credit or debit card. With this online service, parents can also view a childs. Homework Help for Middle and High School 5Homework.com. Use Study.com's middle school courses in math, English, social studies, and science to study for tests, improve your grades, and get ahead in school. Our self-paced. Homework Help Courses - Study.com.
Helping Your Child With Homework! 5Homeweork provides Help for Kids with their school homework! Cheap and easy service. WebMath is designed to help you solve your math problems. Composed of forms to fill-in and then returns analysis of a problem and, when possible, provides a step-by. Exclusive homework help delivered by experienced professionals. Affordable and authentic custom written assignments designed for international students. Middle School Math. No Homework F 10/12 – No School – Teacher In-Service. Th 10/11 – Ch 1-2 Study Guide. Pre-Algebra Homework; Algebra Homework;. ClassZone Book Finder. Follow these simple steps to find online resources
WebMath - Solve Your Math Problem. John Winthrop - John Winthrop Middle School. Free math lessons and math homework help from basic math to algebra, geometry and beyond. Students, teachers, parents, and everyone can find solutions to their.
Home to Cresthill Middle School in beautiful Highlands Ranch, Colorado. Go, CMS Cougars.
Welcome to Algebra 1 help from MathHelp.com. Get the exact online tutoring and homework help you need. We offer highly targeted instruction and practice covering. Buy Holt Pre-Algebra: Homework and Practice Workbook on Amazon.com FREE SHIPPING on qualified orders.
Use our collection of homework help courses to complete assignments in any of your classes. Entertaining video lessons covering middle school science, high school. Home - Graham Park Middle School.
Math.com - World of Math Online. Educational Resource Science English Social Studies. Home It appears you don't have cookies enabled on your browser. Cookies are required for using ClassZone.
Pearson Prentice Hall and our other respected imprints provide educational materials, technologies, assessments and related services across the secondary curriculum. We offer math tutoring services for middle school students. We help sixth, seventh, and eighth graders with math lesson problems. Software for math teachers that creates exactly the worksheets you need in a matter of minutes. Try for free. Available for Pre-Algebra, Algebra 1, Geometry, Algebra.
Reedy Creek Magnet Middle School Center for the Digital Sciences; Homework Help. This page is currently Wake County Public School System. 5625 Dillard. Algebra 1 - Online Tutoring and Homework. District Strategies for 2017-2020. All schools and staff will be dedicated to pursuing and implementing the strategies that the strategic planning team identified. We understand how important it is for our customers to get homework help whether it s just that little algebra problem you didn t but never attend art school. Middle school algebra homework. Algebra Homework Help, Algebra Solvers, Free Math Tutors.
School Subjects - Homework Help - KidInfo.com.
Pre-Algebra Homework – Middle School. Saxon Middle School Mathematics Homework Help from MathHelp.com. Over 1000 online math lessons aligned to the Saxon textbooks and featuring a personal math teacher. HippoCampus - Homework and Study Rock Lake Middle School will provide a safe and culturally diverse and supportive environment to promote learning for all students. We will acknowledge their. Middle School Algebra Homework. Homework Help / Middle School Homework.
Warning! This web page may contain links to one or more websites outside the PWCS network, which are not PWCS venues and may not reflect the views or opinions Pre-Algebra, Algebra I, Algebra II, Geometry: homework help by free math tutors, solvers, lessons. Each section has solvers (calculators), lessons, and a place where. Professional Homework Help for International Students. Holt Pre-Algebra: Homework and Practice - amazon.com. Algebra, math homework solvers, Easy, very detailed Voice and Handwriting explanations designed to help middle school and high school math students.
Doing homework in other classes, middle school algebra. How did 96% of our users improve their grades? With Homework Help! From tackling tough homework assignments to studying for a big test or writing an essay. Middle School Courses - Online Classes with Videos Study.com. We offer math tutoring services for high school students. We help students master algebra I, algebra II, geometry, trigonometry, and pre-calculus. Homework Help and Study Skills are two sections on this web site that go hand-in-hand. It is important for a student to be active, not passive. Saxon Middle School Mathematics - Homework Help - MathHelp. Middle School Math Tutoring, Middle School The best multimedia instruction on the web to help you with your homework and study. Homework Help : Preschool and K-12 educational websites, videos, and powerpoints to help you with homework assignments! Make KID INFO your first stop for Homework.
Congratulations to the JMMS Volleyball Team for their winning the RCPS Middle School Championship.


| | |
- __builtin__.object
-
- Query
- atom.client.AtomPubClient(__builtin__.object)
-
- GDClient
- atom.http_core.Uri(__builtin__.object)
-
- GDQuery
- exceptions.Exception(exceptions.BaseException)
-
- Error
-
- ClientLoginTokenMissing
- MissingOAuthParameters
- RequestError
-
- BadAuthentication
- CaptchaChallenge
- ClientLoginFailed
- RedirectError
-
- BadAuthenticationServiceURL
- UnableToUpgradeToken
- Unauthorized
- gdata.service.Error(exceptions.Exception)
-
- AuthorizationRequired
- gdata.service.GDataService(atom.service.AtomService)
-
- GDataClient
class GDClient(atom.client.AtomPubClient) |
| |
Communicates with Google Data servers to perform CRUD operations.
This class is currently experimental and may change in backwards
incompatible ways.
This class exists to simplify the following three areas involved in using
the Google Data APIs.
CRUD Operations:
The client provides a generic 'request' method for making HTTP requests.
There are a number of convenience methods which are built on top of
request, which include get_feed, get_entry, get_next, post, update, and
delete. These methods contact the Google Data servers.
Auth:
Reading user-specific private data requires authorization from the user as
do any changes to user data. An auth_token object can be passed into any
of the HTTP requests to set the Authorization header in the request.
You may also want to set the auth_token member to a an object which can
use modify_request to set the Authorization header in the HTTP request.
If you are authenticating using the email address and password, you can
use the client_login method to obtain an auth token and set the
auth_token member.
If you are using browser redirects, specifically AuthSub, you will want
to use gdata.gauth.AuthSubToken.from_url to obtain the token after the
redirect, and you will probably want to updgrade this since use token
to a multiple use (session) token using the upgrade_token method.
API Versions:
This client is multi-version capable and can be used with Google Data API
version 1 and version 2. The version should be specified by setting the
api_version member to a string, either '1' or '2'. |
| |
- Method resolution order:
- GDClient
- atom.client.AtomPubClient
- __builtin__.object
Methods defined here:
- ClientLogin = client_login(self, email, password, source, service=None, account_type='HOSTED_OR_GOOGLE', auth_url='https://www.google.com/accounts/ClientLogin', captcha_token=None, captcha_response=None)
- Delete = delete(self, entry_or_uri, auth_token=None, force=False, **kwargs)
- GetAccessToken = get_access_token(self, request_token, url='https://www.google.com/accounts/OAuthGetAccessToken')
- GetEntry = get_entry(self, uri, auth_token=None, converter=None, desired_class=<class 'gdata.data.GDEntry'>, **kwargs)
- GetFeed = get_feed(self, uri, auth_token=None, converter=None, desired_class=<class 'gdata.data.GDFeed'>, **kwargs)
- GetNext = get_next(self, feed, auth_token=None, converter=None, desired_class=None, **kwargs)
- GetOAuthToken = get_oauth_token(self, scopes, next, consumer_key, consumer_secret=None, rsa_private_key=None, url='https://www.google.com/accounts/OAuthGetRequestToken')
- ModifyRequest = modify_request(self, http_request)
- Post = post(self, entry, uri, auth_token=None, converter=None, desired_class=None, **kwargs)
- Request = request(self, method=None, uri=None, auth_token=None, http_request=None, converter=None, desired_class=None, redirects_remaining=4, **kwargs)
- RequestClientLoginToken = request_client_login_token(self, email, password, source, service=None, account_type='HOSTED_OR_GOOGLE', auth_url=<atom.http_core.Uri object at 0xc0bd50>, captcha_token=None, captcha_response=None)
- Update = update(self, entry, auth_token=None, force=False, **kwargs)
- UpgradeToken = upgrade_token(self, token=None, url=<atom.http_core.Uri object at 0xc0bd90>)
- client_login(self, email, password, source, service=None, account_type='HOSTED_OR_GOOGLE', auth_url='https://www.google.com/accounts/ClientLogin', captcha_token=None, captcha_response=None)
- delete(self, entry_or_uri, auth_token=None, force=False, **kwargs)
- get_access_token(self, request_token, url='https://www.google.com/accounts/OAuthGetAccessToken')
- Exchanges an authorized OAuth request token for an access token.
Contacts the Google OAuth server to upgrade a previously authorized
request token. Once the request token is upgraded to an access token,
the access token may be used to access the user's data.
For more details, see the Google Accounts OAuth documentation:
http://code.google.com/apis/accounts/docs/OAuth.html#AccessToken
Args:
request_token: An OAuth token which has been authorized by the user.
url: (optional) The URL to which the upgrade request should be sent.
Defaults to: https://www.google.com/accounts/OAuthAuthorizeToken
- get_entry(self, uri, auth_token=None, converter=None, desired_class=<class 'gdata.data.GDEntry'>, **kwargs)
- get_feed(self, uri, auth_token=None, converter=None, desired_class=<class 'gdata.data.GDFeed'>, **kwargs)
- get_next(self, feed, auth_token=None, converter=None, desired_class=None, **kwargs)
- Fetches the next set of results from the feed.
When requesting a feed, the number of entries returned is capped at a
service specific default limit (often 25 entries). You can specify your
own entry-count cap using the max-results URL query parameter. If there
are more results than could fit under max-results, the feed will contain
a next link. This method performs a GET against this next results URL.
Returns:
A new feed object containing the next set of entries in this feed.
- get_oauth_token(self, scopes, next, consumer_key, consumer_secret=None, rsa_private_key=None, url='https://www.google.com/accounts/OAuthGetRequestToken')
- Obtains an OAuth request token to allow the user to authorize this app.
Once this client has a request token, the user can authorize the request
token by visiting the authorization URL in their browser. After being
redirected back to this app at the 'next' URL, this app can then exchange
the authorized request token for an access token.
For more information see the documentation on Google Accounts with OAuth:
http://code.google.com/apis/accounts/docs/OAuth.html#AuthProcess
Args:
scopes: list of strings or atom.http_core.Uri objects which specify the
URL prefixes which this app will be accessing. For example, to access
the Google Calendar API, you would want to use scopes:
['https://www.google.com/calendar/feeds/',
'http://www.google.com/calendar/feeds/']
next: str or atom.http_core.Uri object, The URL which the user's browser
should be sent to after they authorize access to their data. This
should be a URL in your application which will read the token
information from the URL and upgrade the request token to an access
token.
consumer_key: str This is the identifier for this application which you
should have received when you registered your application with Google
to use OAuth.
consumer_secret: str (optional) The shared secret between your app and
Google which provides evidence that this request is coming from you
application and not another app. If present, this libraries assumes
you want to use an HMAC signature to verify requests. Keep this data
a secret.
rsa_private_key: str (optional) The RSA private key which is used to
generate a digital signature which is checked by Google's server. If
present, this library assumes that you want to use an RSA signature
to verify requests. Keep this data a secret.
url: The URL to which a request for a token should be made. The default
is Google's OAuth request token provider.
- modify_request(self, http_request)
- Adds or changes request before making the HTTP request.
This client will add the API version if it is specified.
Subclasses may override this method to add their own request
modifications before the request is made.
- post(self, entry, uri, auth_token=None, converter=None, desired_class=None, **kwargs)
- request(self, method=None, uri=None, auth_token=None, http_request=None, converter=None, desired_class=None, redirects_remaining=4, **kwargs)
- Make an HTTP request to the server.
See also documentation for atom.client.AtomPubClient.request.
If a 302 redirect is sent from the server to the client, this client
assumes that the redirect is in the form used by the Google Calendar API.
The same request URI and method will be used as in the original request,
but a gsessionid URL parameter will be added to the request URI with
the value provided in the server's 302 redirect response. If the 302
redirect is not in the format specified by the Google Calendar API, a
RedirectError will be raised containing the body of the server's
response.
The method calls the client's modify_request method to make any changes
required by the client before the request is made. For example, a
version 2 client could add a GData-Version: 2 header to the request in
its modify_request method.
Args:
method: str The HTTP verb for this request, usually 'GET', 'POST',
'PUT', or 'DELETE'
uri: atom.http_core.Uri, str, or unicode The URL being requested.
auth_token: An object which sets the Authorization HTTP header in its
modify_request method. Recommended classes include
gdata.gauth.ClientLoginToken and gdata.gauth.AuthSubToken
among others.
http_request: (optional) atom.http_core.HttpRequest
converter: function which takes the body of the response as it's only
argument and returns the desired object.
desired_class: class descended from atom.core.XmlElement to which a
successful response should be converted. If there is no
converter function specified (converter=None) then the
desired_class will be used in calling the
atom.core.parse function. If neither
the desired_class nor the converter is specified, an
HTTP reponse object will be returned.
redirects_remaining: (optional) int, if this number is 0 and the
server sends a 302 redirect, the request method
will raise an exception. This parameter is used in
recursive request calls to avoid an infinite loop.
Any additional arguments are passed through to
atom.client.AtomPubClient.request.
Returns:
An HTTP response object (see atom.http_core.HttpResponse for a
description of the object's interface) if no converter was
specified and no desired_class was specified. If a converter function
was provided, the results of calling the converter are returned. If no
converter was specified but a desired_class was provided, the response
body will be converted to the class using
atom.core.parse.
- request_client_login_token(self, email, password, source, service=None, account_type='HOSTED_OR_GOOGLE', auth_url=<atom.http_core.Uri object at 0xc0bd50>, captcha_token=None, captcha_response=None)
- update(self, entry, auth_token=None, force=False, **kwargs)
- Edits the entry on the server by sending the XML for this entry.
Performs a PUT and converts the response to a new entry object with a
matching class to the entry passed in.
Args:
entry:
auth_token:
force: boolean stating whether an update should be forced. Defaults to
False. Normally, if a change has been made since the passed in
entry was obtained, the server will not overwrite the entry since
the changes were based on an obsolete version of the entry.
Setting force to True will cause the update to silently
overwrite whatever version is present.
Returns:
A new Entry object of a matching type to the entry which was passed in.
- upgrade_token(self, token=None, url=<atom.http_core.Uri object at 0xc0bd90>)
- Asks the Google auth server for a multi-use AuthSub token.
For details on AuthSub, see:
http://code.google.com/apis/accounts/docs/AuthSub.html
Args:
token: gdata.gauth.AuthSubToken or gdata.gauth.SecureAuthSubToken
(optional) If no token is passed in, the client's auth_token member
is used to request the new token. The token object will be modified
to contain the new session token string.
url: str or atom.http_core.Uri (optional) The URL to which the token
upgrade request should be sent. Defaults to:
https://www.google.com/accounts/AuthSubSessionToken
Returns:
The upgraded gdata.gauth.AuthSubToken object.
Data and other attributes defined here:
- api_version = None
- auth_scopes = None
- auth_service = None
Methods inherited from atom.client.AtomPubClient:
- Get = get(self, uri=None, auth_token=None, http_request=None, **kwargs)
- Put = put(self, uri=None, data=None, auth_token=None, http_request=None, **kwargs)
- __init__(self, http_client=None, host=None, auth_token=None, source=None, **kwargs)
- Creates a new AtomPubClient instance.
Args:
source: The name of your application.
http_client: An object capable of performing HTTP requests through a
request method. This object is used to perform the request
when the AtomPubClient's request method is called. Used to
allow HTTP requests to be directed to a mock server, or use
an alternate library instead of the default of httplib to
make HTTP requests.
host: str The default host name to use if a host is not specified in the
requested URI.
auth_token: An object which sets the HTTP Authorization header when its
modify_request method is called.
- get(self, uri=None, auth_token=None, http_request=None, **kwargs)
- put(self, uri=None, data=None, auth_token=None, http_request=None, **kwargs)
Data descriptors inherited from atom.client.AtomPubClient:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
Data and other attributes inherited from atom.client.AtomPubClient:
- auth_token = None
- host = None
|
class GDQuery(atom.http_core.Uri) |
| | |
- Method resolution order:
- GDQuery
- atom.http_core.Uri
- __builtin__.object
Data descriptors defined here:
- text_query
- The q parameter for searching for an exact text match on content
Methods inherited from atom.http_core.Uri:
- ModifyRequest = modify_request(self, http_request=None)
- Sets HTTP request components based on the URI.
- __init__(self, scheme=None, host=None, port=None, path=None, query=None)
- Constructor for a URI.
Args:
scheme: str This is usually 'http' or 'https'.
host: str The host name or IP address of the desired server.
post: int The server's port number.
path: str The path of the resource following the host. This begins with
a /, example: '/calendar/feeds/default/allcalendars/full'
query: dict of strings The URL query parameters. The keys and values are
both escaped so this dict should contain the unescaped values.
For example {'my key': 'val', 'second': '!!!'} will become
'?my+key=val&second=%21%21%21' which is appended to the path.
- __str__(self)
- modify_request(self, http_request=None)
- Sets HTTP request components based on the URI.
Static methods inherited from atom.http_core.Uri:
- ParseUri = parse_uri(uri_string)
- Creates a Uri object which corresponds to the URI string.
This method can accept partial URIs, but it will leave missing
members of the Uri unset.
- parse_uri(uri_string)
- Creates a Uri object which corresponds to the URI string.
This method can accept partial URIs, but it will leave missing
members of the Uri unset.
Data descriptors inherited from atom.http_core.Uri:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
Data and other attributes inherited from atom.http_core.Uri:
- host = None
- path = None
- port = None
- scheme = None
|
class GDataClient(gdata.service.GDataService) |
| |
This class is deprecated.
All functionality has been migrated to gdata.service.GDataService. |
| |
- Method resolution order:
- GDataClient
- gdata.service.GDataService
- atom.service.AtomService
- __builtin__.object
Methods defined here:
- ClientLogin(*args, **kwargs)
- # The deprecated_function wraps the actual call to f.
- Delete(*args, **kwargs)
- # The deprecated_function wraps the actual call to f.
- Get(*args, **kwargs)
- # The deprecated_function wraps the actual call to f.
- Post(*args, **kwargs)
- # The deprecated_function wraps the actual call to f.
- Put(*args, **kwargs)
- # The deprecated_function wraps the actual call to f.
- __init__(*args, **kwargs)
- # The deprecated_function wraps the actual call to f.
Methods inherited from gdata.service.GDataService:
- AuthSubTokenInfo(self)
- Fetches the AuthSub token's metadata from the server.
Raises:
NonAuthSubToken if the user's auth token is not an AuthSub token
- FetchOAuthRequestToken(self, scopes=None, extra_parameters=None, request_url='https://www.google.com/accounts/OAuthGetRequestToken', oauth_callback=None)
- Fetches and sets the OAuth request token and returns it.
Args:
scopes: string or list of string base URL(s) of the service(s) to be
accessed. If None, then this method tries to determine the
scope(s) from the current service.
extra_parameters: dict (optional) key-value pairs as any additional
parameters to be included in the URL and signature while making a
request for fetching an OAuth request token. All the OAuth parameters
are added by default. But if provided through this argument, any
default parameters will be overwritten. For e.g. a default parameter
oauth_version 1.0 can be overwritten if
extra_parameters = {'oauth_version': '2.0'}
request_url: Request token URL. The default is
'https://www.google.com/accounts/OAuthGetRequestToken'.
oauth_callback: str (optional) If set, it is assume the client is using
the OAuth v1.0a protocol where the callback url is sent in the
request token step. If the oauth_callback is also set in
extra_params, this value will override that one.
Returns:
The fetched request token as a gdata.auth.OAuthToken object.
Raises:
FetchingOAuthRequestTokenFailed if the server responded to the request
with an error.
- GenerateAuthSubURL(self, next, scope, secure=False, session=True, domain='default')
- Generate a URL at which the user will login and be redirected back.
Users enter their credentials on a Google login page and a token is sent
to the URL specified in next. See documentation for AuthSub login at:
http://code.google.com/apis/accounts/docs/AuthSub.html
Args:
next: string The URL user will be sent to after logging in.
scope: string or list of strings. The URLs of the services to be
accessed.
secure: boolean (optional) Determines whether or not the issued token
is a secure token.
session: boolean (optional) Determines whether or not the issued token
can be upgraded to a session token.
- GenerateOAuthAuthorizationURL(self, request_token=None, callback_url=None, extra_params=None, include_scopes_in_callback=False, scopes_param_prefix='oauth_token_scope', request_url='https://www.google.com/accounts/OAuthAuthorizeToken')
- Generates URL at which user will login to authorize the request token.
Args:
request_token: gdata.auth.OAuthToken (optional) OAuth request token.
If not specified, then the current token will be used if it is of
type <gdata.auth.OAuthToken>, else it is found by looking in the
token_store by looking for a token for the current scope.
callback_url: string (optional) The URL user will be sent to after
logging in and granting access.
extra_params: dict (optional) Additional parameters to be sent.
include_scopes_in_callback: Boolean (default=False) if set to True, and
if 'callback_url' is present, the 'callback_url' will be modified to
include the scope(s) from the request token as a URL parameter. The
key for the 'callback' URL's scope parameter will be
OAUTH_SCOPE_URL_PARAM_NAME. The benefit of including the scope URL as
a parameter to the 'callback' URL, is that the page which receives
the OAuth token will be able to tell which URLs the token grants
access to.
scopes_param_prefix: string (default='oauth_token_scope') The URL
parameter key which maps to the list of valid scopes for the token.
This URL parameter will be included in the callback URL along with
the scopes of the token as value if include_scopes_in_callback=True.
request_url: Authorization URL. The default is
'https://www.google.com/accounts/OAuthAuthorizeToken'.
Returns:
A string URL at which the user is required to login.
Raises:
NonOAuthToken if the user's request token is not an OAuth token or if a
request token was not available.
- GetAuthSubToken(self)
- Returns the AuthSub token as a string.
If the token is an gdta.auth.AuthSubToken, the Authorization Label
("AuthSub token") is removed.
This method examines the current_token to see if it is an AuthSubToken
or SecureAuthSubToken. If not, it searches the token_store for a token
which matches the current scope.
The current scope is determined by the service name string member.
Returns:
If the current_token is set to an AuthSubToken/SecureAuthSubToken,
return the token string. If there is no current_token, a token string
for a token which matches the service object's default scope is returned.
If there are no tokens valid for the scope, returns None.
- GetClientLoginToken(self)
- Returns the token string for the current token or a token matching the
service scope.
If the current_token is a ClientLoginToken, the token string for
the current token is returned. If the current_token is not set, this method
searches for a token in the token_store which is valid for the service
object's current scope.
The current scope is determined by the service name string member.
The token string is the end of the Authorization header, it doesn not
include the ClientLogin label.
- GetEntry(self, uri, extra_headers=None)
- Query the GData API with the given URI and receive an Entry.
See also documentation for gdata.service.Get
Args:
uri: string The query in the form of a URI. Example:
'/base/feeds/snippets?bq=digital+camera'.
extra_headers: dictionary (optional) Extra HTTP headers to be included
in the GET request. These headers are in addition to
those stored in the client's additional_headers property.
The client automatically sets the Content-Type and
Authorization headers.
Returns:
A GDataEntry built from the XML in the server's response.
- GetFeed(self, uri, extra_headers=None, converter=<function GDataFeedFromString at 0x7f44330d3488>)
- Query the GData API with the given URI and receive a Feed.
See also documentation for gdata.service.Get
Args:
uri: string The query in the form of a URI. Example:
'/base/feeds/snippets?bq=digital+camera'.
extra_headers: dictionary (optional) Extra HTTP headers to be included
in the GET request. These headers are in addition to
those stored in the client's additional_headers property.
The client automatically sets the Content-Type and
Authorization headers.
Returns:
A GDataFeed built from the XML in the server's response.
- GetMedia(self, uri, extra_headers=None)
- Returns a MediaSource containing media and its metadata from the given
URI string.
- GetNext(self, feed)
- Requests the next 'page' of results in the feed.
This method uses the feed's next link to request an additional feed
and uses the class of the feed to convert the results of the GET request.
Args:
feed: atom.Feed or a subclass. The feed should contain a next link and
the type of the feed will be applied to the results from the
server. The new feed which is returned will be of the same class
as this feed which was passed in.
Returns:
A new feed representing the next set of results in the server's feed.
The type of this feed will match that of the feed argument.
- GetOAuthInputParameters(self)
- PostOrPut(self, verb, data, uri, extra_headers=None, url_params=None, escape_params=True, redirects_remaining=4, media_source=None, converter=None)
- Insert data into a GData service at the given URI.
Args:
verb: string, either 'POST' or 'PUT'
data: string, ElementTree._Element, atom.Entry, or gdata.GDataEntry The
XML to be sent to the uri.
uri: string The location (feed) to which the data should be inserted.
Example: '/base/feeds/items'.
extra_headers: dict (optional) HTTP headers which are to be included.
The client automatically sets the Content-Type,
Authorization, and Content-Length headers.
url_params: dict (optional) Additional URL parameters to be included
in the URI. These are translated into query arguments
in the form '&dict_key=value&...'.
Example: {'max-results': '250'} becomes &max-results=250
escape_params: boolean (optional) If false, the calling code has already
ensured that the query will form a valid URL (all
reserved characters have been escaped). If true, this
method will escape the query and any URL parameters
provided.
media_source: MediaSource (optional) Container for the media to be sent
along with the entry, if provided.
converter: func (optional) A function which will be executed on the
server's response. Often this is a function like
GDataEntryFromString which will parse the body of the server's
response and return a GDataEntry.
Returns:
If the post succeeded, this method will return a GDataFeed, GDataEntry,
or the results of running converter on the server's result body (if
converter was specified).
- ProgrammaticLogin(self, captcha_token=None, captcha_response=None)
- Authenticates the user and sets the GData Auth token.
Login retreives a temporary auth token which must be used with all
requests to GData services. The auth token is stored in the GData client
object.
Login is also used to respond to a captcha challenge. If the user's login
attempt failed with a CaptchaRequired error, the user can respond by
calling Login with the captcha token and the answer to the challenge.
Args:
captcha_token: string (optional) The identifier for the captcha challenge
which was presented to the user.
captcha_response: string (optional) The user's answer to the captch
challenge.
Raises:
CaptchaRequired if the login service will require a captcha response
BadAuthentication if the login service rejected the username or password
Error if the login service responded with a 403 different from the above
- RevokeAuthSubToken(self)
- Revokes an existing AuthSub token.
Raises:
NonAuthSubToken if the user's auth token is not an AuthSub token
- RevokeOAuthToken(self, request_url='https://www.google.com/accounts/AuthSubRevokeToken')
- Revokes an existing OAuth token.
request_url: Token revoke URL. The default is
'https://www.google.com/accounts/AuthSubRevokeToken'.
Raises:
NonOAuthToken if the user's auth token is not an OAuth token.
RevokingOAuthTokenFailed if request for revoking an OAuth token failed.
- SetAuthSubToken(self, token, scopes=None, rsa_key=None)
- Sets the token sent in requests to an AuthSub token.
Sets the current_token and attempts to add the token to the token_store.
Only use this method if you have received a token from the AuthSub
service. The auth token is set automatically when UpgradeToSessionToken()
is used. See documentation for Google AuthSub here:
http://code.google.com/apis/accounts/AuthForWebApps.html
Args:
token: gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken or string
The token returned by the AuthSub service. If the token is an
AuthSubToken or SecureAuthSubToken, the scope information stored in
the token is used. If the token is a string, the scopes parameter is
used to determine the valid scopes.
scopes: list of URLs for which the token is valid. This is only used
if the token parameter is a string.
rsa_key: string (optional) Private key required for RSA_SHA1 signature
method. This parameter is necessary if the token is a string
representing a secure token.
- SetClientLoginToken(self, token, scopes=None)
- Sets the token sent in requests to a ClientLogin token.
This method sets the current_token to a new ClientLoginToken and it
also attempts to add the ClientLoginToken to the token_store.
Only use this method if you have received a token from the ClientLogin
service. The auth_token is set automatically when ProgrammaticLogin()
is used. See documentation for Google ClientLogin here:
http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html
Args:
token: string or instance of a ClientLoginToken.
- SetOAuthInputParameters(self, signature_method, consumer_key, consumer_secret=None, rsa_key=None, two_legged_oauth=False, requestor_id=None)
- Sets parameters required for using OAuth authentication mechanism.
NOTE: Though consumer_secret and rsa_key are optional, either of the two
is required depending on the value of the signature_method.
Args:
signature_method: class which provides implementation for strategy class
oauth.oauth.OAuthSignatureMethod. Signature method to be used for
signing each request. Valid implementations are provided as the
constants defined by gdata.auth.OAuthSignatureMethod. Currently
they are gdata.auth.OAuthSignatureMethod.RSA_SHA1 and
gdata.auth.OAuthSignatureMethod.HMAC_SHA1
consumer_key: string Domain identifying third_party web application.
consumer_secret: string (optional) Secret generated during registration.
Required only for HMAC_SHA1 signature method.
rsa_key: string (optional) Private key required for RSA_SHA1 signature
method.
two_legged_oauth: boolean (optional) Enables two-legged OAuth process.
requestor_id: string (optional) User email adress to make requests on
their behalf. This parameter should only be set when two_legged_oauth
is True.
- SetOAuthToken(self, oauth_token)
- Attempts to set the current token and add it to the token store.
The oauth_token can be any OAuth token i.e. unauthorized request token,
authorized request token or access token.
This method also attempts to add the token to the token store.
Use this method any time you want the current token to point to the
oauth_token passed. For e.g. call this method with the request token
you receive from FetchOAuthRequestToken.
Args:
request_token: gdata.auth.OAuthToken OAuth request token.
- UpgradeToOAuthAccessToken(self, authorized_request_token=None, request_url='https://www.google.com/accounts/OAuthGetAccessToken', oauth_version='1.0', oauth_verifier=None)
- Upgrades the authorized request token to an access token and returns it
Args:
authorized_request_token: gdata.auth.OAuthToken (optional) OAuth request
token. If not specified, then the current token will be used if it is
of type <gdata.auth.OAuthToken>, else it is found by looking in the
token_store by looking for a token for the current scope.
request_url: Access token URL. The default is
'https://www.google.com/accounts/OAuthGetAccessToken'.
oauth_version: str (default='1.0') oauth_version parameter. All other
'oauth_' parameters are added by default. This parameter too, is
added by default but here you can override it's value.
oauth_verifier: str (optional) If present, it is assumed that the client
will use the OAuth v1.0a protocol which includes passing the
oauth_verifier (as returned by the SP) in the access token step.
Returns:
Access token
Raises:
NonOAuthToken if the user's authorized request token is not an OAuth
token or if an authorized request token was not available.
TokenUpgradeFailed if the server responded to the request with an
error.
- UpgradeToSessionToken(self, token=None)
- Upgrades a single use AuthSub token to a session token.
Args:
token: A gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken
(optional) which is good for a single use but can be upgraded
to a session token. If no token is passed in, the token
is found by looking in the token_store by looking for a token
for the current scope.
Raises:
NonAuthSubToken if the user's auth token is not an AuthSub token
TokenUpgradeFailed if the server responded to the request with an
error.
- upgrade_to_session_token(self, token)
- Upgrades a single use AuthSub token to a session token.
Args:
token: A gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken
which is good for a single use but can be upgraded to a
session token.
Returns:
The upgraded token as a gdata.auth.AuthSubToken object.
Raises:
TokenUpgradeFailed if the server responded to the request with an
error.
Data descriptors inherited from gdata.service.GDataService:
- captcha_token
- Get the captcha token for a login request.
- captcha_url
- Get the captcha URL for a login request.
- source
- The source is the name of the application making the request.
It should be in the form company_id-app_name-app_version
Data and other attributes inherited from gdata.service.GDataService:
- auth_token = None
- handler = None
- tokens = None
Methods inherited from atom.service.AtomService:
- UseBasicAuth(self, username, password, for_proxy=False)
- Sets an Authenticaiton: Basic HTTP header containing plaintext.
Deprecated, use use_basic_auth instead.
The username and password are base64 encoded and added to an HTTP header
which will be included in each request. Note that your username and
password are sent in plaintext.
Args:
username: str
password: str
- request(*args, **kwargs)
- # The deprecated_function wraps the actual call to f.
- use_basic_auth(self, username, password, scopes=None)
Data descriptors inherited from atom.service.AtomService:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
- debug
- If True, HTTP debug information is printed.
- override_token
Data and other attributes inherited from atom.service.AtomService:
- auto_set_current_token = True
- auto_store_tokens = True
- current_token = None
- port = 80
- ssl = False
|
class Query(__builtin__.object) |
| | |
Methods defined here:
- ModifyRequest = modify_request(self, http_request)
- __init__(self, text_query=None, categories=None, author=None, alt=None, updated_min=None, updated_max=None, pretty_print=False, published_min=None, published_max=None, start_index=None, max_results=None, strict=False)
- Constructs a Google Data Query to filter feed contents serverside.
Args:
text_query: Full text search str (optional)
categories: list of strings (optional). Each string is a required
category. To include an 'or' query, put a | in the string between
terms. For example, to find everything in the Fitz category and
the Laurie or Jane category (Fitz and (Laurie or Jane)) you would
set categories to ['Fitz', 'Laurie|Jane'].
author: str (optional) The service returns entries where the author
name and/or email address match your query string.
alt: str (optional) for the Alternative representation type you'd like
the feed in. If you don't specify an alt parameter, the service
returns an Atom feed. This is equivalent to alt='atom'.
alt='rss' returns an RSS 2.0 result feed.
alt='json' returns a JSON representation of the feed.
alt='json-in-script' Requests a response that wraps JSON in a script
tag.
alt='atom-in-script' Requests an Atom response that wraps an XML
string in a script tag.
alt='rss-in-script' Requests an RSS response that wraps an XML
string in a script tag.
updated_min: str (optional), RFC 3339 timestamp format, lower bounds.
For example: 2005-08-09T10:57:00-08:00
updated_max: str (optional) updated time must be earlier than timestamp.
pretty_print: boolean (optional) If True the server's XML response will
be indented to make it more human readable. Defaults to False.
published_min: str (optional), Similar to updated_min but for published
time.
published_max: str (optional), Similar to updated_max but for published
time.
start_index: int or str (optional) 1-based index of the first result to
be retrieved. Note that this isn't a general cursoring mechanism.
If you first send a query with ?start-index=1&max-results=10 and
then send another query with ?start-index=11&max-results=10, the
service cannot guarantee that the results are equivalent to
?start-index=1&max-results=20, because insertions and deletions
could have taken place in between the two queries.
max_results: int or str (optional) Maximum number of results to be
retrieved. Each service has a default max (usually 25) which can
vary from service to service. There is also a service-specific
limit to the max_results you can fetch in a request.
strict: boolean (optional) If True, the server will return an error if
the server does not recognize any of the parameters in the request
URL. Defaults to False.
- modify_request(self, http_request)
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|
|


UNSC's President Says It Extends Mandate of African Union Mission in Darfur for One More Year
UNITED NATIONS (Sputnik) - The UN Security Council unanimously adopted a resolution to extend the mandate of the African Union-United Nations Hybrid Operation in Darfur (UNAMID) for another year, UN Security Council's current president South African Ambassador Jerry Matjila said in a meeting on Thursday.
"The result of the voting is as follows: The draft resolution received 15 votes in favor. The draft resolution has been adopted unanimously", Matjila said.
The draft resolution, submitted by the United Kingdom and Germany, extends the UNAMID mandate until 31 October 2020.
The mission is undergoing reconfiguration and will go through the process of an eventual drawdown.
According to the text of the resolution, the UN Security Council will decide on the future actions regarding the mission’s drawdown and exit after 1 March 2020.
The resolution also stipulates that the UN Security Council will adopt a new document at the same time to further address the issue of UNAMID’s presence in the region.
In June, UN Under-Secretary-General for Peacekeeping Operations Jean-Pierre Lacroix said that the mission intends to exit Darfur by 30 June 2020.


This page uses a custom directive, btf-markdown
, written by Brian Ford,
and delivered as an AngularJS module. We boot it in `app.js` as a dependent module.
Type into the text box on the left, and as you enter valid markdown, you'll see it automagically appear on the right-hand side.
See angular-markdown-directive for details on how we installed it.