亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? asm.txt

?? 一個我自用的BLOWFISH源碼VC++環境.有不完善的地方還請各位大俠指點~!
?? TXT
字號:

                                    BF-SDK
                                    ~~~~~~
                                     V1.1

                              Assemblerinterface
                              ~~~~~~~~~~~~~~~~~~

                          (c) 1996 Cedric Reinartz


This documentation helps you to use the assembler interface in your own 
program. A typical program structure would be:

   - declaration of some variables
   - include BFE_ASM.INC
   - definition of your data (.DATA)
   - your code (.CODE) where you can use the BF-Macros

In the following only the first and last part will be explained. Please
have a look also in BFE_ASM.INC, BFENG386.ASM and ASM_DEMO.ASM to fully 
understand the code.

===============================================================================

VARIABLES
~~~~~~~~~


NOPUB

With this variable you can decide if BFENG386.ASM will be included or if
BFENG386.OBJ will be used. If "noPub" is not defined the functions in BFENG386
will be exported and you can (must) use BFENG386.OBJ. In this case you can not
influence the behavior of BFENG386 further.
Notice that BFENG386.OBJ which is shipped with this package is compiled with
defaults preset in BFENG386.ASM. If you want to use the OBJ with different
options you have to change the defaults and recompile.
An example for this kind of use is the generation of the pascal unit in this
package (BLOWFISH.TPU).
If "noPub" is defined (the value doesn't matter) you include BFENG386.ASM in
your own code. In this case there are variables which influence how 
BFENG386.ASM will be compiled:
Default: not defined

-------------------------------------------------------------------------------

USESMALL

If "useSmall" is not defined the .model large directive will be used. This
will result in CALLs generated as FAR by the assembler. If you want NEAR
CALLs (for speed reasons as example) you have to define "useSmall" (value
doesn't matter).
Default: not defined

-------------------------------------------------------------------------------

NOLOOP

If "noLOOP" is defined with the value "1" all the encryption rounds are placed
after each other. This is very memory consuming, but eliminates the need for
LOOPs and thus gives more speed. Any other value will generate a LOOP
construction which is much smaller and about 20% slower than the enrolled
version.
Use this for TSR's and device drivers which handle slow devices.
Note: This variable must be defined.
Default: 1

-------------------------------------------------------------------------------

RNDS

With "rnds" you can define how many rounds Blowfish should go. There
are 3 possible values:

       1:  There are always 16 Rounds to go
       2:  There are always 32 Rounds to go
       3:  You switch between 16 and 32 Rounds by software

The different values are all due to speed and memory reasons. A "3" is the most
flexible one. If 16 Rounds are set with "rnds equ 3" the code is a bit slower
and slightly bigger than using "rnds equ 1".
If you use "rnds equ 3" in conjunction with "noLOOP equ 0" you are able to set
the number of rounds from 2 to 32. Remember that the security enhances with a
increasing number of rounds (you should use at least 14), while the speed
decreases with increasing rounds.
Note: This variable must be defined.
Default: 3

===============================================================================

MACROS
~~~~~~


_InitCrypt seg,off,len

 Function   : Initialises the Boxes
 Argument   : seg: segment of the password
              off: offset of the password
              len: length of the password
 Return     : none
 Affects    : all but DS
 Description: A Password with a maximum of 56 Bytes is used to encrypt the
              Boxes. These encrypted boxes are vital for the further encryption
              process with _(CBC)Encrypt and _(CBC)Decrypt. If you want to
              change the password at runtime you have to restore the original
              contents of the boxes before you can use this function again 
              (See _GetBoxes and _SetBoxes).

-------------------------------------------------------------------------------

_WeakKey

 Function   : Test if the generated Boxes are weak
 Argument   : none
 Return     : AX = Status (1=weak, 0=good)
 Affects    : AX, BX, CX, DX, SI, DI, direction Flag
 Description: After "_InitCrypt" you should test the Boxes with this function.
              If they provide a weakness which a cryptoanalyst could use to
              break the cipher a "1" is returned. In this case you should
              reload the original boxes and let the user choose a different 
              password.

-------------------------------------------------------------------------------

_Encrypt seg,off,len

 Function   : Encrypts a plaintext string using the ECB method
 Argument   : seg: segment of the plaintext
              off: offset of the plaintext
              len: length of the plaintext
 Return     : none
 Affects    : all but DS
 Description: This function encrypts (multiple) blocks of 8 Bytes of plaintext
              using the ECB method (blocks are not chained). The generated 
              ciphertext will overwrite the plaintext. Thus the seg:off 
              argument will point to the ciphertext after the encryption. The 
              length of the plaintext must be a multiple of 8. If it is not,
              plaintext bytes will be left at the end of the ciphertext.

-------------------------------------------------------------------------------

_Decrypt seg,off,len

 Function   : Decrypts a ciphertext string using the ECB method
 Argument   : seg: segment of the ciphertext
              off: offset of the ciphertext
              len: length of the ciphertext
 Return     : none
 Affects    : all but DS
 Description: This function decrypts (multiple) blocks of 8 Bytes of cipher-
              text using the ECB method (blocks are not chained). The generated
              plaintext will overwrite the ciphertext. Thus the seg:off
              argument will point to the plaintext after the decryption. The 
              length of the ciphertext must be a multiple of 8. If it is not, 
              ciphertext bytes will be left at the end of the plaintext.

-------------------------------------------------------------------------------

_CBCEncrypt seg,off,len,segcl,offcl,segch,offch

 Function   : Encrypts a plaintext string using the CBC method
 Argument   : seg  : segment of the plaintext
              off  : offset of the plaintext
              len  : length of the plaintext
              segcl: segment of the IV (low DWord)
              offcl: offset of the IV (low DWord)
              segch: segment of the IV (high DWord)
              offch: offset of the IV (high DWord)
 Return     : none
 Affects    : all but DS
 Description: This function encrypts (multiple) blocks of 8 Bytes of plaintext
              using the CBC method (blocks are chained using an initialisation
              vector IV). The generated ciphertext will overwrite the plain-
              text. Thus the seg:off argument will point to the ciphertext 
              after the encryption. The length of the plaintext must be a
              multiple of 8. If it is not, plaintext bytes will be left at the
              end of the ciphertext. The IV must not be secret. For different
              encryptions you can choose the same IV but if possible you should
              use different ones to improve security. 
              Note: you need the original IV for decryption.

-------------------------------------------------------------------------------

_CBCDecrypt seg,off,len,segcl,offcl,segch,offch

 Function   : Decrypts a ciphertext string using the CBC method
 Argument   : seg  : segment of the ciphertext
              off  : offset of the ciphertext
              len  : length of the ciphertext
              segcl: segment of the IV (low DWord)
              offcl: offset of the IV (low DWord)
              segch: segment of the IV (high DWord)
              offch: offset of the IV (high DWord)
 Return     : none
 Affects    : all but DS
 Description: This function decrypts (multiple) blocks of 8 Bytes of ciphertext
              using the CBC method (blocks are chained using an initialisation
              vector IV). The generated plaintext will overwrite the cipher-
              text. Thus the seg:off argument will point to the plaintext 
              after the decryption. The length of the ciphertext must be a
              multiple of 8. If it is not, ciphertext bytes will be left at the
              end of the plaintext.
              Note: The IV is the same used on encryption.

-------------------------------------------------------------------------------

_ClearBoxes

 Function   : Clears the Boxes
 Argument   : none
 Return     : none
 Affects    : EAX, CX, DI
 Description: Clears the contents of the P- and S-Boxes. This should be used
              before you exit your program to make sure that no one can get
              your Key.

-------------------------------------------------------------------------------

_SetRounds rnds

 Function   : Set number of rounds. Returns number of rounds.
 Argument   : rnds: # of rounds = 16, 32 or 2-32. See variable RNDS
 Return     : AX = number of rounds
 Affects    : AX
 Description: You always have to give a Argument. If BFENG386.ASM was compiled
              with "rnds equ 3" you are able to set the number of rounds 
              between 2 and 32. This function always returns the number of
              rounds actual used. If you supply an invalid argument the
              default is used and returned. For more details see variable
              RNDS.

-------------------------------------------------------------------------------

_GetBoxes seg,off

 Function   : Copies the actual P- and S-Boxes to a user buffer
 Arguments  : seg: segment of the user buffer
              off: offset of the user buffer
 Return     : none
 Affects    : BX, CX, DX, SI, DI, direction flag
 Description: Use this to save the original Boxes. If you want to change the
              Password at runtime you have to restore these Boxes first. 
              You can also save the encrypted Boxes and restore them if needed.
              In this way you are able to swap Passwords at high speed.
              The needed buffer size is 1042 for rnds=1 and 1058 for rnds=2 or 
              rnds=3

-------------------------------------------------------------------------------

_SetBoxes seg,off

 Function   : Copies a user buffer to the P- and S-Boxes
 Arguments  : seg: segment of the user buffer
              off: offset of the user buffer
 Return     : none
 Affects    : BX, CX, DX, SI, DI, direction flag
 Description: Use this to restore the Boxes with previously saved ones.
              See description of "_GetBoxes".

-------------------------------------------------------------------------------

_GetBoxPointer

 Function   : Returns a Pointer to the beginning of PBox in DX:AX
 Arguments  : none
 Return     : DX:AX = pointer to the Boxes
 Affects    : AX, DX
 Description: If the _DATA segments are combined, DX will be the same as DS.
              For a reason I do not know DX:AX is sometimes wrong, so verify
              this! You can use this function to initialise DS


-eof -

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类小说一区二区三区| 亚洲动漫第一页| 欧美一区二区三区四区久久 | 制服丝袜国产精品| 91福利视频久久久久| 91成人看片片| 9191久久久久久久久久久| 91精品午夜视频| 日韩视频免费直播| 久久久亚洲欧洲日产国码αv| 久久综合久久综合九色| 国产欧美精品在线观看| 亚洲色图在线视频| 亚洲国产三级在线| 久久99精品网久久| 国产91对白在线观看九色| 91蜜桃视频在线| 欧美日韩色一区| 精品美女被调教视频大全网站| 精品国精品国产| 国产拍揄自揄精品视频麻豆| 亚洲欧美色综合| 日韩avvvv在线播放| 国产成人精品影视| 色综合久久久久| 欧美一区二区三区播放老司机 | av电影天堂一区二区在线观看| 91伊人久久大香线蕉| 88在线观看91蜜桃国自产| 久久欧美中文字幕| 一区二区三区四区乱视频| 麻豆91免费观看| 成人精品电影在线观看| 欧美精品乱人伦久久久久久| 久久久精品日韩欧美| 亚洲一区二区免费视频| 风流少妇一区二区| 欧美日韩国产乱码电影| 国产精品传媒入口麻豆| 日本成人在线看| 粉嫩av一区二区三区| 欧美二区在线观看| 一区二区三区免费| 国产一区二区三区香蕉| 欧美日韩一区在线观看| 国产精品国产三级国产普通话99| 日韩国产精品久久久久久亚洲| 成年人网站91| 久久这里只有精品视频网| 亚洲高清不卡在线| 99国产精品国产精品毛片| 精品国产不卡一区二区三区| 夜夜精品浪潮av一区二区三区| 国产成人免费在线观看不卡| 91精品国产免费| 亚洲一级在线观看| 91在线视频官网| 国产欧美日韩久久| 国产美女在线精品| 欧美精品一区二区三区蜜桃视频| 亚洲福利视频导航| 在线观看视频一区二区| 亚洲人吸女人奶水| av在线播放不卡| 国产精品欧美综合在线| 国产一区二区三区精品欧美日韩一区二区三区| 欧美性色黄大片| 亚洲在线观看免费视频| 在线观看www91| 亚洲日韩欧美一区二区在线| 成人av影院在线| 日本一区二区三区四区| 成人毛片视频在线观看| 国产欧美日韩综合| 成人视屏免费看| 亚洲三级视频在线观看| 色婷婷亚洲综合| 一区二区三区在线观看网站| 在线看一区二区| 亚洲国产综合人成综合网站| 欧美精品免费视频| 精品一区二区三区欧美| 久久久国产一区二区三区四区小说| 久久av老司机精品网站导航| 精品久久人人做人人爰| 国产福利一区二区三区视频在线| 日本一区二区在线不卡| 91香蕉视频在线| 亚洲一区二区在线免费看| 91精品国产品国语在线不卡| 另类小说综合欧美亚洲| 国产精品你懂的在线欣赏| 91国内精品野花午夜精品| 午夜视频一区二区| 久久天天做天天爱综合色| 成人免费看片app下载| 亚洲国产综合91精品麻豆| 日韩午夜精品视频| 成人黄页在线观看| 午夜久久久久久| 国产无人区一区二区三区| 91原创在线视频| 日日夜夜精品视频天天综合网| 久久女同性恋中文字幕| 色菇凉天天综合网| 精品无人码麻豆乱码1区2区 | 欧美视频日韩视频在线观看| 老司机免费视频一区二区三区| 国产亚洲综合性久久久影院| 在线视频国产一区| 国产美女av一区二区三区| 一区二区三区在线视频免费| 亚洲精品一区二区三区在线观看| 99re免费视频精品全部| 免费av网站大全久久| 国产精品久久久久久久浪潮网站| 在线电影一区二区三区| 成人性生交大片免费看视频在线| 午夜精品视频在线观看| 中文字幕综合网| 精品国产露脸精彩对白| 欧美日本一区二区三区| 99精品欧美一区二区三区综合在线| 免费成人美女在线观看.| 亚洲综合丝袜美腿| 国产精品久久二区二区| 26uuu国产日韩综合| 欧美午夜电影网| av在线一区二区三区| 国产成人在线色| 男男gaygay亚洲| 亚洲高清中文字幕| 一级女性全黄久久生活片免费| 国产女同互慰高潮91漫画| 亚洲精品一区二区三区四区高清| 欧美日韩免费高清一区色橹橹| www.欧美色图| 成人网在线播放| 国产91精品一区二区麻豆网站| 精品无人码麻豆乱码1区2区| 日本aⅴ精品一区二区三区| 亚洲bt欧美bt精品777| 亚洲主播在线观看| 亚洲高清免费一级二级三级| 一区二区三区精品视频在线| 伊人性伊人情综合网| 亚洲欧美偷拍卡通变态| 一区二区三区在线免费视频| 亚洲免费观看高清完整| 亚洲人成亚洲人成在线观看图片| 欧美激情在线一区二区三区| 国产亚洲欧美激情| 国产精品视频第一区| 日本一区二区三区久久久久久久久不| 久久综合一区二区| 久久日一线二线三线suv| 亚洲视频在线观看三级| 亚洲手机成人高清视频| 555夜色666亚洲国产免| 色婷婷激情一区二区三区| 91小视频免费观看| 欧美日韩视频在线第一区| 欧美一区二区三区免费大片 | 久久99国产精品免费网站| 狠狠色丁香久久婷婷综合丁香| 精品一区二区国语对白| 琪琪一区二区三区| 欧美四级电影在线观看| 午夜成人在线视频| 欧美二区乱c少妇| 麻豆国产精品官网| 亚洲综合免费观看高清完整版在线| 亚洲无人区一区| 美女性感视频久久| 成人午夜在线播放| 欧美三级一区二区| 欧美精品一区二区三区蜜桃视频 | 亚洲综合一二三区| 日韩制服丝袜先锋影音| 精品一区二区三区在线播放视频 | 777a∨成人精品桃花网| 欧美成人艳星乳罩| 中文字幕色av一区二区三区| 亚洲电影一级黄| 国产精品一区二区三区99| 91麻豆国产福利在线观看| 欧美日本视频在线| 亚洲国产精品传媒在线观看| 午夜不卡av在线| 成人久久视频在线观看| 欧美精品日日鲁夜夜添| 国产精品美女视频| 日本免费在线视频不卡一不卡二| 成人自拍视频在线| 日韩一区二区三区免费看 | 日本伊人色综合网| 国产精品69毛片高清亚洲| 欧美日韩中文一区| 亚洲欧洲美洲综合色网| 麻豆国产精品官网|