JavaTM 2 Platform
Standard Ed. 5.0

javax.crypto
Ŭ·¡½º CipherSpi

java.lang.Object 
  »óÀ§¸¦ È®Àå javax.crypto.CipherSpi

public abstract class CipherSpi
extends Object

ÀÌ Å¬·¡½º´Â Cipher Ŭ·¡½ºÀÇ Service Provider Interface (SPI)¸¦ Á¤ÀÇÇÕ´Ï´Ù. ƯÁ¤ÀÇ ¾ÏÈ£ ¾Ë°í¸®ÁòÀÇ ±¸ÇöÀ» Á¦°øÇÏ´Â °¢ ¾Ïȣȭ ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ´Â ÀÌ Å¬·¡½ºÀÇ ¸ðµç Ãß»ó ¸Þ¼­µå¸¦ ±¸ÇöÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

ÀÌ CipherSpi Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ĸ½¶È­ÇÏ´Â Cipher ÀνºÅϽº¸¦ »ý¼ºÇÏ·Á¸é, ¾îÇø®ÄÉÀ̼ÇÀº Cipher ¿£Áø Ŭ·¡½ºÀÇ getInstance ÆÑÅ丮 ¸Þ¼­µåÀÇ 1°³¸¦ È£ÃâÇØ, ¿ä±¸µÈ ¡¸º¯È¯¡¹À» ÁöÁ¤ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ÇÊ¿ä¿¡ µû¶ó¼­, ÇÁ·Î¹ÙÀÌ´õÀÇ À̸§À» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

¡¸º¯È¯¡¹À̶õ Ãâ·ÂÀ» »ý¼ºÇϱâ À§Çؼ­ ÁöÁ¤µÈ ÀԷ¿¡ ´ëÇؼ­ ½ÇÇàÇÏ´Â Á¶ÀÛ (¶Ç´Â ÀÏ·ÃÀÇ Á¶ÀÛ)À» ±â¼úÇϴ ij¸¯ÅÍ ¶óÀÎÀÔ´Ï´Ù. º¯È¯¿¡´Â Ç×»ó ¾Ïȣȭ ¾Ë°í¸®Áò¸í (DES µî)ÀÌ Æ÷ÇԵǾî ÀÖ¾î Çǵå¹é ¸ðµå¿Í Æеù ¹æ½ÄÀÌ ³ªÁß¿¡ °è¼ÓµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

º¯È¯ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.

ÈÄÀÚÀÇ °æ¿ì, ¸ðµå¿Í Æеù ¹æ½Ä¿¡ ´ëÇؼ­´Â ÇÁ·Î¹ÙÀÌ´õ °íÀ¯ÀÇ ±âº»°ªÀÌ »ç¿ëµË´Ï´Ù. À¯È¿ÇÑ º¯È¯ÀÇ ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.


     Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
 

ÇÁ·Î¹ÙÀÌ´õ´Â ¡¸¾Ë°í¸®Áò/¸ðµå/Æеù¡¹ÀÇ °¢ Æí¼º¿¡ ´ëÇؼ­ °³º°ÀÇ Å¬·¡½º¸¦ Á¦°øÇϵ簡 ȤÀº ¡¸¾Ë°í¸®Áò¡¹, ¡¸¾Ë°í¸®Áò/¸ðµå¡¹, ¶Ç´Â ¡¸¾Ë°í¸®Áò//Æеù¡¹ (ÀÌÁß slash¿¡ ÁÖÀÇ)¿¡ ´ëÀÀÇÏ´Â ¼­ºê º¯È¯À» ³ªÅ¸³»´Â °Íº¸´Ù ¹ü¿ëÀûÀΠŬ·¡½º¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù . ¹ü¿ëÀûÀΠŬ·¡½º¸¦ Á¦°øÇÏ´Â °æ¿ì, ¿ä±¸µÈ ¸ðµå³ª ÆеùÀº ÇÁ·Î¹ÙÀÌ´õÀÇ CipherSpi ¼­ºê Ŭ·¡½ºÀÇ engineSetMode ¹× engineSetPadding ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â Cipher getInstance ¸Þ¼­µå¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î ¼³Á¤µË´Ï´Ù.

ÇÁ·Î¹ÙÀÌ´õÀÇ ¸¶½ºÅÍ Å¬·¡½º³»ÀÇ Cipher ÇÁ·ÎÆÛƼÀÇ Çü½ÄÀº ´ÙÀ½ÀÇ ¾î¶² °ÍÀΰ¡°¡ µË´Ï´Ù.

¿¹¸¦ µé¾î ÇÁ·Î¹ÙÀÌ´õ´Â DES/ECB/PKCS5Padding, DES/CBC/PKCS5Padding, DES/CFB/PKCS5Padding ¹× DES/OFB/PKCS5Padding¸¦ °¢°¢ ±¸ÇöÇÏ´Â CipherSpi ¼­ºê Ŭ·¡½º¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ±× ÇÁ·Î¹ÙÀÌ´õ¿¡´Â ¸¶½ºÅÍ Å¬·¡½º¿¡ ´ÙÀ½ÀÇ Cipher ÇÁ·ÎÆÛƼ°¡ ÀÖ½À´Ï´Ù.

´Ù¸¥ ÇÁ·Î¹ÙÀÌ´õ´Â »ó±âÀÇ °¢ ¸ðµå¿ëÀÇ Å¬·¡½º (Áï, ECB, CBC, CFB ¹×OFB °¢°¢ 1°³ÀÇ Å¬·¡½º), PKCS5Padding¿ëÀÇ Å¬·¡½º ¹× CipherSpi·Î ºÎÅÍ »ó¼Ó µÇ´Â ¹ü¿ë DES Ŭ·¡½º¸¦ ±¸ÇöÇÏ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ±× ÇÁ·Î¹ÙÀÌ´õ¿¡´Â ¸¶½ºÅÍ Å¬·¡½º¿¡ ´ÙÀ½ÀÇ Cipher ÇÁ·ÎÆÛƼ°¡ ÀÖ½À´Ï´Ù.

Cipher ¿£Áø Ŭ·¡½ºÀÇ getInstance ÆÑÅ丮 ¸Þ¼­µå´Â ¡¸¾Ë°í¸®Áò¡¹ÀÇ Çü½ÄÀÇ º¯È¯À» À§ÇÑ CipherSpi ÇÁ·Î¹ÙÀÌ´õÀÇ ±¸ÇöÀ» ÀνºÅϽºÈ­Çϱâ À§Çؼ­ ´ÙÀ½ÀÇ ±ÔÄ¢¿¡ µû¸¨´Ï´Ù.

  1. ÁöÁ¤µÈ ¡¸¾Ë°í¸®Áò¡¹ÀÇ CipherSpi ¼­ºê Ŭ·¡½º¸¦ ÇÁ·Î¹ÙÀÌ´õ°¡ µî·ÏÇÏ°í ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÑ´Ù

    ´ë´äÀÌ YESÀÎ °æ¿ì´Â ÀÌ Å¬·¡½º¸¦ ÀνºÅϽºÈ­ÇÕ´Ï´Ù. ¸ðµå ¹× Æеù ¹æ½ÄÀº µðÆúÆ®ÀÇ °ª (ÇÁ·Î¹ÙÀÌ´õ°¡ Á¦°ø)À» »ç¿ëÇÕ´Ï´Ù.

    ´ë´äÀÌ NOÀÎ °æ¿ì´Â NoSuchAlgorithmException ¿¹¿Ü¸¦ Throw ÇÕ´Ï´Ù.

