403Webshell
Server IP : 103.119.228.120  /  Your IP : 3.145.109.244
Web Server : Apache
System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User : nobody ( 99)
PHP Version : 5.6.40
Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime
MySQL : ON |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : ON |  Pkexec : ON
Directory :  /usr/share/doc/pygpgme-0.3/tests/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /usr/share/doc/pygpgme-0.3/tests/test_genkey.py
# pygpgme - a Python wrapper for the gpgme library
# Copyright (C) 2006  James Henstridge
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

import unittest
try:
    from io import BytesIO
except ImportError:
    from StringIO import StringIO as BytesIO

import gpgme
from tests.util import GpgHomeTestCase


# See /usr/share/doc/gnupg/DETAILS.gz

# XXX we are using a passwordless key because the passphrase_cb
# backend seems to be currently broken.

signing_only_param = """
<GnupgKeyParms format="internal">
  Key-Type: RSA
  Key-Usage: sign
  Key-Length: 1024
  Name-Real: Testing
  Name-Comment: comment
  Name-Email: someone@example.com
  Expire-Date: 0
</GnupgKeyParms>
"""


class GenerateKeyTestCase(GpgHomeTestCase):

    def assertCanSign(self, key):
        """Check that the given key can be used to create signatures."""
        ctx = gpgme.Context()
        ctx.signers = [key]

        plaintext = BytesIO(b'Hello World\n')
        signature = BytesIO()

        ctx.armor = True
        new_sigs = ctx.sign(
            plaintext, signature, gpgme.SIG_MODE_DETACH)

        signature.seek(0)
        plaintext.seek(0)

        sigs = ctx.verify(signature, plaintext, None)
        self.assertEqual(len(sigs), 1)
        self.assertEqual(sigs[0].fpr, key.subkeys[0].fpr)

    def _test_generate_signing_only_keys(self):
        ctx = gpgme.Context()
        result = ctx.genkey(signing_only_param)

        self.assertEqual(result.primary, True)
        self.assertEqual(result.sub, False)
        self.assertEqual(len(result.fpr), 40)

        # The generated key is part of the current keyring.
        key = ctx.get_key(result.fpr, True)
        self.assertEqual(key.revoked, False)
        self.assertEqual(key.expired, False)
        self.assertEqual(key.secret, True)
        self.assertEqual(key.protocol, gpgme.PROTOCOL_OpenPGP)

        # Single signing-only RSA key.
        self.assertEqual(len(key.subkeys), 1)
        subkey = key.subkeys[0]
        self.assertEqual(subkey.secret, True)
        self.assertEqual(subkey.pubkey_algo, gpgme.PK_RSA)
        self.assertEqual(subkey.length, 1024)

        self.assertEqual(key.can_sign, True)
        self.assertEqual(key.can_encrypt, False)

        # The only UID available matches the given parameters.
        [uid] = key.uids
        self.assertEqual(uid.name, 'Testing')
        self.assertEqual(uid.comment, 'comment')
        self.assertEqual(uid.email, 'someone@example.com')

        # Finally check if the generated key can perform signatures.
        self.assertCanSign(key)

    def test_invalid_parameters(self):
        ctx = gpgme.Context()
        try:
            ctx.genkey('garbage parameters')
        except gpgme.GpgmeError as exc:
            self.assertTrue(hasattr(exc, "result"))
            result = exc.result
            self.assertEqual(result.primary, False)
            self.assertEqual(result.sub, False)
            self.assertEqual(result.fpr, None)
        else:
            self.fail("GpgmeError not raised")


def test_suite():
    loader = unittest.TestLoader()
    return loader.loadTestsFromName(__name__)


if __name__ == '__main__':
    unittest.main()

Youez - 2016 - github.com/yon3zu
LinuXploit