> ## Documentation Index
> Fetch the complete documentation index at: https://hedera-0c6e0218-docs-evm-account-model.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Import an existing key

Construct keys in another format to a key representation or import keys from a file.

<table><thead><tr><th /><th /><th /></tr></thead><tbody><tr><td><strong>Method</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td><code>PrivateKey.fromString(\<privateKey>)</code></td><td>String</td><td>Constructs a private key string to PrivateKey</td></tr><tr><td><code>PublicKey.fromString(\<publicKey>)</code></td><td>String</td><td>Constructs a public key string to PublicKey</td></tr><tr><td><code>PrivateKey.fromStringECDSA(\<privateKey>)</code></td><td>String</td><td>Constructs an ECDSA key from a private key string</td></tr><tr><td><code>PublicKey.fromStringECDSA(\<publicKey>)</code></td><td>String</td><td>Constructs an ECDSA public key from a public key string</td></tr><tr><td><code>PrivateKey.fromBytesECDSA(\<privateKey>)</code></td><td>byte\[ ]</td><td>Constructs an ECDSA key from a private key bytes</td></tr><tr><td><code>PublicKey.fromBytesECDSA(\<publicKey>)</code></td><td>byte\[ ]</td><td>Constructs an ECDSA public key from a public key bytes</td></tr><tr><td><code>PrivateKey.fromStringED25519(\<privateKey>)</code></td><td>String</td><td>Constructs an ED25519 key from a private key string</td></tr><tr><td><code>PublicKey.fromStringED25519(\<publicKey>)</code></td><td>String</td><td>Constructs an ED25519 public key from a public key string</td></tr><tr><td><code>PrivateKey.fromBytesED25519(\<privateKey>)</code></td><td>byte \[ ]</td><td>Constructs an ED25519 key from a private key bytes</td></tr><tr><td><code>PublicKey.fromBytesED25519(\<publiceKey>)</code></td><td>byte \[ ]</td><td>Constructs an ED25519 public key from a public key bytes</td></tr><tr><td><code>PrivateKey.fromBytes(\<privateKey>)</code></td><td>byte \[ ]</td><td>Constructs a private key from bytes to PrivateKey</td></tr><tr><td><code>PublicKey.fromBytes(\<publicKey>)</code></td><td>byte \[ ]</td><td>Contructs a public key from bytes to PublicKey</td></tr><tr><td><code>PrivateKey.fromPem(\<pemEncoded>)</code></td><td>String</td><td>Parse a private key from a PEM encoded string</td></tr><tr><td><code>PrivateKey.fromPem(\<encodedPem, password>)</code></td><td>String, String</td><td>Parse a private key from a PEM encoded string. The private key may be encrypted, e.g. if it was generated by OpenSSL.</td></tr><tr><td><code>PrivateKey.readPem(\<pemfile>)</code></td><td>Reader</td><td>Parse a private key from a PEM encoded reader</td></tr><tr><td><code>PrivateKey.readPem(\<pemFile, password>)</code></td><td>Reader, String</td><td>Parse a private key from a PEM encoded stream. The key may be encrypted, e.g. if it was generated by OpenSSL.</td></tr></tbody></table>

<CodeGroup>
  ```java Java theme={null}
  //Converts an ECDSA private key string to PrivateKey
  PrivateKey privateKey = PrivateKey.fromStringECDSA("3030020100300706052b8104000a042204208776c6b831a1b61ac10dac0304a2843de4716f98b09147a169f41d7b4d48ad5");

  //The public key associated with the private key
  PublicKey publicKey = PublicKey.fromStringECDSA("3036301006072a8648ce3d020106052b8104000a032200029bba954cd41e8ab9f05a0b3b038b1c2c35b9bc16b4e38bc67a2e5ebab2fe72fb");
  ```

  ```javascript JavaScript theme={null}
  //Converts an ECDSA private key string to PrivateKey
  const privateKey = PrivateKey.fromStringECDSA("3030020100300706052b8104000a042204208776c6b831a1b61ac10dac0304a2843de4716f98b09147a169f41d7b4d48ad5");

  //The public key associated with the private key
  const publicKey = PublicKey.fromStringECDSA("3036301006072a8648ce3d020106052b8104000a032200029bba954cd41e8ab9f05a0b3b038b1c2c35b9bc16b4e38bc67a2e5ebab2fe72fb");
  ```

  ```go Go theme={null}
  //Converts an ECDSA private key string to PrivateKey
  privateKey, err := hedera.PrivateKeyFromStringECDSA("3030020100300706052b8104000a042204208776c6b831a1b61ac10dac0304a2843de4716f98b09147a169f41d7b4d48ad5")

  if err != nil {
  		panic(err)
  	}

  //The public key associated with the private key
  publicKey, err := hedera.PublicKeyFromStringECDSA("3036301006072a8648ce3d020106052b8104000a032200029bba954cd41e8ab9f05a0b3b038b1c2c35b9bc16b4e38bc67a2e5ebab2fe72fb")

  if err != nil {
  		panic(err)
  	}
  ```

  ```rust Rust theme={null}
  // Import ECDSA keys from strings
  let private_key = PrivateKey::from_str("3030020100300706052b8104000a042204208776c6b831a1b61ac10dac0304a2843de4716f98b09147a169f41d7b4d48ad5");
  let public_key = PublicKey::from_str("3036301006072a8648ce3d020106052b8104000a032200029bba954cd41e8ab9f05a0b3b038b1c2c35b9bc16b4e38bc67a2e5ebab2fe72fb");

  // Import from PEM
  let private_key = PrivateKey::from_pem("-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----");
  // With password if encrypted
  let private_key = PrivateKey::from_pem_with_password("-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "password");

  println!("Imported private key: {:?}", private_key);
  println!("Imported public key: {:?}", public_key);

  // v0.34.0
  ```
</CodeGroup>