Cipher ¿£Áø Ŭ·¡½ºÀÇ getInstance ÆÑÅ丮 ¸Þ¼­µå´Â ¡¸¾Ë°í¸®Áò/¸ðµå/Æеù¡¹ÀÇ Çü½ÄÀÇ º¯È¯À» À§ÇÑ CipherSpi ÇÁ·Î¹ÙÀÌ´õÀÇ ±¸ÇöÀ» ÀνºÅϽºÈ­Çϱâ À§Çؼ­ ´ÙÀ½ÀÇ ±ÔÄ¢¿¡ µû¸¨´Ï´Ù.

  1. ÁöÁ¤µÈ ¡¸¾Ë°í¸®Áò/¸ðµå/Æеù¡¹º¯È¯ÀÇ CipherSpi ¼­ºê Ŭ·¡½º¸¦ ÇÁ·Î¹ÙÀÌ´õ°¡ µî·ÏÇÏ°í ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÑ´Ù

    ´ë´äÀÌ YESÀÎ °æ¿ì´Â ÀνºÅϽºÈ­ÇÕ´Ï´Ù.

    ´ë´äÀÌ NOÀÎ °æ¿ì´Â ´ÙÀ½ÀÇ ½ºÅÜ¿¡ ÁøÇàµË´Ï´Ù.

  2. ¼­ºê º¯È¯ ¡¸¾Ë°í¸®Áò/¸ðµå¡¹ÀÇ CipherSpi ¼­ºê Ŭ·¡½º¸¦ ÇÁ·Î¹ÙÀÌ´õ°¡ µî·ÏÇÏ°í ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÑ´Ù

    ´ë´äÀÌ YESÀÎ °æ¿ì´Â ÀνºÅϽºÈ­ÇØ, »õ·Î¿î ÀνºÅϽº·Î engineSetPadding(padding)¸¦ È£ÃâÇÕ´Ï´Ù.

    ´ë´äÀÌ NOÀÎ °æ¿ì´Â ´ÙÀ½ÀÇ ½ºÅÜ¿¡ ÁøÇàµË´Ï´Ù.

  3. ¼­ºê º¯È¯ ¡¸¾Ë°í¸®Áò//Æеù¡¹(ÀÌÁß slash¿¡ ÁÖÀÇ)ÀÇ CipherSpi ¼­ºê Ŭ·¡½º¸¦ ÇÁ·Î¹ÙÀÌ´õ°¡ µî·ÏÇÏ°í ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÑ´Ù

    ´ë´äÀÌ YESÀÎ °æ¿ì´Â ÀνºÅϽºÈ­ÇØ, »õ·Î¿î ÀνºÅϽº·Î engineSetMode(mode)¸¦ È£ÃâÇÕ´Ï´Ù.

    ´ë´äÀÌ NOÀÎ °æ¿ì´Â ´ÙÀ½ÀÇ ½ºÅÜ¿¡ ÁøÇàµË´Ï´Ù.

  4. ¼­ºê º¯È¯ ¡¸¾Ë°í¸®Áò¡¹ÀÇ CipherSpi ¼­ºê Ŭ·¡½º¸¦ ÇÁ·Î¹ÙÀÌ´õ°¡ µî·ÏÇÏ°í ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÑ´Ù

    ´ë´äÀÌ YESÀÎ °æ¿ì´Â ÀνºÅϽºÈ­ÇØ, »õ·Î¿î ÀνºÅϽº·Î engineSetMode(mode) ¹× engineSetPadding(padding)¸¦ È£ÃâÇÕ´Ï´Ù.

    ´ë´äÀÌ NOÀÎ °æ¿ì´Â NoSuchAlgorithmException ¿¹¿Ü¸¦ Throw ÇÕ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
KeyGenerator, SecretKey

»ý¼ºÀÚ °³¿ä
CipherSpi ()
           
 
¸Þ¼­µå °³¿ä
protected abstract  byte[] engineDoFinal (byte[] input, int inputOffset, int inputLen)
          ´ÜÀÏÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ¸·Î µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ ÇÏ´ÂÁö, º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ» Á¾·áÇÕ´Ï´Ù.
protected abstract  int engineDoFinal (byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset)
          ´ÜÀÏÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ¸·Î µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ ÇÏ´ÂÁö, º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ» Á¾·áÇÕ´Ï´Ù.
protected  int engineDoFinal (ByteBuffer  input, ByteBuffer  output)
          ´ÜÀÏÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ¸·Î µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ ÇÏ´ÂÁö, º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ» Á¾·áÇÕ´Ï´Ù.
protected abstract  int engineGetBlockSize ()
          ºí·Ï »çÀÌÁ ¸®ÅÏÇÕ´Ï´Ù (¹ÙÀÌÆ® ´ÜÀ§).
protected abstract  byte[] engineGetIV ()
          »õ·Î¿î ¹öÆÛÀÇ ÃʱâÈ­ º¤ÅÍ (IV)¸¦ ¸®ÅÏÇÕ´Ï´Ù.
protected  int engineGetKeySize (Key  key)
          ÁöÁ¤µÈ Å° °´Ã¼ÀÇ Å° »çÀÌÁ ºñÆ® ´ÜÀ§·Î ¸®ÅÏÇÕ´Ï´Ù.
protected abstract  int engineGetOutputSize (int inputLen)
          ÀÔ·ÂÀÇ ±æÀÌ inputLen (¹ÙÀÌÆ® ´ÜÀ§)¸¦ ÁöÁ¤ÇØ, ´ÙÀ½ÀÇ update ¶Ç´Â doFinal Á¶ÀÛÀÇ °á°ú¸¦ º¸°ü À¯ÁöÇϱâ À§Çؼ­ ÇÊ¿äÇÑ Ãâ·Â ¹öÆÛÀÇ ±æÀ̸¦ ¹ÙÀÌÆ®¼ö·Î ¸®ÅÏÇÕ´Ï´Ù.
protected abstract  AlgorithmParameters engineGetParameters ()
          ÀÌ ¾ÏÈ£·Î »ç¿ëµÇ´Â ÆĶó¹ÌÅ͸¦ ¸®ÅÏÇÕ´Ï´Ù.
protected abstract  void engineInit (int opmode, Key  key, AlgorithmParameterSpec  params, SecureRandom  random)
          Å°, ¾Ë°í¸®Áò ÆĶó¹ÌÅͼ¼Æ® ¹× ³­¼öÀÇ ¹ß»ý¿øÀ» »ç¿ëÇØ ÀÌ ¾ÏÈ£¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
protected abstract  void engineInit (int opmode, Key  key, AlgorithmParameters  params, SecureRandom  random)
          Å°, ¾Ë°í¸®Áò ÆĶó¹ÌÅͼ¼Æ® ¹× ³­¼öÀÇ ¹ß»ý¿øÀ» »ç¿ëÇØ ÀÌ ¾ÏÈ£¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
protected abstract  void engineInit (int opmode, Key  key, SecureRandom  random)
          Å°¿Í ³­¼öÀÇ ¹ß»ý¿øÀ» »ç¿ëÇØ ÀÌ ¾ÏÈ£¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
protected abstract  void engineSetMode (String  mode)
          ÀÌ ¾ÏÈ£ÀÇ ¸ðµå¸¦ ¼³Á¤ÇÕ´Ï´Ù.
protected abstract  void engineSetPadding (String  padding)
          ÀÌ ¾ÏÈ£ÀÇ Æеù µµ±¸¸¦ ¼³Á¤ÇÕ´Ï´Ù.
protected  Key engineUnwrap (byte[] wrappedKey, String  wrappedKeyAlgorithm, int wrappedKeyType)
          Àü¿¡ ·¦ µÈ Å°¸¦ ·¦ ÇØÁ¦ÇÕ´Ï´Ù.
protected abstract  byte[] engineUpdate (byte[] input, int inputOffset, int inputLen)
          º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¾Ïȣȭ ¶Ç´Â º¹È£È­ Á¶ÀÛ (ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­ ¹æ¹ý¿¡ ÀÇÇØ ´Ù¸£´Ù)À» °è¼ÓÇØ, ´Ù¸¥ µ¥ÀÌÅÍ ºÎºÐÀ» ó¸®ÇÕ´Ï´Ù.
protected abstract  int engineUpdate (byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset)
          º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¾Ïȣȭ ¶Ç´Â º¹È£È­ Á¶ÀÛ (ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­ ¹æ¹ý¿¡ ÀÇÇØ ´Ù¸£´Ù)À» °è¼ÓÇØ, ´Ù¸¥ µ¥ÀÌÅÍ ºÎºÐÀ» ó¸®ÇÕ´Ï´Ù.
