pdf viewer for asp.net web application : How to add image to pdf file software SDK dll windows wpf azure web forms postgresql-9.4-A4289-part2933

Appendix F. Additional Supplied Modules
F.22.1. Functions
get_raw_page(relname text, fork text, blkno int) returns bytea
get_raw_page
reads the specified block of the named relation and returns a copy as a
bytea
value. This allows a single time-consistent copy of the block to be obtained.
fork
should be
’main’
for the main data fork,
’fsm’
for the free space map,
’vm’
for the visibility map, or
’init’
for the initialization fork.
get_raw_page(relname text, blkno int) returns bytea
A shorthand version of
get_raw_page
, for reading from the main fork. Equivalent to
get_raw_page(relname, ’main’, blkno)
page_header(page bytea) returns record
page_header
shows fields that are common to all PostgreSQL heap and index pages.
Apage image obtained with
get_raw_page
should be passed as argument. For example:
test=# SELECT
*
FROM page_header(get_raw_page(’pg_class’, 0));
lsn
| checksum | flags
| lower | upper | special | pagesize | version | prune_xid
-----------+----------+--------+-------+-------+---------+----------+---------+-----------
0/24A1B50 |
1 |
1 |
232 |
368 |
8192 |
8192 |
4 |
The returned columns correspond to the fields in the
PageHeaderData
struct. See
src/include/storage/bufpage.h
for details.
heap_page_items(page bytea) returns setof record
heap_page_items
shows all line pointers on a heap page. For those line pointers that are in
use, tuple headers are alsoshown. All tuples are shown, whether or not the tuples were visible to
an MVCC snapshot at the time the raw page was copied.
Aheap page image obtained with
get_raw_page
should be passed as argument. For example:
test=# SELECT
*
FROM heap_page_items(get_raw_page(’pg_class’, 0));
See
src/include/storage/itemid.h
and
src/include/access/htup_details.h
for
explanations of the fields returned.
bt_metap(relname text) returns record
bt_metap
returns information about a B-tree index’s metapage. For example:
test=# SELECT
*
FROM bt_metap(’pg_cast_oid_index’);
-[ RECORD 1 ]-----
magic
| 340322
version
| 2
root
| 1
level
| 0
fastroot
| 1
fastlevel | 0
bt_page_stats(relname text, blkno int) returns record
bt_page_stats
returns summaryinformationabout single pages of B-tree indexes. For exam-
ple:
test=# SELECT
*
FROM bt_page_stats(’pg_cast_oid_index’, 1);
-[ RECORD 1 ]-+-----
blkno
| 1
type
| l
live_items
| 256
dead_items
| 0
avg_item_size | 12
2818
How to add image to pdf file - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
add jpg to pdf form; adding image to pdf in preview
How to add image to pdf file - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
adding an image to a pdf in preview; adding a png to a pdf
Appendix F. Additional Supplied Modules
page_size
| 8192
free_size
| 4056
btpo_prev
| 0
btpo_next
| 0
btpo
| 0
btpo_flags
| 3
bt_page_items(relname text, blkno int) returns setof record
bt_page_items
returns detailed information about all of the items on a B-tree index page. For
example:
test=# SELECT
*
FROM bt_page_items(’pg_cast_oid_index’, 1);
itemoffset |
ctid
| itemlen | nulls | vars |
data
------------+---------+---------+-------+------+-------------
1 | (0,1)
|
12 | f
| f
| 23 27 00 00
2 | (0,2)
|
12 | f
| f
| 24 27 00 00
3 | (0,3)
|
12 | f
| f
| 25 27 00 00
4 | (0,4)
|
12 | f
| f
| 26 27 00 00
5 | (0,5)
|
12 | f
| f
| 27 27 00 00
6 | (0,6)
|
12 | f
| f
| 28 27 00 00
7 | (0,7)
|
12 | f
| f
| 29 27 00 00
8 | (0,8)
|
12 | f
| f
| 2a 27 00 00
fsm_page_contents(page bytea) returns text
fsm_page_contents
shows the internalnodestructureof aFSM page.The outputis amultiline
string, with one line per node in the binary tree within the page. Only those nodes that are not
zero are printed. The so-called "next" pointer, which points to the next slot to be returned from
the page, is also printed.
See
src/backend/storage/freespace/README
for more information on the structure of an
FSM page.
F.23. passwordcheck
The
passwordcheck
module checks users’ passwords whenever they are set with CREATE ROLE
or ALTER ROLE. If a password is considered too weak, it will be rejected and the command will
terminate with an error.
To enable this module, add
’$libdir/passwordcheck’
to shared_preload_libraries in
postgresql.conf
,then restart the server.
You can adapt this module to your needs by changing the source code. For example, you can use
CrackLib
2
to check passwords — this only requires uncommenting two lines in the
Makefile
and
rebuilding the module. (We cannot include CrackLib by default for license reasons.) Without Crack-
Lib, the module enforces a few simple rules for password strength, which you can modify or extend
as you see fit.
2. http://sourceforge.net/projects/cracklib/
2819
VB.NET PDF Password Library: add, remove, edit PDF file password
This VB.NET example shows how to add PDF file password with access permission setting. passwordSetting.IsAssemble = True ' Add password to PDF file.
add image pdf acrobat; add an image to a pdf with acrobat
C# PDF Password Library: add, remove, edit PDF file password in C#
This example shows how to add PDF file password with access permission setting. passwordSetting.IsAssemble = true; // Add password to PDF file.
adding a jpeg to a pdf; add png to pdf preview
Appendix F. Additional Supplied Modules
Caution
To prevent unencrypted passwords from being sent across the network, writ-
ten to the server log or otherwise stolen by a database administrator, Post-
greSQL allows the user to supply pre-encrypted passwords. Many client pro-
grams make use of this functionality and encrypt the password before sending
it to the server.
This limits the usefulness of the
passwordcheck
module, because in that case
it can only try to guess the password. For this reason,
passwordcheck
is not
recommended if your security requirements are high. It is more secure to use
an external authentication method such as GSSAPI (see Chapter 19) than to
rely on passwords within the database.
Alternatively, you could modify
passwordcheck
to reject pre-encrypted pass-
words, but forcing users to set their passwords in clear text carries its own
security risks.
F.24. pg_buffercache
The
pg_buffercache
moduleprovides ameans for examining what’s happeninginthe sharedbuffer
cache in real time.
The module provides a Cfunction
pg_buffercache_pages
that returns a set of records, plus a view
pg_buffercache
that wraps the function for convenient use.
By default public access is revoked from both of these, just in case there are security issues lurking.
F.24.1. The
pg_buffercache
View
The definitions of the columns exposed by the view are shown in Table F-14.
Table F-14.
pg_buffercache
Columns
Name
Type
References
Description
bufferid
integer
ID, in the range
1..
shared_buffers
relfilenode
oid
pg_class.relfilenode
Filenode number of the
relation
reltablespace
oid
pg_tablespace.oid
Tablespace OID of the
relation
reldatabase
oid
pg_database.oid
Database OID of the
relation
relforknumber
smallint
Forknumber within the
relation; see
include/storage/relfilenode.h
relblocknumber
bigint
Page number within the
relation
isdirty
boolean
Is the page dirty?
2820
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
C# File: Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages; C# Read: PDF Image Extract; C# Write: Insert text into PDF; C# Write: Add Image to PDF;
add photo to pdf in preview; add image to pdf reader
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Reduce image resources: Since images are usually or large size, images size reducing can help to reduce PDF file size effectively.
how to add image to pdf; add image to pdf preview
Appendix F. Additional Supplied Modules
Name
Type
References
Description
usagecount
smallint
Clock-sweep access
count
There is one row for each buffer in the shared cache. Unused buffers are shown with all fields null
except
bufferid
.Shared system catalogs are shown as belonging to database zero.
Because the cache is shared by all the databases, there will normally be pages from relations not
belonging to the current database. This means that there may not be matching join rows in
pg_class
for some rows, or that there could even be incorrect joins. If you are tryingto join against
pg_class
,
it’s a good idea to restrict the join to rows having
reldatabase
equal to the current database’s OID
or zero.
When the
pg_buffercache
view is accessed, internal buffer manager locks are taken for long
enough to copy all the buffer state data that the view will display. This ensures that the view pro-
duces a consistent set of results, while not blocking normal buffer activity longer than necessary.
Nonetheless there could be some impact on database performance if this view is read often.
F.24.2. Sample Output
regression=# SELECT c.relname, count(
*
) AS buffers
FROM pg_buffercache b INNER JOIN pg_class c
ON b.relfilenode = pg_relation_filenode(c.oid) AND
b.reldatabase IN (0, (SELECT oid FROM pg_database
WHERE datname = current_database()))
GROUP BY c.relname
ORDER BY 2 DESC
LIMIT 10;
relname
| buffers
---------------------------------+---------
tenk2
|
345
tenk1
|
141
pg_proc
|
46
pg_class
|
45
pg_attribute
|
43
pg_class_relname_nsp_index
|
30
pg_proc_proname_args_nsp_index
|
28
pg_attribute_relid_attnam_index |
26
pg_depend
|
22
pg_depend_reference_index
|
20
(10 rows)
F.24.3. Authors
MarkKirkwood <
markir@paradise.net.nz
>
Design suggestions: Neil Conway <
neilc@samurai.com
>
Debuggingadvice: Tom Lane <
tgl@sss.pgh.pa.us
>
2821
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
RasterEdge .NET Image SDK has included a variety of image and document Add necessary references In addition, VB.NET users can append a PDF file to the end of a
how to add an image to a pdf; add an image to a pdf in preview
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Convert smooth lines to curves. Detect and merge image fragments. Flatten visible layers. C#.NET DLLs: Compress PDF Document. Add necessary references:
adding images to pdf; add image in pdf using java
Appendix F. Additional Supplied Modules
F.25. pgcrypto
The
pgcrypto
module provides cryptographic functions for PostgreSQL.
F.25.1. General Hashing Functions
F.25.1.1.
digest()
digest(data text, type text) returns bytea
digest(data bytea, type text) returns bytea
Computes a binary hash of the given
data
.
type
is the algorithm to use. Standard algorithms are
md5
,
sha1
,
sha224
,
sha256
,
sha384
and
sha512
.If
pgcrypto
was built with OpenSSL, more
algorithms are available, as detailed in Table F-18.
If you want the digest as a hexadecimal string, use
encode()
on the result. For example:
CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$
SELECT encode(digest($1, ’sha1’), ’hex’)
$$ LANGUAGE SQL STRICT IMMUTABLE;
F.25.1.2.
hmac()
hmac(data text, key text, type text) returns bytea
hmac(data bytea, key text, type text) returns bytea
Calculates hashed MAC for
data
with key
key
.
type
is the same as in
digest()
.
This is similar to
digest()
butthe hashcan only be recalculated knowingthe key. This prevents the
scenario of someone altering data and alsochanging the hash to match.
If the key is larger than the hash block size it will first be hashed and the result will be used as key.
F.25.2. Password Hashing Functions
The functions
crypt()
and
gen_salt()
are specifically designed for hashing passwords.
crypt()
does the hashing and
gen_salt()
prepares algorithm parameters for it.
The algorithms in
crypt()
differ from the usual MD5 or SHA1 hashing algorithms in the following
respects:
1. They are slow. As the amount of data is so small, this is the only way to make brute-forcing
passwords hard.
2. They use a random value, called the salt, so that users having the same password will have
different encryptedpasswords. This is alsoan additional defense against reversing the algorithm.
3. They include the algorithm type in the result, so passwords hashed with different algorithms can
co-exist.
2822
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
PDF document splitting, PDF page reordering and PDF page image and text Add necessary references: In addition, C# users can append a PDF file to the end of a
add image to pdf java; how to add image to pdf file
VB.NET PDF File Split Library: Split, seperate PDF into multiple
1). ' Create output PDF file path list Dim outputFilePaths As New List(Of String) Dim i As Integer For i = 0 To splitIndex.Length outputFilePaths.Add(Program
adding an image to a pdf file; add a picture to a pdf document
Appendix F. Additional Supplied Modules
4. Some of them are adaptive — that means when computers get faster, you can tune the algorithm
to be slower, without introducing incompatibility with existing passwords.
Table F-15 lists the algorithms supportedby the
crypt()
function.
Table F-15. Supported Algorithms for
crypt()
Algorithm
Max
Password
Length
Adaptive?
Salt Bits
Output
Length
Description
bf
72
yes
128
60
Blowfish-
based, variant
2a
md5
unlimited
no
48
34
MD5-based
crypt
xdes
8
yes
24
20
ExtendedDES
des
8
no
12
13
Original UNIX
crypt
F.25.2.1.
crypt()
crypt(password text, salt text) returns text
Calculates a crypt(3)-style hash of
password
. When storing a new password, you need to use
gen_salt()
to generate a new
salt
value. To check a password, pass the stored hash value as
salt
,and test whether the result matches the stored value.
Example of setting a newpassword:
UPDATE ... SET pswhash = crypt(’new password’, gen_salt(’md5’));
Example of authentication:
SELECT (pswhash = crypt(’entered password’, pswhash)) AS pswmatch FROM ... ;
This returns
true
if the entered password is correct.
F.25.2.2.
gen_salt()
gen_salt(type text [, iter_count integer ]) returns text
Generates a new random salt string for use in
crypt()
.The salt string also tells
crypt()
which
algorithm to use.
The
type
parameter specifies the hashing algorithm. The accepted types are:
des
,
xdes
,
md5
and
bf
.
The
iter_count
parameter lets the user specify the iteration count, for algorithms that have one.
The higher the count, the more time it takes to hash the password and therefore the more time to
break it. Although with too high a count the time to calculate a hash may be several years — which
is somewhat impractical. If the
iter_count
parameter is omitted, the default iteration countis used.
Allowed values for
iter_count
depend on the algorithm and are shownin Table F-16.
2823
Appendix F. Additional Supplied Modules
Table F-16. Iteration Counts for
crypt()
Algorithm
Default
Min
Max
xdes
725
1
16777215
bf
6
4
31
For
xdes
there is an additional limitation that the iteration count must be an odd number.
To pick an appropriate iteration count, consider that the original DES crypt was designed to have the
speed of 4 hashes per second on the hardware of that time. Slower than 4 hashes per second would
probably dampen usability. Faster than 100 hashes per second is probably too fast.
Table F-17 gives an overview of the relative slowness of different hashing algorithms. The table
shows how much time it would take to try all combinations of characters in an 8-character password,
assuming that the password contains either only lower case letters, or upper- and lower-case letters
and numbers. In the
crypt-bf
entries, the number after a slash is the
iter_count
parameter of
gen_salt
.
Table F-17. Hash Algorithm Speeds
Algorithm
Hashes/sec
For
[a-z]
For
[A-Za-z0-9]
Duration
relative to
md5
hash
crypt-bf/8
1792
4years
3927 years
100k
crypt-bf/7
3648
2years
1929 years
50k
crypt-bf/6
7168
1year
982 years
25k
crypt-bf/5
13504
188 days
521 years
12.5k
crypt-md5
171584
15 days
41 years
1k
crypt-des
23221568
157.5minutes
108 days
7
sha1
37774272
90 minutes
68 days
4
md5
(hash)
150085504
22.5 minutes
17 days
1
Notes:
The machine used is an Intel Mobile Core i3.
crypt-des
and
crypt-md5
algorithm numbers are taken from John the Ripper v1.6.38
-test
output.
md5 hash
numbers are from mdcrack 1.2.
sha1
numbers are from lcrack-20031130-beta.
crypt-bf
numbers are taken using a simple program that loops over 1000 8-character passwords.
That way I can show the speed with different numbers of iterations. For reference:
john -test
shows 213 loops/sec for
crypt-bf/5
.(The very small difference in results is in accordance with
the fact that the
crypt-bf
implementation in
pgcrypto
is the same one used in Johnthe Ripper.)
Note that “try all combinations” is not a realistic exercise. Usually password cracking is done with
the help of dictionaries, which contain both regular words and various mutations of them. So, even
somewhat word-like passwords could be cracked much faster than the above numbers suggest, while
a6-character non-word-like password may escape cracking. Or not.
2824
Appendix F. Additional Supplied Modules
F.25.3. PGP Encryption Functions
The functions here implement the encryption part of the OpenPGP (RFC 4880) standard. Supported
are both symmetric-key and public-key encryption.
An encrypted PGP message consists of 2 parts, or packets:
Packet containinga session key — either symmetric-key or public-key encrypted.
Packet containingdata encrypted with the session key.
When encrypting with a symmetric key (i.e., a password):
1. The given password is hashed using a String2Key (S2K) algorithm. This is rather similar to
crypt()
algorithms — purposefully slow and with random salt — but it produces a full-length
binary key.
2. If a separate session key is requested, a new random key will be generated. Otherwise the S2K
keywill be used directly as the session key.
3. If the S2K key is to be used directly, then only S2K settings will be put into the session key
packet. Otherwise the session key will be encrypted with the S2K key and put into the session
keypacket.
When encrypting with a public key:
1. A new random session key is generated.
2. It is encrypted using the public key andput into the session key packet.
In either case the data to be encrypted is processed as follows:
1. Optional data-manipulation: compression, conversion to UTF-8, and/or conversion of
line-endings.
2. The data is prefixed with a block of random bytes. This is equivalent to using a random IV.
3. An SHA1 hash of the random prefix and data is appended.
4. All this is encrypted with the session key and placed in the data packet.
F.25.3.1.
pgp_sym_encrypt()
pgp_sym_encrypt(data text, psw text [, options text ]) returns bytea
pgp_sym_encrypt_bytea(data bytea, psw text [, options text ]) returns bytea
Encrypt
data
with a symmetric PGP key
psw
.The
options
parameter can contain option settings,
as described below.
F.25.3.2.
pgp_sym_decrypt()
pgp_sym_decrypt(msg bytea, psw text [, options text ]) returns text
pgp_sym_decrypt_bytea(msg bytea, psw text [, options text ]) returns bytea
Decrypt a symmetric-key-encrypted PGP message.
Decrypting
bytea
data with
pgp_sym_decrypt
is disallowed. This is to avoid outputting invalid
character data. Decrypting originally textual data with
pgp_sym_decrypt_bytea
is fine.
2825
Appendix F. Additional Supplied Modules
The
options
parameter can contain option settings, as described below.
F.25.3.3.
pgp_pub_encrypt()
pgp_pub_encrypt(data text, key bytea [, options text ]) returns bytea
pgp_pub_encrypt_bytea(data bytea, key bytea [, options text ]) returns bytea
Encrypt
data
with a public PGP key
key
.Giving this functiona secret key will produce an error.
The
options
parameter can contain option settings, as described below.
F.25.3.4.
pgp_pub_decrypt()
pgp_pub_decrypt(msg bytea, key bytea [, psw text [, options text ]]) returns text
pgp_pub_decrypt_bytea(msg bytea, key bytea [, psw text [, options text ]]) returns bytea
Decrypt a public-key-encrypted message.
key
must be the secret key corresponding tothe public key
that was used to encrypt. If the secret key is password-protected, you must give the password in
psw
.
If there is no password, but you want to specify options, you need to give an empty password.
Decrypting
bytea
data with
pgp_pub_decrypt
is disallowed. This is to avoid outputting invalid
character data. Decrypting originally textual data with
pgp_pub_decrypt_bytea
is fine.
The
options
parameter can contain option settings, as described below.
F.25.3.5.
pgp_key_id()
pgp_key_id(bytea) returns text
pgp_key_id
extracts the key ID of a PGP public or secret key. Or it gives the key ID that was used
for encrypting the data, if given an encrypted message.
It can return 2 special key IDs:
SYMKEY
The message is encrypted with a symmetric key.
ANYKEY
The message is public-key encrypted, but the key ID has been removed. That means you will need
to try all your secretkeys on it tosee which one decrypts it.
pgcrypto
itself does not produce such
messages.
Note that different keys may have the same ID. This is rare but a normal event. The client application
should then try to decrypt with each one, to see which fits — like handling
ANYKEY
.
F.25.3.6.
armor()
,
dearmor()
armor(data bytea) returns text
dearmor(data text) returns bytea
These functions wrap/unwrap binary data into PGP ASCII-armor format, which is basically Base64
with CRC and additional formatting.
2826
Appendix F. Additional Supplied Modules
F.25.3.7. Options for PGP Functions
Options are named to be similar to GnuPG. An option’s value should be given after an equal sign;
separate options from eachother with commas. For example:
pgp_sym_encrypt(data, psw, ’compress-algo=1, cipher-algo=aes256’)
All of the options except
convert-crlf
apply only to encrypt functions. Decrypt functions get the
parameters from the PGP data.
The most interesting options are probably
compress-algo
and
unicode-mode
.The rest should
have reasonable defaults.
F.25.3.7.1. cipher-algo
Which cipher algorithm to use.
Values: bf, aes128, aes192, aes256 (OpenSSL-only:
3des
,
cast5
)
Default: aes128
Applies to: pgp_sym_encrypt, pgp_pub_encrypt
F.25.3.7.2. compress-algo
Which compression algorithm to use. Onlyavailable if PostgreSQL was built with zlib.
Values:
0- no compression
1- ZIP compression
2- ZLIB compression (= ZIP plus meta-data and block CRCs)
Default: 0
Applies to: pgp_sym_encrypt, pgp_pub_encrypt
F.25.3.7.3. compress-level
How much to compress. Higher levels compress smaller but are slower. 0 disables compression.
Values: 0, 1-9
Default: 6
Applies to: pgp_sym_encrypt, pgp_pub_encrypt
F.25.3.7.4. convert-crlf
Whether to convert
\n
into
\r\n
when encrypting and
\r\n
to
\n
when decrypting. RFC 4880
specifies that text data should be stored using
\r\n
line-feeds. Use this to get fully RFC-compliant
behavior.
Values: 0, 1
Default: 0
Applies to: pgp_sym_encrypt, pgp_pub_encrypt, pgp_sym_decrypt, pgp_pub_decrypt
2827
Documents you may be interested
Documents you may be interested