protected  int engineUpdate (ByteBuffer  input, ByteBuffer  output)
          º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¾Ïȣȭ ¶Ç´Â º¹È£È­ Á¶ÀÛ (ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­ ¹æ¹ý¿¡ ÀÇÇØ ´Ù¸£´Ù)À» °è¼ÓÇØ, ´Ù¸¥ µ¥ÀÌÅÍ ºÎºÐÀ» ó¸®ÇÕ´Ï´Ù.
protected  byte[] engineWrap (Key  key)
          Å°¸¦ ·¦ ÇÕ´Ï´Ù.
 
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

»ý¼ºÀÚ »ó¼¼

CipherSpi

public CipherSpi()
¸Þ¼­µåÀÇ »ó¼¼

engineSetMode

protected abstract void engineSetMode(String  mode)
                               throws NoSuchAlgorithmException 
ÀÌ ¾ÏÈ£ÀÇ ¸ðµå¸¦ ¼³Á¤ÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
mode - ¾Ïȣȭ ¸ðµå
¿¹¿Ü:
NoSuchAlgorithmException - ¿ä±¸µÈ ¾Ïȣȭ ¸ðµå°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì

engineSetPadding

protected abstract void engineSetPadding(String  padding)
                                  throws NoSuchPaddingException 
ÀÌ ¾ÏÈ£ÀÇ Æеù µµ±¸¸¦ ¼³Á¤ÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
padding - Æеù µµ±¸
¿¹¿Ü:
NoSuchPaddingException - ¿ä±¸µÈ Æеù µµ±¸°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì

engineGetBlockSize

protected abstract int engineGetBlockSize()
ºí·Ï »çÀÌÁ ¸®ÅÏÇÕ´Ï´Ù (¹ÙÀÌÆ® ´ÜÀ§).

¹Ýȯ°ª:
ºí·Ï »çÀÌÁî (¹ÙÀÌÆ® ´ÜÀ§). ±âº»ÀÌ µÇ´Â ¾Ë°í¸®ÁòÀÌ ºí·Ï ¾ÏÈ£°¡ ¾Æ´Ñ °æ¿ì´Â 0

engineGetOutputSize

protected abstract int engineGetOutputSize(int inputLen)
ÀÔ·ÂÀÇ ±æÀÌ inputLen (¹ÙÀÌÆ® ´ÜÀ§)¸¦ ÁöÁ¤ÇØ, ´ÙÀ½ÀÇ update ¶Ç´Â doFinal Á¶ÀÛÀÇ °á°ú¸¦ º¸°ü À¯ÁöÇϱâ À§Çؼ­ ÇÊ¿äÇÑ Ãâ·Â ¹öÆÛÀÇ ±æÀ̸¦ ¹ÙÀÌÆ®¼ö·Î ¸®ÅÏÇÕ´Ï´Ù.

ÀÌ È£Ãâ¿¡¼­´Â ÀÌÀüÀÇ update È£ÃâÀÇ Ã³¸®µÇ¾î ÀÖÁö ¾ÊÀº (¹öÆÛ¿¡ ÀÖ´Ù) µ¥ÀÌÅ͸¦ °í·ÁÇØ, Æеù ÇÕ´Ï´Ù.

´ÙÀ½ÀÇ update ¶Ç´Â doFinal È£ÃâÀÇ ½ÇÁ¦ÀÇ Ãâ·ÂÀåÀº ÀÌ ¸Þ¼­µå°¡ µ¹·ÁÁÖ´Â ±æÀ̺¸´Ù ÀÛÀº ÀÏÀÌ ÀÖ½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
inputLen - ÀÔ·ÂÀå (¹ÙÀÌÆ® ´ÜÀ§)
¹Ýȯ°ª:
ÇÊ¿äÇÑ Ãâ·Â ¹öÆÛ »çÀÌÁî (¹ÙÀÌÆ® ´ÜÀ§)

engineGetIV

protected abstract byte[] engineGetIV()
»õ·Î¿î ¹öÆÛÀÇ ÃʱâÈ­ º¤ÅÍ (IV)¸¦ ¸®ÅÏÇÕ´Ï´Ù.

ÀÌ°ÍÀº IV°¡ »ç¿ëÀÚ ÁöÁ¤ÀÇ Æнº ÇÁ·¹ÀÌÁî·ÎºÎÅÍ ÆÄ»ýÇÏ´Â Æнº¿öµå º£À̽ºÀÇ ¾Ïȣȭ ¶Ç´Â º¹È£È­ÀÇ ÄÁÅؽºÆ®¿¡ ´ëÇØ µµ¿òÀÌ µË´Ï´Ù.

¹Ýȯ°ª:
»õ·Î¿î ¹öÆÛ³»ÀÇ ÃʱâÈ­ º¤ÅÍ. ±âº»ÀÌ µÇ´Â ¾Ë°í¸®ÁòÀÌ IV¸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì, ¶Ç´Â IV°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â null

engineGetParameters

protected abstract AlgorithmParameters  engineGetParameters()
ÀÌ ¾ÏÈ£·Î »ç¿ëµÇ´Â ÆĶó¹ÌÅ͸¦ ¸®ÅÏÇÕ´Ï´Ù.

¸®ÅÏµÈ ÆĶó¹ÌÅÍ´Â ÀÌ ¾ÏÈ£¸¦ ÃʱâÈ­Çϴµ¥ »ç¿ëÇÑ °Í°ú °°Àº °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¶Ç´Â ¸®ÅÏµÈ ÆĶó¹ÌÅÍ¿¡´Â ÀÌ ¾ÏÈ£¿¡ ¾Ë°í¸®Áò ÆĶó¹ÌÅÍ°¡ ÇÊ¿äÇØ, ÇÑÆí ¾Ë°í¸®Áò ÆĶó¹ÌÅÍ·Î ÃʱâÈ­µÇÁö ¾Ê¾Ò´ø °æ¿ì¿¡ ±âº»ÀÌ µÇ´Â ¾ÏÈ£ ±¸ÇöÀ¸·Î »ç¿ëµÇ´Â µðÆúÆ®¿Í ·£´ýÀÇ ÆĶó¹ÌÅÍ°ªÀÇ Æí¼ºÀÌ Æ÷ÇԵǴ Àϵµ ÀÖ½À´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¾ÏÈ£·Î »ç¿ëµÇ´Â ÆĶó¹ÌÅÍ. ÀÌ ¾ÏÈ£·Î ÆĶó¹ÌÅ͸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì´Â null

engineInit

protected abstract void engineInit(int opmode,
                                   Key  key,
                                   SecureRandom  random)
                            throws InvalidKeyException 
Å°¿Í ³­¼öÀÇ ¹ß»ý¿øÀ» »ç¿ëÇØ ÀÌ ¾ÏÈ£¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.

ÀÌ ¾ÏÈ£´Â opmode°ª¿¡ µû¶ó, ¾Ïȣȭ, º¹È£È­, Å° ·¦ÇÎ, ¶Ç´Â Å° ·¦ÇÎ ÇØÁ¦ÀÇ 4°³ÀÇ Á¶ÀÛÀÇ 1°³¿¡ ¸ÂÃß¾î ÃʱâÈ­µË´Ï´Ù.

ÀÌ ¾ÏÈ£°¡ ÁöÁ¤µÈ key·Î ºÎÅÍ ÆÄ»ýÇÒ ¼ö ¾ø´Â ¾Ë°í¸®Áò ÆĶó¹ÌÅ͸¦ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì, ±âº»ÀÌ µÇ´Â ¾ÏÈ£ ±¸ÇöÀº ¾Ïȣȭ ¶Ç´Â Å° ·¦ÇοëÀ¸·Î ÃʱâÈ­µÇ°í ÀÖÀ¸¸é, ÇÁ·Î¹ÙÀÌ´õ °íÀ¯ÀÇ µðÆúÆ® ¶Ç´Â ·£´ýÄ¡¸¦ »ç¿ëÇØ ÇÊ¿äÇÑ ÆĶó¹ÌÅÍ ÀÚü¸¦ »ý¼ºÇØ, º¹È£È­ ¶Ç´Â Å° ·¦ÇÎ ÇØÁ¦¿ëÀ¸·Î ÃʱâÈ­µÇ°í ÀÖÀ¸¸é, InvalidKeyExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù. »ý¼ºµÈ ÆĶó¹ÌÅÍ´Â engineGetParameters ¶Ç´Â engineGetIV (ÆĶó¹ÌÅÍ°¡ IVÀÎ °æ¿ì)¸¦ »ç¿ëÇØ ²¨³¾ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÀÌ ¾ÏÈ£ (±âº»ÀÌ µÇ´Â Çǵå¹é ¶Ç´Â Æеù ¹æ½ÄÀ» Æ÷ÇÔÇÑ´Ù)°¡ ³­¼ö ¹ÙÀÌÆ®¸¦ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì (¿¹¸¦ µé¾î ÆĶó¹ÌÅÍ »ý¼ºÀ» À§ÇØ)´Â random·Î ºÎÅÍ ÃëµæÇÕ´Ï´Ù.

Cipher °´Ã¼°¡ ÃʱâÈ­µÇ¸é, ÀÌÀü¿¡ ÃëµæÇÑ »óÅ´ ¸ðµÎ ¾ø¾îÁý´Ï´Ù. Áï, Cipher¸¦ ÃʱâÈ­ÇÏ´Â °ÍÀº ±× Cipher »õ·Î¿î ÀνºÅϽº¸¦ ÀÛ¼ºÇØ ÃʱâÈ­ÇÏ´Â °Í°ú °°½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
opmode - ÀÌ ¾ÏÈ£ÀÇ Á¶ÀÛ ¸ðµå (ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE, ¶Ç´Â UNWRAP_MODE ¾î¶² °ÍÀ̳ª)
key - ¾ÏȣȭŰ
random - ³­¼öÀÇ ¼Ò½º
¿¹¿Ü:
InvalidKeyException - ÁöÁ¤µÈ Å°°¡ ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­¿¡ ºÎÀûÀýÇÑ °æ¿ì, ¶Ç´Â ÀÌ ¾ÏÈ£°¡ º¹È£È­¿ëÀ¸·Î ÃʱâÈ­µÇ¾î ÁöÁ¤µÈ Å°·ÎºÎÅÍ ÆÇÁ¤ÇÒ ¼ö°¡ ¾ø´Â ¾Ë°í¸®Áò ÆĶó¹ÌÅ͸¦ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì

engineInit

protected abstract void engineInit(int opmode,
                                   Key  key,
                                   AlgorithmParameterSpec  params,
                                   SecureRandom  random)
                            throws InvalidKeyException,

                                   InvalidAlgorithmParameterException 
Å°, ¾Ë°í¸®Áò ÆĶó¹ÌÅͼ¼Æ® ¹× ³­¼öÀÇ ¹ß»ý¿øÀ» »ç¿ëÇØ ÀÌ ¾ÏÈ£¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.

ÀÌ ¾ÏÈ£´Â opmode°ª¿¡ µû¶ó, ¾Ïȣȭ, º¹È£È­, Å° ·¦ÇÎ, ¶Ç´Â Å° ·¦ÇÎ ÇØÁ¦ÀÇ 4°³ÀÇ Á¶ÀÛÀÇ 1°³¿¡ ¸ÂÃß¾î ÃʱâÈ­µË´Ï´Ù.

ÀÌ ¾ÏÈ£°¡ ¾Ë°í¸®Áò ÆĶó¹ÌÅ͸¦ ÇÊ¿ä·Î ÇØ, params°¡ nullÀÎ °æ¿ì, ±âº»ÀÌ µÇ´Â ¾ÏÈ£ ±¸ÇöÀº ¾Ïȣȭ ¶Ç´Â Å° ·¦ÇοëÀ¸·Î ÃʱâÈ­µÇ°í ÀÖÀ¸¸é, ÇÁ·Î¹ÙÀÌ´õ °íÀ¯ÀÇ µðÆúÆ® ¶Ç´Â ·£´ýÄ¡¸¦ »ç¿ëÇØ ÇÊ¿äÇÑ ÆĶó¹ÌÅÍ ÀÚü¸¦ »ý¼ºÇØ, º¹È£È­ ¶Ç´Â Å° ·¦ÇÎ ÇØÁ¦¿ëÀ¸·Î ÃʱâÈ­µÇ°í ÀÖÀ¸¸é, InvalidAlgorithmParameterExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù. »ý¼ºµÈ ÆĶó¹ÌÅÍ´Â engineGetParameters ¶Ç´Â engineGetIV (ÆĶó¹ÌÅÍ°¡ IVÀÎ °æ¿ì)¸¦ »ç¿ëÇØ ²¨³¾ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÀÌ ¾ÏÈ£ (±âº»ÀÌ µÇ´Â Çǵå¹é ¶Ç´Â Æеù ¹æ½ÄÀ» Æ÷ÇÔÇÑ´Ù)°¡ ³­¼ö ¹ÙÀÌÆ®¸¦ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì (¿¹¸¦ µé¾î ÆĶó¹ÌÅÍ »ý¼ºÀ» À§ÇØ)´Â random·Î ºÎÅÍ ÃëµæÇÕ´Ï´Ù.

Cipher °´Ã¼°¡ ÃʱâÈ­µÇ¸é, ÀÌÀü¿¡ ÃëµæÇÑ »óÅ´ ¸ðµÎ ¾ø¾îÁý´Ï´Ù. Áï, Cipher¸¦ ÃʱâÈ­ÇÏ´Â °ÍÀº ±× Cipher »õ·Î¿î ÀνºÅϽº¸¦ ÀÛ¼ºÇØ ÃʱâÈ­ÇÏ´Â °Í°ú °°½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
opmode - ÀÌ ¾ÏÈ£ÀÇ Á¶ÀÛ ¸ðµå (ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE, ¶Ç´Â UNWRAP_MODE ¾î¶² °ÍÀ̳ª)
key - ¾ÏȣȭŰ
params - ¾Ë°í¸®Áò ÆĶó¹ÌÅÍ
random - ³­¼öÀÇ ¼Ò½º
¿¹¿Ü:
InvalidKeyException - ÁöÁ¤µÈ Å°°¡ ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­¿¡ ºÎÀûÀýÇÑ °æ¿ì
InvalidAlgorithmParameterException - ÁöÁ¤µÈ ¾Ë°í¸®Áò ÆĶó¹ÌÅÍ°¡ ÀÌ ¾ÏÈ£¿¡ ºÎÀûÀýÇÑ °æ¿ì, ¶Ç´Â ÀÌ ¾ÏÈ£°¡ º¹È£È­¿ëÀ¸·Î ÃʱâÈ­µÇ¾î ¾Ë°í¸®Áò ÆĶó¹ÌÅ͸¦ ÇÊ¿ä·Î ÇØ, params°¡ nullÀÎ °æ¿ì

engineInit

protected abstract void engineInit(int opmode,
                                   Key  key,
                                   AlgorithmParameters  params,
                                   SecureRandom  random)
                            throws InvalidKeyException,

                                   InvalidAlgorithmParameterException 
Å°, ¾Ë°í¸®Áò ÆĶó¹ÌÅͼ¼Æ® ¹× ³­¼öÀÇ ¹ß»ý¿øÀ» »ç¿ëÇØ ÀÌ ¾ÏÈ£¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.

ÀÌ ¾ÏÈ£´Â opmode°ª¿¡ µû¶ó, ¾Ïȣȭ, º¹È£È­, Å° ·¦ÇÎ, ¶Ç´Â Å° ·¦ÇÎ ÇØÁ¦ÀÇ 4°³ÀÇ Á¶ÀÛÀÇ 1°³¿¡ ¸ÂÃß¾î ÃʱâÈ­µË´Ï´Ù.

ÀÌ ¾ÏÈ£°¡ ¾Ë°í¸®Áò ÆĶó¹ÌÅ͸¦ ÇÊ¿ä·Î ÇØ, params°¡ nullÀÎ °æ¿ì, ±âº»ÀÌ µÇ´Â ¾ÏÈ£ ±¸ÇöÀº ¾Ïȣȭ ¶Ç´Â Å° ·¦ÇοëÀ¸·Î ÃʱâÈ­µÇ°í ÀÖÀ¸¸é, ÇÁ·Î¹ÙÀÌ´õ °íÀ¯ÀÇ µðÆúÆ® ¶Ç´Â ·£´ýÄ¡¸¦ »ç¿ëÇØ ÇÊ¿äÇÑ ÆĶó¹ÌÅÍ ÀÚü¸¦ »ý¼ºÇØ, º¹È£È­ ¶Ç´Â Å° ·¦ÇÎ ÇØÁ¦¿ëÀ¸·Î ÃʱâÈ­µÇ°í ÀÖÀ¸¸é, InvalidAlgorithmParameterExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù. »ý¼ºµÈ ÆĶó¹ÌÅÍ´Â engineGetParameters ¶Ç´Â engineGetIV (ÆĶó¹ÌÅÍ°¡ IVÀÎ °æ¿ì)¸¦ »ç¿ëÇØ ²¨³¾ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÀÌ ¾ÏÈ£ (±âº»ÀÌ µÇ´Â Çǵå¹é ¶Ç´Â Æеù ¹æ½ÄÀ» Æ÷ÇÔÇÑ´Ù)°¡ ³­¼ö ¹ÙÀÌÆ®¸¦ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì (¿¹¸¦ µé¾î ÆĶó¹ÌÅÍ »ý¼ºÀ» À§ÇØ)´Â random·Î ºÎÅÍ ÃëµæÇÕ´Ï´Ù.

Cipher °´Ã¼°¡ ÃʱâÈ­µÇ¸é, ÀÌÀü¿¡ ÃëµæÇÑ »óÅ´ ¸ðµÎ ¾ø¾îÁý´Ï´Ù. Áï, Cipher¸¦ ÃʱâÈ­ÇÏ´Â °ÍÀº ±× Cipher »õ·Î¿î ÀνºÅϽº¸¦ ÀÛ¼ºÇØ ÃʱâÈ­ÇÏ´Â °Í°ú °°½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
opmode - ÀÌ ¾ÏÈ£ÀÇ Á¶ÀÛ ¸ðµå (ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE, ¶Ç´Â UNWRAP_MODE ¾î¶² °ÍÀ̳ª)
key - ¾ÏȣȭŰ
params - ¾Ë°í¸®Áò ÆĶó¹ÌÅÍ
random - ³­¼öÀÇ ¼Ò½º
¿¹¿Ü:
InvalidKeyException - ÁöÁ¤µÈ Å°°¡ ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­¿¡ ºÎÀûÀýÇÑ °æ¿ì
InvalidAlgorithmParameterException - ÁöÁ¤µÈ ¾Ë°í¸®Áò ÆĶó¹ÌÅÍ°¡ ÀÌ ¾ÏÈ£¿¡ ºÎÀûÀýÇÑ °æ¿ì, ¶Ç´Â ÀÌ ¾ÏÈ£°¡ º¹È£È­¿ëÀ¸·Î ÃʱâÈ­µÇ¾î ¾Ë°í¸®Áò ÆĶó¹ÌÅ͸¦ ÇÊ¿ä·Î ÇØ, params°¡ nullÀÎ °æ¿ì

engineUpdate

protected abstract byte[] engineUpdate(byte[] input,
                                       int inputOffset,
                                       int inputLen)
º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¾Ïȣȭ ¶Ç´Â º¹È£È­ Á¶ÀÛ (ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­ ¹æ¹ý¿¡ ÀÇÇØ ´Ù¸£´Ù)À» °è¼ÓÇØ, ´Ù¸¥ µ¥ÀÌÅÍ ºÎºÐÀ» ó¸®ÇÕ´Ï´Ù.

inputOffset·Î ºÎÅÍ ½ÃÀ۵Ǵ input ¹öÆÛ³»ÀÇ ÃÖÃÊÀÇ inputLen ¹ÙÀÌÆ®°¡ ó¸®µÇ¾î °á°ú°¡ »õ·Î¿î ¹öÆÛ¿¡ Æ÷ÇԵ˴ϴÙ.

ÆĶó¹ÌÅÍ:
input - ÀÔ·Â ¹öÆÛ
inputOffset - ÀÔ·ÂÀ» °³½ÃÇÏ´Â input ³»ÀÇ ¿ÀÇÁ¼Â(offset)
inputLen - ÀÔ·ÂÀå
¹Ýȯ°ª:
°á°ú°¡ µé¾î°£ »õ·Î¿î ¹öÆÛ. ±âº»ÀÌ µÇ´Â ¾ÏÈ£°¡ ºí·Ï ¾ÏÈ£À̸ç, ÀÔ·Â µ¥ÀÌÅÍ°¡ ´ÜÀΰ¡ Áö³ª »õ·Î¿î ºí·ÏÀÌ µÇÁö ¾Ê´Â °æ¿ì´Â null

engineUpdate

protected abstract int engineUpdate(byte[] input,
                                    int inputOffset,
                                    int inputLen,
                                    byte[] output,
                                    int outputOffset)
                             throws ShortBufferException 
º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¾Ïȣȭ ¶Ç´Â º¹È£È­ Á¶ÀÛ (ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­ ¹æ¹ý¿¡ ÀÇÇØ ´Ù¸£´Ù)À» °è¼ÓÇØ, ´Ù¸¥ µ¥ÀÌÅÍ ºÎºÐÀ» ó¸®ÇÕ´Ï´Ù.

inputOffset·Î ºÎÅÍ ½ÃÀ۵Ǵ input ¹öÆÛ³»ÀÇ ÃÖÃÊÀÇ inputLen ¹ÙÀÌÆ®°¡ ó¸®µÇ¾î °á°ú´Â output ¹öÆÛÀÇ outputOffset·Î ºÎÅÍ ½ÃÀ۵Ǵ À§Ä¡¿¡ Æ÷ÇԵ˴ϴÙ.

output ¹öÆÛ°¡ ³Ê¹« ÀÛ¾Æ °á°ú¸¦ º¸°ü À¯ÁöÇÒ ¼ö ¾ø´Â °æ¿ì´Â ShortBufferException°¡ ¹ß»ý µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
input - ÀÔ·Â ¹öÆÛ
inputOffset - ÀÔ·ÂÀ» °³½ÃÇÏ´Â input ³»ÀÇ ¿ÀÇÁ¼Â(offset)
inputLen - ÀÔ·ÂÀå
output - °á°ú¸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛ
outputOffset - °á°ú°¡ Æ÷ÇԵǴ output ³»ÀÇ ¿ÀÇÁ¼Â(offset)
¹Ýȯ°ª:
output¿¡ Æ÷ÇÔµÈ ¹ÙÀÌÆ®¼ö
¿¹¿Ü:
ShortBufferException - ÁöÁ¤µÈ Ãâ·Â ¹öÆÛ°¡ ³Ê¹« ÀÛ¾Æ °á°ú¸¦ º¸°ü À¯ÁöÇÒ ¼ö ¾ø´Â °æ¿ì

engineUpdate

protected int engineUpdate(ByteBuffer  input,
                           ByteBuffer  output)
                    throws ShortBufferException 
º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¾Ïȣȭ ¶Ç´Â º¹È£È­ Á¶ÀÛ (ÀÌ ¾ÏÈ£ÀÇ ÃʱâÈ­ ¹æ¹ý¿¡ ÀÇÇØ ´Ù¸£´Ù)À» °è¼ÓÇØ, ´Ù¸¥ µ¥ÀÌÅÍ ºÎºÐÀ» ó¸®ÇÕ´Ï´Ù.

input.position()·Î ½ÃÀ۵Ǵ ¸ðµç input.remaining() ¹ÙÀÌÆ®°¡ 󸮵˴ϴÙ. °á°ú´Â Ãâ·Â ¹öÆÛ¿¡ Æ÷ÇԵ˴ϴÙ. ±Í°¡½Ã¿¡´Â ÀÔ·Â ¹öÆÛÀÇ À§Ä¡´Â ±× Á¦ÇÑ°ú µ¿ÀÏÇØÁ®, Á¦ÇÑÀº º¯°æÇÏÁö ¾Ê½À´Ï´Ù. Ãâ·Â ¹öÆÛÀÇ À§Ä¡´Â ÀÌ ¸Þ¼­µå·Î ¸®ÅÏµÈ °ªÀÇ n ¸¸ ÁøÇàµË´Ï´Ù. Ãâ·Â ¹öÆÛÀÇ Á¦ÇÑÀº º¯°æÇÏÁö ¾Ê½À´Ï´Ù.

output.remaining() ¹öÆÛ°¡ ³Ê¹« ÀÛ¾Æ °á°ú¸¦ º¸°ü À¯ÁöÇÒ ¼ö ¾ø´Â °æ¿ì´Â ShortBufferException°¡ ¹ß»ý µË´Ï´Ù.

¼­ºê Ŭ·¡½º¿¡¼­´Â ¹ÙÀÌÆ® ¹è¿­º¸´Ù È¿À²ÀûÀ¸·Î ByteBuffer¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â °æ¿ì´Â ÀÌ ¸Þ¼­µåÀÇ ¿À¹ö¶óÀ̵å(override)¸¦ °ËÅäÇØ ÁÖ¼¼¿ä.

ÆĶó¹ÌÅÍ:
input - ÀÔ·Â ByteBuffer
output - Ãâ·Â ByteByffer
¹Ýȯ°ª:
output¿¡ Æ÷ÇÔµÈ ¹ÙÀÌÆ®¼ö
¿¹¿Ü:
ShortBufferException - Ãâ·Â ¹öÆÛ³»¿¡ ³²¾Æ ÀÖ´Â ¿ë·®ÀÌ ºÎÁ·ÇÑ °æ¿ì
NullPointerException - ¾î´À ÂÊÀΰ¡ÀÇ ÆĶó¹ÌÅÍ°¡ nullÀÎ °æ¿ì
µµÀÔµÈ ¹öÀü :
1.5

engineDoFinal

protected abstract byte[] engineDoFinal(byte[] input,
                                        int inputOffset,
                                        int inputLen)
                                 throws IllegalBlockSizeException,

                                        BadPaddingException 
´ÜÀÏÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ¸·Î µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ ÇÏ´ÂÁö, º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ» Á¾·áÇÕ´Ï´Ù. µ¥ÀÌÅÍ´Â ÀÌ ¾ÏÈ£°¡ ÃʱâÈ­µÈ ¹æ¹ý¿¡ µû¶ó, ¾Ïȣȭ ¶Ç´Â º¹È£È­ µË´Ï´Ù.

inputOffset·Î ºÎÅÍ ½ÃÀ۵Ǵ input ¹öÆÛ³»ÀÇ ÃÖÃÊÀÇ inputLen ¹ÙÀÌÆ® ¹× ÀüÀÇ update Á¶ÀÛÀ¸·Î ¹öÆÛ¿¡ ³Ö¾îÁø °¡´É¼ºÀÌ ÀÖ´Â ¸ðµç ÀÔ·Â ¹ÙÀÌÆ®°¡ 󸮵Ǿî Æеù (¿ä±¸µÇ¾úÀ» °æ¿ì)ÀÌ Àû¿ëµË´Ï´Ù. °á°ú´Â »õ·Î¿î ¹öÆÛ¿¡ Æ÷ÇԵ˴ϴÙ.

Á¾·á½Ã¿¡ ÀÌ ¸Þ¼­µå´Â ÀÌ ¾ÏÈ£ °´Ã¼¸¦ ¾Õ¿¡ µÎ°í engineInit¸¦ È£ÃâÇØ ÃʱâÈ­µÇ¾úÀ» ¶§ »óÅ¿¡ ¸®¼Â ÇÕ´Ï´Ù. Áï, °´Ã¼´Â ¸®¼Â µÇ¾î, ¶ÇÇÑ µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ Çϱâ À§Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù (engineInit È£Ãâ·Î ÁöÁ¤µÈ Á¶ÀÛ ¸ðµå¿¡ ÀÇÇØ ´Ù¸£´Ù).

ÁÖ: ¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ì, ÀÌ ¾ÏÈ£ °´Ã¼´Â ¸®¼Â ÇÏÁö ¾ÊÀ¸¸é ÀçÂ÷ »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
input - ÀÔ·Â ¹öÆÛ
inputOffset - ÀÔ·ÂÀ» °³½ÃÇÏ´Â input ³»ÀÇ ¿ÀÇÁ¼Â(offset)
inputLen - ÀÔ·ÂÀå
¹Ýȯ°ª:
°á°ú°¡ µé¾î°£ »õ·Î¿î ¹öÆÛ
¿¹¿Ü:
IllegalBlockSizeException - ÀÌ ¾ÏÈ£°¡ ºí·Ï ¾ÏÈ£À̸ç, ÆеùÀÌ ¿ä±¸µÇÁö ¾Ê°í (¾Ïȣȭ ¸ðµåÀÇ °æ¿ì¸¸), ÀÌ ¾ÏÈ£·Î ó¸®µÈ µ¥ÀÌÅÍÀÇ ÀÔ·ÂÀåÀÇ ÇÕ°è°¡ ºí·Ï »çÀÌÁîÀÇ ¹è¼ö°¡ ¾Æ´Ñ °æ¿ì. ¶Ç´Â ÀÌ ¾Ïȣȭ ¾Ë°í¸®Áò¿¡¼­´Â Á¦°øµÈ ÀÔ·Â µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ¾ø´Â °æ¿ì
BadPaddingException - ÀÌ ¾ÏÈ£°¡ º¹È£È­ ¸ðµåÀ̸ç, Æеù (¶Ç´Â Æеù ÇØÁ¦)ÀÌ ¿ä±¸µÇ¾úÁö¸¸, º¹È£È­ µÈ µ¥ÀÌÅÍ°¡ ÀûÀýÇÑ Æеù ¹ÙÀÌÆ®·Î ¹ÙÀÎµå µÇÁö ¾Ê´Â °æ¿ì

engineDoFinal

protected abstract int engineDoFinal(byte[] input,
                                     int inputOffset,
                                     int inputLen,
                                     byte[] output,
                                     int outputOffset)
                              throws ShortBufferException,

                                     IllegalBlockSizeException,

                                     BadPaddingException 
´ÜÀÏÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ¸·Î µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ ÇÏ´ÂÁö, º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ» Á¾·áÇÕ´Ï´Ù. µ¥ÀÌÅÍ´Â ÀÌ ¾ÏÈ£°¡ ÃʱâÈ­µÈ ¹æ¹ý¿¡ µû¶ó, ¾Ïȣȭ ¶Ç´Â º¹È£È­ µË´Ï´Ù.

inputOffset·Î ºÎÅÍ ½ÃÀ۵Ǵ input ¹öÆÛ³»ÀÇ ÃÖÃÊÀÇ inputLen ¹ÙÀÌÆ® ¹× ÀüÀÇ update Á¶ÀÛÀ¸·Î ¹öÆÛ¿¡ ³Ö¾îÁø °¡´É¼ºÀÌ ÀÖ´Â ¸ðµç ÀÔ·Â ¹ÙÀÌÆ®°¡ 󸮵Ǿî Æеù (¿ä±¸µÇ¾úÀ» °æ¿ì)ÀÌ Àû¿ëµË´Ï´Ù. °á°ú´Â outputOffset·Î ºÎÅÍ ½ÃÀ۵Ǵ output ¹öÆÛ¿¡ Æ÷ÇԵ˴ϴÙ.

output ¹öÆÛ°¡ ³Ê¹« ÀÛ¾Æ °á°ú¸¦ º¸°ü À¯ÁöÇÒ ¼ö ¾ø´Â °æ¿ì´Â ShortBufferException°¡ ¹ß»ý µË´Ï´Ù.

Á¾·á½Ã¿¡ ÀÌ ¸Þ¼­µå´Â ÀÌ ¾ÏÈ£ °´Ã¼¸¦ ¾Õ¿¡ µÎ°í engineInit¸¦ È£ÃâÇØ ÃʱâÈ­µÇ¾úÀ» ¶§ »óÅ¿¡ ¸®¼Â ÇÕ´Ï´Ù. Áï, °´Ã¼´Â ¸®¼Â µÇ¾î, ¶ÇÇÑ µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ Çϱâ À§Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù (engineInit È£Ãâ·Î ÁöÁ¤µÈ Á¶ÀÛ ¸ðµå¿¡ ÀÇÇØ ´Ù¸£´Ù).

ÁÖ: ¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ì, ÀÌ ¾ÏÈ£ °´Ã¼´Â ¸®¼Â ÇÏÁö ¾ÊÀ¸¸é ÀçÂ÷ »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
input - ÀÔ·Â ¹öÆÛ
inputOffset - ÀÔ·ÂÀ» °³½ÃÇÏ´Â input ³»ÀÇ ¿ÀÇÁ¼Â(offset)
inputLen - ÀÔ·ÂÀå
output - °á°ú¸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛ
outputOffset - °á°ú°¡ Æ÷ÇԵǴ output ³»ÀÇ ¿ÀÇÁ¼Â(offset)
¹Ýȯ°ª:
output¿¡ Æ÷ÇÔµÈ ¹ÙÀÌÆ®¼ö
¿¹¿Ü:
IllegalBlockSizeException - ÀÌ ¾ÏÈ£°¡ ºí·Ï ¾ÏÈ£À̸ç, ÆеùÀÌ ¿ä±¸µÇÁö ¾Ê°í (¾Ïȣȭ ¸ðµåÀÇ °æ¿ì¸¸), ÀÌ ¾ÏÈ£·Î ó¸®µÈ µ¥ÀÌÅÍÀÇ ÀÔ·ÂÀåÀÇ ÇÕ°è°¡ ºí·Ï »çÀÌÁîÀÇ ¹è¼ö°¡ ¾Æ´Ñ °æ¿ì. ¶Ç´Â ÀÌ ¾Ïȣȭ ¾Ë°í¸®Áò¿¡¼­´Â Á¦°øµÈ ÀÔ·Â µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ¾ø´Â °æ¿ì
ShortBufferException - ÁöÁ¤µÈ Ãâ·Â ¹öÆÛ°¡ ³Ê¹« ÀÛ¾Æ °á°ú¸¦ º¸°ü À¯ÁöÇÒ ¼ö ¾ø´Â °æ¿ì
BadPaddingException - ÀÌ ¾ÏÈ£°¡ º¹È£È­ ¸ðµåÀ̸ç, Æеù (¶Ç´Â Æеù ÇØÁ¦)ÀÌ ¿ä±¸µÇ¾úÁö¸¸, º¹È£È­ µÈ µ¥ÀÌÅÍ°¡ ÀûÀýÇÑ Æеù ¹ÙÀÌÆ®·Î ¹ÙÀÎµå µÇÁö ¾Ê´Â °æ¿ì

engineDoFinal

protected int engineDoFinal(ByteBuffer  input,
                            ByteBuffer  output)
                     throws ShortBufferException,

                            IllegalBlockSizeException,

                            BadPaddingException 
´ÜÀÏÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ¸·Î µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ ÇÏ´ÂÁö, º¹¼öÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¿Ï¼ºµÇ´Â Á¶ÀÛÀ» Á¾·áÇÕ´Ï´Ù. µ¥ÀÌÅÍ´Â ÀÌ ¾ÏÈ£°¡ ÃʱâÈ­µÈ ¹æ¹ý¿¡ µû¶ó, ¾Ïȣȭ ¶Ç´Â º¹È£È­ µË´Ï´Ù.

input.position()·Î ½ÃÀ۵Ǵ ¸ðµç input.remaining() ¹ÙÀÌÆ®°¡ 󸮵˴ϴÙ. °á°ú´Â Ãâ·Â ¹öÆÛ¿¡ Æ÷ÇԵ˴ϴÙ. ±Í°¡½Ã¿¡´Â ÀÔ·Â ¹öÆÛÀÇ À§Ä¡´Â ±× Á¦ÇÑ°ú µ¿ÀÏÇØÁ®, Á¦ÇÑÀº º¯°æÇÏÁö ¾Ê½À´Ï´Ù. Ãâ·Â ¹öÆÛÀÇ À§Ä¡´Â ÀÌ ¸Þ¼­µå·Î ¸®ÅÏµÈ °ªÀÇ n ¸¸ ÁøÇàµË´Ï´Ù. Ãâ·Â ¹öÆÛÀÇ Á¦ÇÑÀº º¯°æÇÏÁö ¾Ê½À´Ï´Ù.

output.remaining() ¹öÆÛ°¡ ³Ê¹« ÀÛ¾Æ °á°ú¸¦ º¸°ü À¯ÁöÇÒ ¼ö ¾ø´Â °æ¿ì´Â ShortBufferException°¡ ¹ß»ý µË´Ï´Ù.

Á¾·á½Ã¿¡ ÀÌ ¸Þ¼­µå´Â ÀÌ ¾ÏÈ£ °´Ã¼¸¦ ¾Õ¿¡ µÎ°í engineInit¸¦ È£ÃâÇØ ÃʱâÈ­µÇ¾úÀ» ¶§ »óÅ¿¡ ¸®¼Â ÇÕ´Ï´Ù. Áï, °´Ã¼´Â ¸®¼Â µÇ¾î, ¶ÇÇÑ µ¥ÀÌÅ͸¦ ¾Ïȣȭ ¶Ç´Â º¹È£È­ Çϱâ À§Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù (engineInit È£Ãâ·Î ÁöÁ¤µÈ Á¶ÀÛ ¸ðµå¿¡ ÀÇÇØ ´Ù¸£´Ù).

ÁÖ: ¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ì, ÀÌ ¾ÏÈ£ °´Ã¼´Â ¸®¼Â ÇÏÁö ¾ÊÀ¸¸é ÀçÂ÷ »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

¼­ºê Ŭ·¡½º¿¡¼­´Â ¹ÙÀÌÆ® ¹è¿­º¸´Ù È¿À²ÀûÀ¸·Î ByteBuffer¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â °æ¿ì´Â ÀÌ ¸Þ¼­µåÀÇ ¿À¹ö¶óÀ̵å(override)¸¦ °ËÅäÇØ ÁÖ¼¼¿ä.

ÆĶó¹ÌÅÍ:
input - ÀÔ·Â ByteBuffer
output - Ãâ·Â ByteByffer
¹Ýȯ°ª:
output¿¡ Æ÷ÇÔµÈ ¹ÙÀÌÆ®¼ö
¿¹¿Ü:
IllegalBlockSizeException - ÀÌ ¾ÏÈ£°¡ ºí·Ï ¾ÏÈ£À̸ç, ÆеùÀÌ ¿ä±¸µÇÁö ¾Ê°í (¾Ïȣȭ ¸ðµåÀÇ °æ¿ì¸¸), ÀÌ ¾ÏÈ£·Î ó¸®µÈ µ¥ÀÌÅÍÀÇ ÀÔ·ÂÀåÀÇ ÇÕ°è°¡ ºí·Ï »çÀÌÁîÀÇ ¹è¼ö°¡ ¾Æ´Ñ °æ¿ì. ¶Ç´Â ÀÌ ¾Ïȣȭ ¾Ë°í¸®Áò¿¡¼­´Â Á¦°øµÈ ÀÔ·Â µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ¾ø´Â °æ¿ì
ShortBufferException - Ãâ·Â ¹öÆÛ³»¿¡ ³²¾Æ ÀÖ´Â ¿ë·®ÀÌ ºÎÁ·ÇÑ °æ¿ì
BadPaddingException - ÀÌ ¾ÏÈ£°¡ º¹È£È­ ¸ðµåÀ̸ç, Æеù (¶Ç´Â Æеù ÇØÁ¦)ÀÌ ¿ä±¸µÇ¾úÁö¸¸, º¹È£È­ µÈ µ¥ÀÌÅÍ°¡ ÀûÀýÇÑ Æеù ¹ÙÀÌÆ®·Î ¹ÙÀÎµå µÇÁö ¾Ê´Â °æ¿ì
NullPointerException - ¾î´À ÂÊÀΰ¡ÀÇ ÆĶó¹ÌÅÍ°¡ nullÀÎ °æ¿ì
µµÀÔµÈ ¹öÀü :
1.5

engineWrap

protected byte[] engineWrap(Key  key)
                     throws IllegalBlockSizeException,

                            InvalidKeyException 
Å°¸¦ ·¦ ÇÕ´Ï´Ù.

ÀÌ ±¸»ó ¸Þ¼­µå´Â »çÀü¿¡ Á¤ÀÇµÈ ÀÌ Ãß»ó Ŭ·¡½º¿¡ Ãß°¡µÈ °ÍÀÔ´Ï´Ù. ÇÏÀ§ ȣȯ¼ºÀ» À§Çؼ­ Ãß»ó ¸Þ¼­µå¿¡´Â ÇÒ ¼ö ¾ø½À´Ï´Ù. Å°¸¦ ·¦ Çϱâ À§Çؼ­ ÇÁ·Î¹ÙÀÌ´õ¿¡ ÀÇÇØ ¿À¹ö¶óÀ̵å(override) µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ±×·¯ÇÑ ¿À¹ö¶óÀ̵å(override)¸¦ ½Ç½ÃÇϸé, ÁöÁ¤µÈ Å°¸¦ ·¦ ÇÒ ¼ö ¾ø´Â °æ¿ì¿¡ IllegalBlockSizeException ¶Ç´Â InvalidKeyException (ÁöÁ¤µÈ ȯ°æÇÏ)°¡ ¹ß»ý µË´Ï´Ù. ÀÌ ¸Þ¼­µå°¡ ¿À¹ö¶óÀ̵å(override) µÇÁö ¾Ê´Â °æ¿ì´Â Ç×»ó UnsupportedOperationException°¡ ¹ß»ý µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
key - ·¦ µÇ´Â Å°
¹Ýȯ°ª:
·¦ µÈ Å°
¿¹¿Ü:
IllegalBlockSizeException - ÀÌ ¾ÏÈ£°¡ ºí·Ï ¾ÏÈ£À̸ç, ÆеùÀÌ ¿ä±¸µÇÁö ¾Ê°í, ·¦ µÇ´Â Å°ÀÇ ÀÎÄÚµùÀÇ ±æÀÌ°¡ ºí·Ï »çÀÌÁîÀÇ ¹è¼ö°¡ ¾Æ´Ñ °æ¿ì
InvalidKeyException - ÀÌ ¾ÏÈ£¸¦ »ç¿ëÇØ Å°¸¦°¨½Î´Â °ÍÀÌ ºÒ°¡´ÉÇÑ°¡ ¾ÈÀüÇÏÁö ¾ÊÀº °æ¿ì (¿¹¸¦ µé¾î Çϵå¿þ¾î º¸È£µÈ Å°°¡ ¼ÒÇÁÆ®¿þ¾î¸¸ÀÇ ¾ÏÈ£¿¡°Ô °Ç³×Áö´Â °æ¿ì)

engineUnwrap

protected Key  engineUnwrap(byte[] wrappedKey,
                           String  wrappedKeyAlgorithm,
                           int wrappedKeyType)
                    throws InvalidKeyException,

                           NoSuchAlgorithmException 
Àü¿¡ ·¦ µÈ Å°¸¦ ·¦ ÇØÁ¦ÇÕ´Ï´Ù.

ÀÌ ±¸»ó ¸Þ¼­µå´Â »çÀü¿¡ Á¤ÀÇµÈ ÀÌ Ãß»ó Ŭ·¡½º¿¡ Ãß°¡µÈ °ÍÀÔ´Ï´Ù. ÇÏÀ§ ȣȯ¼ºÀ» À§Çؼ­ Ãß»ó ¸Þ¼­µå¿¡´Â ÇÒ ¼ö ¾ø½À´Ï´Ù. Àü¿¡ ·¦ µÈ Å°¸¦ ·¦ ÇØÁ¦Çϱâ À§Çؼ­ ÇÁ·Î¹ÙÀÌ´õ¿¡ ÀÇÇØ ¿À¹ö¶óÀ̵å(override) µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ±×·¯ÇÑ ¿À¹ö¶óÀ̵å(override)¸¦ ½Ç½ÃÇϸé, ÁöÁ¤µÈ, ·¦ µÇ°í ÀÖ´Â Å°¸¦ ·¦ ÇØÁ¦ÇÒ ¼ö ¾ø´Â °æ¿ì¿¡ InvalidKeyException°¡ ¹ß»ý µË´Ï´Ù. ÀÌ ¸Þ¼­µå°¡ ¿À¹ö¶óÀ̵å(override) µÇÁö ¾Ê´Â °æ¿ì´Â Ç×»ó UnsupportedOperationException°¡ ¹ß»ý µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
wrappedKey - ·¦ÀÌ ÇØÁ¦µÇ´Â Å°
wrappedKeyAlgorithm - ·¦ µÈ Å°¿¡ °ü·ÃÇÑ ¾Ë°í¸®Áò
wrappedKeyType - ·¦ µÈ Å°ÀÇ Å¸ÀÔ. SECRET_KEY, PRIVATE_KEY, ¶Ç´Â PUBLIC_KEY ¾î¶² °ÍÀΰ¡
¹Ýȯ°ª:
·¦ ÇØÁ¦µÈ Å°
¿¹¿Ü:
NoSuchAlgorithmException - ÀνºÅç µÇ°í ÀÖ´Â ¾î´À ÇÁ·Î¹ÙÀÌ´õµµ wrappedKeyAlgorithm wrappedKeyType ŸÀÔÀÇ Å°¸¦ ÀÛ¼ºÇÒ ¼ö ¾ø´Â °æ¿ì
InvalidKeyException - wrappedKey°¡ wrappedKeyAlgorithm ·¦ Å° ŸÀÔ wrappedKeyType¸¦ ³ªÅ¸³»Áö ¾ÊÀº °æ¿ì

engineGetKeySize

protected int engineGetKeySize(Key  key)
                        throws InvalidKeyException 
ÁöÁ¤µÈ Å° °´Ã¼ÀÇ Å° »çÀÌÁ ºñÆ® ´ÜÀ§·Î ¸®ÅÏÇÕ´Ï´Ù.

ÀÌ ±¸»ó ¸Þ¼­µå´Â ÀÌ Á¤ÀÇ ³¡³­ Ãß»ó Ŭ·¡½º¿¡ Ãß°¡µÇ°í ÀÖ½À´Ï´Ù. ÇÁ·Î¹ÙÀÌ´õ¿¡ ÀÇÇØ ¿À¹ö¶óÀ̵å(override) µÇÁö ¾Ê´Â °æ¿ì´Â UnsupportedOperationExceptionÀ» Throw ÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
key - Å° °´Ã¼
¹Ýȯ°ª:
ÁöÁ¤µÈ Å° °´Ã¼ÀÇ Å° »çÀÌÁî
¿¹¿Ü:
InvalidKeyException - key°¡ ¹«È¿ÀÎ °æ¿ì

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.